1,问题与思考
軟件產品的質量最終落地,還是取決與代碼的質量。很難想象,糟糕的代碼質量怎麽能保證軟件很好的被用戶使用。
代码是工程师与硬件机器交流的语言。和人类语言交流一样,表达一个相同的意思可以用很多不同的方法。
哪一种表达的方法更好呢?对于代码而言,大概有三个方面的内容。
第一个方面是看起来如何。
第二个方面是分析起来如何。
第三个方面是运行起来如何。
前面两个方面的内容属于代码的静态质量问题,最后一个方面属于代码的动态质量问题。
总之,静态的代码质量问题包括:抒写风格、逻辑规则、静态分析等等;动态的代码质
量问题包括代码的单元测试,性能测试等等。
2, 方法与困难
提到代碼質量管理問題,大多數開發者都會說,可以通過代碼評審來提升項目的代碼質量。
但是在實際的開發工程中,是很難做到。一方面沒有充分的時間做相關的工作,另一方面
評審的過程主觀性太強,沒有統一的標準,造成很難實際執行。
3,方案與工具
所以我们需要一种標準化、自动化的解決方案。
市场上有一些工具辅助执行,例如:
jindent、checkstyle、pmd、findbugs,Junit、jprofile,jrscript等等。
jinent、checkstyle主要解决代码的书写格式的问题;
pmd主要解决代码的一些逻辑规则的问题;
findbugs主要解决了代码的靜態分析问题可以检测很多代码中存在的潜在bug。
junit主要解決單元測試的問題;
jprofile主要解決一些性能問題;
jrscript 主要解決了标准化代码的编写风格、逻辑规则、靜態分析等等的問題,通過這一個
工具即可統一解決 jindent、checkstyle、pmd、findbugs等等的所有功能,而且可以
自動優化、自動批注源碼的功能.
这些工具各自存在一些缺点,如下對各自進行一個對比:
书写格式 | 逻辑规则 | 靜態分析 | 單元測試 | 性能測試 | |
---|---|---|---|---|---|
jinent | 支持 | 不支持 | 不支持 | 不支持 | 不支持 |
checkstyle | 支持 | 不支持 | 不支持 | 不支持 | 不支持 |
pmd | 不支持 | 支持 | 不支持 | 不支持 | 不支持 |
findbugs | 不支持 | 支持 | 支持 | 不支持 | 不支持 |
Junit | 不支持 | 不支持 | 不支持 | 支持 | 不支持 |
jprofile | 不支持 | 不支持 | 不支持 | 不支持 | 支持 |
jrscript | 支持 | 支持 | 支持 | 不支持 | 不支持 |
4,jrscript解決方案
jrscript是内置一种专门的java代码规则引擎的脚本编程语言。使用这种脚本技术可以自动优化和检测开发人员生产的代码,从而把优秀的编程技术和经验积累下来。我们只要将开发人员的代码通过我们系统检测,就可以自动的优化源码在编写风格上面的缺陷,以及大量积累的良好编程经验。对不能自动优化的部分自动生成标准,然后由给相应的工程师解决。从而高效的控制了软件公司生产的代码质量,并且使所有开发人员生产的代码达到统一的标准。
5,资料下载
官网地址:jrscript官网