开源世界——读《编写高质量代码:改善Java程序的151个建议》(十一)

读书,收获,分享
建议后面的五角星仅代表笔者个人需要注意的程度。
Talk is cheap.Show me the code

建议139:大胆采用开源工具★☆☆☆☆

开源工具包确实会对我们的项目有非常大的帮助,比如提升代码质量,减少Bug产生,降低工作量等,但一旦项目中的工具杂乱无章时就会产生依赖的无序性,这会导致代码中隐藏着炸弹,不知何时就会突然引爆了。

因此,在选择开源工具和框架时要遵循一定的原则:

  1. 普适性原则,选择一个工具或框架就必须考虑项目成员的整体技术水平,不能有太大的跨度或跳跃性,要确保大部分项目成员对工具都比较熟悉。
  2. 唯一性原则,相同的工具只选择一个或一种,不要让多种相同或相似职能的工具共存。
  3. “大树纳凉”原则,寻找比较有名的开源组织。
  4. 精而专原则,选择的工具包应该是精而专的,而不是广而多的。
  5. 高热度原则,一个开源项目的热度越高,更新得就越频繁,使用的人群就越广,Bug的曝光率就越快,修复效率也就越高,这对我们项目的稳定性来说是非常重要的。

建议140:推荐使用Guava扩展工具包☆☆☆☆☆

它的一些主要功能:

  1. Collections

    com.google.common.collect包中主要包括四部分:不可变集合(Immutable Collections)、多值MapTable表和集合工具类。

  2. 字符串操作

    Joiner连接器和Splitter拆分器等。

  3. 基本类型工具

    基本类型工具在primitives包中,是以基本类型名+s的方式命名的,比如Intsint的工具类,Doublesdouble的工具类,注意这些都是针对基本类型的,而不是针对包装类型的。

建议141:Apache扩展包☆☆☆☆☆

简单的介绍:

  1. Lang

    字符串操作工具类、Object工具类、可变的基本类型、其他Utils工具。

  2. BeanUtils

    属性拷贝、动态Bean自由Bean、转换器等。

  3. Collections

    Baglazy系列、双向Map等。

建议142:推荐使用Joda日期时间扩展包☆☆☆☆☆

通过Joda开源包来操作时间的方法,非常简单方便,如:

  1. 本地格式的日期时间
  2. 日期计算
  3. 时区时间

建议143:可以选择多种Collections扩展☆☆☆☆☆

介绍三个比较有个性的Collections扩展工具包:

  1. fastutil

    主要提供了两种功能:一种是限定键值类型(TypeSpecific)的MapListSet等,另一种是大容量的集合。

  2. Trove

    Trove提供了一个快速、高效、低内存消耗的Collection集合,并且还提供了过滤和拦截的功能,同时还提供了基本类型的集合。

  3. lambdaj

    lambdaj是一个纯净的集合操作工具,它不会提供任何的集合扩展,只会提供对集合的操作,比如查询、过滤、统一初始化等,特别是它的查询操作,非常类似于DBRMS上的SQL语句,而且也会提供诸如求和、求平均值等的方法。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容