代码质量概述
代码质量所涉及的5个方面,编码标准、代码重复、代码覆盖率、依赖项分析、复杂度分析。这5方面很大程序上决定了一份代码的质量高低。
我们分别来看一下这5方面: 编码标准:这个想必都很清楚,每个公司几乎都有一份编码规范,类命名、包命名、代码风格之类的东西都属于其中。 代码重复:顾名思义就是重复的代码,如果你的代码中有大量的重复代码,你就要考虑是否将重复的代码提取出来,封装成一个公共的方法或者组件。 代码覆盖率:测试代码能运行到的代码比率,你的代码经过了单元测试了吗?是不是每个方法都进行了测试,代码覆盖率是多少?这关系到你的代码的功能性和稳定性。 依赖项分析:你的代码依赖关系怎么样?耦合关系怎么样?是否有循环依赖?是否符合高内聚低耦合的原则?通过依赖项分析可以辨别一二。 复杂度分析:以前有人写的程序嵌套了10层 if else你信吗?圈复杂度之高,让人难以阅读。通过复杂度分析可以揪出这些代码,要相信越优秀的代码,越容易读懂。
上面解释了代码质量相关的5个方面,在实际开发环境中,已经有很多工具为我们解决以上5个方面的问题,下列5个eclipse插件分别对这5个问题有很好的支持:
编码标准:CheckStyle 插件URL:http://eclipse-cs.sourceforge.net/update/ 代码重复:PMD的CPD 插件URL:http://pmd.sourceforge.net/eclipse/ 代码覆盖率:Eclemma 插件URL:http://update.eclemma.org 依赖项分析:JDepend 插件URL:http://andrei.gmxhome.de/eclipse/ 复杂度分析:Eclipse Metric 插件URL:http://metrics.sourceforge.net/update
追求代码质量: 软件架构的代码质量 http://www.ibm.com/developerworks/cn/java/j-cq04256/
JDepend http://www.clarkware.com/software/JDepend.html
PMD http://pmd.sourceforge.net/
CheckStyle http://sourceforge.net/projects/eclipse-cs/?source=directory
Eclemma http://www.eclemma.org/
Metrics http://metrics.codahale.com/