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