`
wdmcygah
  • 浏览: 63739 次
社区版块
存档分类
最新评论

十一、编写高质量的代码—开源世界(笔记)

    博客分类:
  • J2SE
阅读更多

 

本博文为《编写高质量代码—改善Java程序的151个建议》一书的阅读笔记。该书从很多方面给予了编写高质量代码的宝贵经验。而且该书应该是那种开发经验越丰富,体会越深的书籍。在阅读过程中,从该书中收获良多,这里主要作下书籍笔记,有体会的地方加点自己的想法。受限于知识水平,部分内容还没能深刻体会,所以更多更好的内容和具体实例还需要从书中去找寻。

下面为书籍第11章《开源世界》的读书笔记:

一、大胆采用开源工具

选择开源框架和工具需遵循的原则:
1. 普适性原则:选用开源项目时需要考虑项目成员的整体技术水平,不能有太大的跨度或跳跃性,要确保大部分成员都比较熟悉。
2. 唯一性原则:相同的工具只能选择一个或一种,这样避免重复。
3. “大树纳凉”原则:最好选用比较有名的开源项目,这样出现bug时能够较快地解决。
4. 精而专原则:选用开源项目时最好选用“对口”的项目,这样的项目相对做得更加专业些。
5. 高热度原则:项目的热度越高,更新就会越频繁,使用人群也越广,Bug曝光率也越快,修复效率也越快,总之热度高的项目也更好地保持质量或更快地解决问题。

二、推荐使用Guava扩展工具包

Guava是Google基于JDK扩展的开源项目,包括很多实用的处理包:collections,caching,annotations等。

Guava官方教程中文版

三、推荐使用Apache扩展包

Apache扩展包应该使用非常广泛了。常见的有lang包、collections包、IO包等等。

Apache Commons官网地址
Commons Collections官网地址
Commons BeanUtils官网地址
Commons IO官网地址
Commons Lang官网地址

四、推荐使用Joda日期时间扩展包

Joda-time项目日期与时间处理方面非常方便,比使用JDK要简单方便得多。

Joda-time官网地址

五、可以选择多种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、开源中国
国内非常好的项目托管网站。主页地址链接

 

 

1
0
分享到:
评论

相关推荐

    懒人笔记 一个 iOS 开源笔记 App.zip

    《懒人笔记:一个iOS开源笔记App的深度解析》 懒人笔记,作为一个曾经活跃的iOS开源项目,为开发者提供了一个便捷的、可定制化的笔记应用框架。虽然它已不再维护,但其代码库仍能为我们揭示iOS应用开发的一些关键...

    Google开源风格指南学习笔记-c++代码规范

    ### Google开源风格指南学习笔记——C++代码规范详解 #### 避免多重包含与使用前置声明 在C++开发中,避免多重包含是至关重要的,因为它可以减少编译时间并降低代码之间的依赖关系。当一个头文件被多次包含时,...

    阅读优秀开源代码的笔记,持续更新,完善后推博客。项目名:瞎鸡儿写写_xjexx.zip

    5. 测试:开源项目通常拥有全面的测试用例,理解其测试策略和测试用例设计,对于掌握如何编写高质量代码具有指导意义。 6. 社区协作:参与开源项目的过程也是一种学习,了解如何与他人协作、如何进行代码审查和版本...

    umiJs_zuiidea_项目开源笔记代码_umiJs.zip

    开源项目"umiJs_zuiidea_项目开源笔记代码_umiJs"的发布,为想要深入了解和学习UmiJs框架的开发者提供了一手资料。该项目的开源笔记代码不仅详细记录了UmiJs的使用心得,还可能包含了作者在实际项目中的最佳实践和...

    java云笔记代码与文档

    【Java云笔记代码与文档】项目是一个以Java技术为核心的云端笔记应用实现,旨在提供一个便捷、高效的在线笔记存储和管理平台。在这个项目中,开发者利用Java的特性与强大的开源库,构建了一个支持多用户、多设备同步...

    (强烈推荐大家看一看)高质量C++编程指南(有笔记)_a

    《高质量C++编程指南》是一本深受欢迎的C++学习资料,特别适合初学者作为入门教程。这本书结合了丰富的编程经验和实例,旨在帮助读者掌握C++编程的核心概念、语法和最佳实践。通过阅读这本书和相应的笔记,学习者...

    高质量程序设计指南:C、C++语言(第3版)

    它不仅涵盖了基础语法、高级特性,还深入探讨了如何编写高质量代码的方法与技巧。本书旨在帮助读者掌握优秀的编程实践,并能够在实际项目中应用这些知识,提升软件质量和开发效率。 #### 二、核心知识点概览 #####...

    C#编的笔记本Wifi无线网络共享软件(带源代码的)

    源代码是程序员编写的应用程序的原始指令集,对于初学者和高级开发者来说都是宝贵的资源,他们可以通过阅读和分析源代码来了解软件的工作原理,学习编程技巧,或者为软件添加新功能。 "代码写的不怎么好,请各位...

    高质量C++编程指南

    从给定的文件信息来看,标题与内容存在明显的不匹配,标题提到的是“高质量C++编程指南”,然而内容却是关于法语学习的笔记。这里,我们将重点放在标题和描述所暗示的知识点上,即C++编程的相关知识。 ### 高质量...

    尚融宝谷粒商城代码 笔记 自己跟着视频敲得 可运行 自己完善了功能 希望给你帮助

    12. **测试**:包括单元测试、集成测试和端到端测试,确保代码质量及系统的稳定性。 通过参与这样的项目,开发者可以深入理解微服务架构,提升Java编程技能,掌握SpringBoot和Spring框架的使用,同时了解电商平台的...

    基于Python的OJ刷题学习笔记设计源码

    基于Python的OJ刷题学习笔记设计源码是针对编程爱好者提供的一款系统性学习工具,...对于编程新手而言,这不仅是一个刷题工具,更是一个学习如何组织项目、编写高质量代码以及如何利用开源资源进行自我提升的宝贵资源。

    SourceReading:优秀项目源代码阅读及笔记,总结

    6. **测试与调试**:源码中包含的单元测试和集成测试代码,展示了如何编写高质量的测试用例,以及如何进行有效的调试。 7. **版本控制**:项目可能使用Git进行版本管理,通过查看提交历史,可以了解项目的发展历程...

    Java demo 算法笔记

    合理使用代码生成器,可以使开发者更专注于业务逻辑的实现,而不是繁琐的代码编写。 总的来说,这份"Java demo 算法笔记"涵盖了Java开发的多个重要领域,无论你是初学者还是有经验的开发者,都可以从中获益。通过...

    学习笔记 -C#基础其他知识点(一些高级用法)配套代码资源:插件

    通过使用泛型类型和方法,可以编写出不依赖于具体数据类型的代码块,在编译时确定类型,这样既保证了执行效率,又增加了代码的复用性。 其次,C#中的委托和事件处理机制也是高级特性之一。委托可以看作是对方法的...

    django笔记 django笔记

    Django是Python编程语言中的一款强大且流行的Web框架,它以“快速开发”和“约定优于配置”的理念为核心,让开发者能够高效地构建高质量的Web应用程序。本笔记将深入探讨Django的基础概念、核心功能以及实际应用。 ...

    一个隐私优先的自我托管的完全开源的个人知识管理软件,用typescript和golang编写.zip

    本文将介绍一款隐私优先、自我托管的个人知识管理软件,其采用的TypeScript和Golang编写,不仅关注功能的实现,更注重代码的开源性和可扩展性。作为软件开发的现代实践,TypeScript为软件提供了更强的类型检查机制,...

    开源项目-marijnfs-YAWN.zip

    总之,marijnfs-YAWN是一个使用Go语言开发的开源笔记服务器,它借助leveldb存储数据,利用mathjax展示数学公式。这个项目不仅为用户提供了一个便捷的笔记工具,也为开发者提供了一个学习和实践Go语言、数据库管理和...

    安卓笔记——安卓详细笔记汇总

    在安卓开发的学习过程中,积累详尽的笔记是提升技能的关键步骤。这份名为“安卓笔记——安卓详细笔记汇总”的资源,无疑是安卓...通过深入学习和实践,开发者可以逐步掌握这个强大的移动平台,创作出高质量的安卓应用。

    RiceQuant开源框架RQAlpha阅读笔记.docx

    这对于开发高质量的量化交易策略至关重要。 综上所述,RQAlpha通过一套完善的技术栈和支持工具为用户提供了强大的量化研究平台。无论是从数据管理、策略开发还是实盘交易等方面都具有很高的实用性和灵活性,是量化...

    Android应用源码之小米便签源代码分享.zip

    【Android应用源码之小米便签源...通过研究小米便签的源代码,开发者可以学习到Android应用开发的各个方面,包括但不限于UI设计、数据管理、网络通信、性能优化等,这对于提升个人技能和开发高质量应用具有很大价值。

Global site tag (gtag.js) - Google Analytics