本博文为《编写高质量代码—改善Java程序的151个建议》一书的阅读笔记。该书从很多方面给予了编写高质量代码的宝贵经验。而且该书应该是那种开发经验越丰富,体会越深的书籍。在阅读过程中,从该书中收获良多,这里主要作下书籍笔记,有体会的地方加点自己的想法。受限于知识水平,部分内容还没能深刻体会,所以更多更好的内容和具体实例还需要从书中去找寻。
下面为书籍第11章《开源世界》的读书笔记:
一、大胆采用开源工具
选择开源框架和工具需遵循的原则:
1. 普适性原则:选用开源项目时需要考虑项目成员的整体技术水平,不能有太大的跨度或跳跃性,要确保大部分成员都比较熟悉。
2. 唯一性原则:相同的工具只能选择一个或一种,这样避免重复。
3. “大树纳凉”原则:最好选用比较有名的开源项目,这样出现bug时能够较快地解决。
4. 精而专原则:选用开源项目时最好选用“对口”的项目,这样的项目相对做得更加专业些。
5. 高热度原则:项目的热度越高,更新就会越频繁,使用人群也越广,Bug曝光率也越快,修复效率也越快,总之热度高的项目也更好地保持质量或更快地解决问题。
二、推荐使用Guava扩展工具包
Guava是Google基于JDK扩展的开源项目,包括很多实用的处理包:collections,caching,annotations等。
三、推荐使用Apache扩展包
Apache扩展包应该使用非常广泛了。常见的有lang包、collections包、IO包等等。
Apache Commons官网地址
Commons Collections官网地址
Commons BeanUtils官网地址
Commons IO官网地址
Commons Lang官网地址
四、推荐使用Joda日期时间扩展包
Joda-time项目日期与时间处理方面非常方便,比使用JDK要简单方便得多。
五、可以选择多种Collections扩展
Collections作为数据结构的重要组成部分,有很多开源扩展,除了非常常见的Google Collections和Apache Collections,这里介绍几个有个性的扩展包:
1. fastutil
fastutil主要提供限定值类型的集合以及大容量的集合。
fastutil官网地址链接
2. Trove Trove提供了一个快速、高效、低内存消耗的Collection集合。
Trove for Java托管地址
3. lambdaj
lambdaj是一个纯净的集合操作工具,它不会提供任何的集合扩展,只提供对集合的操作。
六、几个非常好的开源项目网站
1、Github
这个网站应该是目前最火的开源项目托管网站了,非常多有名的项目都托管在上面,而且不少有名的项目也往往Github上面在迁移。 主页地址链接
2、sourceforge
主页地址链接
3、google code
主页地址链接
4、开源中国
国内非常好的项目托管网站。主页地址链接
相关推荐
内容全部由java编码的最佳实践组成,从语法、程序设计和架构、工具和框架、编码风格和编程思想等五大方面,对java程序员遇到的各种棘手的疑难问题给出了经验性的解决方案,为java程序员如何编写高质量的java代码提出...
《编写高质量代码:改善java程序的151个建议》内容简介:在通往“java技术殿堂”的路上,本书将为你指点迷津!内容全部由java编码的最佳实践组成,从语法、程序设计和架构、工具和框架、编码风格和编程思想等五大...
为知笔记开源项目程序源码,实现云笔记功能需要自己搭建服务器 为知笔记开源项目程序源码,实现云笔记功能需要自己搭建服务器 为知笔记开源项目程序源码,实现云笔记功能需要自己搭建服务器 为知笔记开源项目程序...
开源 雷达 处理 代码 开源雷达处理代码 开源雷达处理代码 开源雷达处理代码 开源雷达处理代码 开源雷达处理代码 开源雷达处理代码 开源雷达处理代码 开源雷达处理代码 开源雷达处理代码
HotApp云笔记 - 精品开源demo-基于免费API(源代码+截图)HotApp云笔记 - 精品开源demo-基于免费API(源代码+截图)HotApp云笔记 - 精品开源demo-基于免费API(源代码+截图)HotApp云笔记 - 精品开源demo-基于免费API(源...
使用NIST进行随机数随机性检验的个人笔记,包括使用流程和随机数检验的各项说明
Paperwork 是一个开源网络云笔记系统,是 Evernote、Microsoft OneNote 和 Google Keep 的开源替代品。Paperwork 采用 PHP 开发,使用 Laravel 4 框架,提供一个很流行的 Web UI,基于 AngularJS 和 Bootstrap 3 ...
Joplin 是一个开源笔记记录和待办应用。你可以将笔记组织到笔记本中并标记它们。Joplin 还提供网络剪贴板来保存来自互联网的文章。 -- Abhishek Prakash(作者)
GIS开源代码GIS开源代码GIS开源代码 用于空间分析。底层代码。保罗了GIS的主要功能
新旧版的登录界面新旧主窗体界面:新版相对旧版的更新内容如下:新增所见即所得的HTML富文本编辑功能,感谢YARTE开源项目提供的源代码新增用户注册功能新增笔记的临时删除(删至回收站)和永久删除功能新增回收站...
Material Design风格的开源照片笔记。(MVP Dagger2 RxJava Dex分包脚本 Dex异步加载)
PermaNote是基于Sandstorm开源的个人云笔记应用,拥有强大的搜索功能,快速定位所要寻找的笔记。特性:支持Markdown 编辑支持复制、粘贴、拖拽上传图片支持全文搜索代码高亮标签支持嵌入视频等多媒体文件快捷键创建...
懒人笔记 一个 iOS 开源笔记 App.zip,【已不再维护】超级记事本 for iOS
SonarLint是一个免费的开源IDE扩展,它可以识别并帮助您在编写代码时解决代码质量和代码安全问题。SonarLint类似于拼写检查器,它可以发现一些常见的编码缺陷,并提供实时反馈和提供明确的补救指导,从而优化你编写...
PermaNote是基于Sandstorm开源的个人云笔记应用,拥有强大的搜索功能,快速定位所要寻找的笔记。 特性: 支持Markdown 编辑 支持复制、粘贴、拖拽上传图片 支持全文搜索 代码高亮 标签 支持嵌入视频等多媒体文件 ...
apache开源项目源码log4j-src(高质量常用代码) javaapache,log4j开源项目源码,经典代码 各种log4j的工具类源码,你会从中得到意想不到的效果! apache开源组织开发的开源项目源码,其优良的代码风格和高质量的...
阅读Google的C++代码规范,并与大家分享
SLAM开源代码,近年惯性视觉SLAM研究热点,SLAM领域高水平高质量代码汇总
云笔记APP源码下载,原生APP开发,适合做云笔记的一起交流借鉴
有限元开源代码,C编写的多物理场有限元dealii。目前活跃度较高。