读书,收获,分享
建议后面的五角星仅代表笔者个人需要注意的程度。
Talk is cheap.Show me the code
建议139:大胆采用开源工具★☆☆☆☆
开源工具包确实会对我们的项目有非常大的帮助,比如提升代码质量,减少Bug产生,降低工作量等,但一旦项目中的工具杂乱无章时就会产生依赖的无序性,这会导致代码中隐藏着炸弹,不知何时就会突然引爆了。
因此,在选择开源工具和框架时要遵循一定的原则:
- 普适性原则,选择一个工具或框架就必须考虑项目成员的整体技术水平,不能有太大的跨度或跳跃性,要确保大部分项目成员对工具都比较熟悉。
- 唯一性原则,相同的工具只选择一个或一种,不要让多种相同或相似职能的工具共存。
- “大树纳凉”原则,寻找比较有名的开源组织。
- 精而专原则,选择的工具包应该是精而专的,而不是广而多的。
- 高热度原则,一个开源项目的热度越高,更新得就越频繁,使用的人群就越广,
Bug的曝光率就越快,修复效率也就越高,这对我们项目的稳定性来说是非常重要的。
建议140:推荐使用Guava扩展工具包☆☆☆☆☆
它的一些主要功能:
-
Collectionscom.google.common.collect包中主要包括四部分:不可变集合(Immutable Collections)、多值Map、Table表和集合工具类。 -
字符串操作
Joiner连接器和Splitter拆分器等。 -
基本类型工具
基本类型工具在
primitives包中,是以基本类型名+s的方式命名的,比如Ints是int的工具类,Doubles是double的工具类,注意这些都是针对基本类型的,而不是针对包装类型的。
建议141:Apache扩展包☆☆☆☆☆
简单的介绍:
-
Lang字符串操作工具类、
Object工具类、可变的基本类型、其他Utils工具。 -
BeanUtils属性拷贝、
动态Bean和自由Bean、转换器等。 -
CollectionsBag、lazy系列、双向Map等。
建议142:推荐使用Joda日期时间扩展包☆☆☆☆☆
通过Joda开源包来操作时间的方法,非常简单方便,如:
- 本地格式的日期时间
- 日期计算
- 时区时间
建议143:可以选择多种Collections扩展☆☆☆☆☆
介绍三个比较有个性的Collections扩展工具包:
-
fastutil主要提供了两种功能:一种是限定键值类型(TypeSpecific)的
Map、List、Set等,另一种是大容量的集合。 -
TroveTrove提供了一个快速、高效、低内存消耗的Collection集合,并且还提供了过滤和拦截的功能,同时还提供了基本类型的集合。 -
lambdajlambdaj是一个纯净的集合操作工具,它不会提供任何的集合扩展,只会提供对集合的操作,比如查询、过滤、统一初始化等,特别是它的查询操作,非常类似于DBRMS上的SQL语句,而且也会提供诸如求和、求平均值等的方法。