Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
常用 JAVA 代码质量静态检查工具 开发一部 - 胡伟军 2009 年 6 月
目录 <ul><li>软件开发经历反省 </li></ul><ul><li>我们代码中常见几类问题 </li></ul><ul><li>Quality Metrics Tools  </li></ul><ul><ul><li>CheckStyl...
我们代码中常见几类问题 <ul><li>使用了不规范的变量和方法名 </li></ul><ul><li>EsbResultModel validRule(HashMap orderInfo, ArrayList orderItems, Stri...
我们代码中常见几类问题 <ul><li>错误的使用 /**  */  和 /*  */   </li></ul><ul><li>很多 public 方法和常量使用了 /* */ 来注释,导致注释内容不能被写入 javadoc 。而另一方面是错误...
我们代码中常见几类问题 <ul><li>代码中有不少 magic-number 和 magic-string   </li></ul><ul><li>刘谦的魔术很好看,可是如果你维护的代码跟刘谦的一样,估计你会抓狂的! </li></ul><u...
我们代码中常见几类问题 <ul><li>有些代码的写法不容易理解 </li></ul><ul><li>不一致的代码风格   </li></ul><ul><li>例如, String oneitems[] vs String[] oneitems...
<ul><li>NO   EXCUTABLE </li></ul>
Why using  Quality Metrics Tools  <ul><li>一个软件的生命周期中, 80% 的花费在于维护  </li></ul><ul><li>几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护  </...
CheckStyle <ul><li>CheckStyle 用来检查代码格式、规范、风格 </li></ul><ul><li>检查并强制执行统一的代码风格 </li></ul><ul><li>检查 Javadoc </li></ul><ul><...
Checkstyle- 安装 <ul><li>Eclipse 插件地址  http://eclipse-cs.sourceforge.net/update </li></ul>
Checkstyle- 启用
Checkstyle— 配置规范
Checkstyle 使用效果 <ul><li>黄色的区域就是 checkstyle 检查出有问题的地方(红色表示错误,黄色表示警告)。  </li></ul>
Checkstyle- 编写 javadoc 注意点 <ul><li>/** {@inheritDoc} */  </li></ul><ul><li>public int checkReturnTag(final int aTagIndex, ...
PMD <ul><li>PMD 提供了一些开发过程中的最佳实践。 </li></ul><ul><li>Possible bugs - empty try/catch/finally/switch statements  </li></ul><u...
PMD-Exception  规则 <ul><li>AvoidCatchingThrowable </li></ul><ul><li>SignatureDeclareThrowsException </li></ul><ul><li>Excep...
PMD <ul><li>PMD 中的很多规则会比较有争议,或者跟大家现有的技术框架、代码结构有冲突。 </li></ul><ul><li>大家可以通过自定义的这些规则的级别( Error , Warning )来把握对这些规则的使用程度。 </...
FindBugs <ul><li>FindBugs 是一个 java 代码的静态代码分析工具,用来发现那些潜在的、常见的、很难被发现的 bug. </li></ul>
其他的工具 <ul><li>Jslint - The JavaScript Code Quality Tool </li></ul>
Why using  Quality Metrics Tools <ul><li>提升代码质量 </li></ul><ul><li>降低维护成本 </li></ul><ul><li>提高开发效率 </li></ul>
相关资料 <ul><li>Java Power Tools  </li></ul>
THE END 谢谢!
Upcoming SlideShare
Loading in …5
×

常用JAVA代码质量静态检查工具

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Login to see the comments

  • Be the first to like this

常用JAVA代码质量静态检查工具

  1. 1. 常用 JAVA 代码质量静态检查工具 开发一部 - 胡伟军 2009 年 6 月
  2. 2. 目录 <ul><li>软件开发经历反省 </li></ul><ul><li>我们代码中常见几类问题 </li></ul><ul><li>Quality Metrics Tools </li></ul><ul><ul><li>CheckStyle </li></ul></ul><ul><ul><li>PMD </li></ul></ul><ul><ul><li>FindBugs </li></ul></ul><ul><ul><li>JSLink </li></ul></ul>
  3. 3. 我们代码中常见几类问题 <ul><li>使用了不规范的变量和方法名 </li></ul><ul><li>EsbResultModel validRule(HashMap orderInfo, ArrayList orderItems, String Role); String role 要小写 </li></ul><ul><li>类、 public 方法和常量 javadoc 的缺失 </li></ul><ul><li>javadoc 中的声明跟实际的方法不一致,例如方法实际只有 1 个参数,而 javadoc 里 @param 定义了多个(估计是方法签名的时候没有同步的修改 javadoc ) </li></ul>
  4. 4. 我们代码中常见几类问题 <ul><li>错误的使用 /** */ 和 /* */ </li></ul><ul><li>很多 public 方法和常量使用了 /* */ 来注释,导致注释内容不能被写入 javadoc 。而另一方面是错误使用 /** */ 导致错误的内容被写入 javadoc </li></ul><ul><li>存在未被使用的方法和变量 </li></ul><ul><li>这些不被使用方法和变量名会增加日后 bug 修改、代码维护的成本 </li></ul><ul><li>方法超长 </li></ul><ul><li>一个方法超过 150 行,是不是太长太复杂了  。 </li></ul>
  5. 5. 我们代码中常见几类问题 <ul><li>代码中有不少 magic-number 和 magic-string </li></ul><ul><li>刘谦的魔术很好看,可是如果你维护的代码跟刘谦的一样,估计你会抓狂的! </li></ul><ul><li>String s = “0000” + Integer.toString(ch, 16); 0000 是什么, 16 是啥东东,就算是作者 3 个礼拜也不记得当初写这段代码的用意了。 </li></ul><ul><li>Import 了一些不需要的类 </li></ul><ul><li>提交代码以前请务必 Organize Imports 。 </li></ul>
  6. 6. 我们代码中常见几类问题 <ul><li>有些代码的写法不容易理解 </li></ul><ul><li>不一致的代码风格 </li></ul><ul><li>例如, String oneitems[] vs String[] oneitems 前者是 C/C++ 的编码风格;咱们写的是 java ,就统一用 String[] oneitems 吧。 </li></ul>
  7. 7. <ul><li>NO EXCUTABLE </li></ul>
  8. 8. Why using Quality Metrics Tools <ul><li>一个软件的生命周期中, 80% 的花费在于维护 </li></ul><ul><li>几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护 </li></ul><ul><li>编码规范可以改善软件的可读性,可以让程序员尽快而彻底地理解新的代码 </li></ul><ul><li>…… </li></ul>
  9. 9. CheckStyle <ul><li>CheckStyle 用来检查代码格式、规范、风格 </li></ul><ul><li>检查并强制执行统一的代码风格 </li></ul><ul><li>检查 Javadoc </li></ul><ul><li>检查类、变量、方法的命名 </li></ul><ul><li>检查类和方法的大小 </li></ul><ul><li>检查编码错误,例如 magic number </li></ul><ul><li>…… </li></ul>
  10. 10. Checkstyle- 安装 <ul><li>Eclipse 插件地址 http://eclipse-cs.sourceforge.net/update </li></ul>
  11. 11. Checkstyle- 启用
  12. 12. Checkstyle— 配置规范
  13. 13. Checkstyle 使用效果 <ul><li>黄色的区域就是 checkstyle 检查出有问题的地方(红色表示错误,黄色表示警告)。 </li></ul>
  14. 14. Checkstyle- 编写 javadoc 注意点 <ul><li>/** {@inheritDoc} */ </li></ul><ul><li>public int checkReturnTag(final int aTagIndex, JavadocTag[] aTags, int aLineNo) </li></ul>
  15. 15. PMD <ul><li>PMD 提供了一些开发过程中的最佳实践。 </li></ul><ul><li>Possible bugs - empty try/catch/finally/switch statements </li></ul><ul><li>Dead code - unused local variables, parameters and private methods </li></ul><ul><li>Suboptimal code - wasteful String/StringBuffer usage </li></ul><ul><li>Overcomplicated expressions - unnecessary if statements, for loops that could be while loops </li></ul><ul><li>Duplicate code - copied/pasted code means copied/pasted bugs </li></ul>
  16. 16. PMD-Exception 规则 <ul><li>AvoidCatchingThrowable </li></ul><ul><li>SignatureDeclareThrowsException </li></ul><ul><li>ExceptionAsFlowControl </li></ul><ul><li>AvoidThrowingRawExceptionTypes </li></ul><ul><li>AvoidThrowingNullPointerException </li></ul><ul><li>AvoidRethrowingException </li></ul><ul><li>DoNotExtendJavaLangError </li></ul><ul><li>DoNotThrowExceptionInFinally </li></ul><ul><li>AvoidThrowingNewInstanceOfSameException </li></ul><ul><li>http://pmd.sourceforge.net/rules/strictexception.html </li></ul>
  17. 17. PMD <ul><li>PMD 中的很多规则会比较有争议,或者跟大家现有的技术框架、代码结构有冲突。 </li></ul><ul><li>大家可以通过自定义的这些规则的级别( Error , Warning )来把握对这些规则的使用程度。 </li></ul>
  18. 18. FindBugs <ul><li>FindBugs 是一个 java 代码的静态代码分析工具,用来发现那些潜在的、常见的、很难被发现的 bug. </li></ul>
  19. 19. 其他的工具 <ul><li>Jslint - The JavaScript Code Quality Tool </li></ul>
  20. 20. Why using Quality Metrics Tools <ul><li>提升代码质量 </li></ul><ul><li>降低维护成本 </li></ul><ul><li>提高开发效率 </li></ul>
  21. 21. 相关资料 <ul><li>Java Power Tools </li></ul>
  22. 22. THE END 谢谢!

×