专栏名称: 程序员大咖
为程序员提供最优质的博文、最精彩的讨论、最实用的开发资源;提供最新最全的编程学习资料:PHP、Objective-C、Java、Swift、C/C++函数库、.NET Framework类库、J2SE API等等。并不定期奉送各种福利。
目录
相关文章推荐
OSC开源社区  ·  苹果用Swift重写每天数十亿次请求的Jav ... ·  2 天前  
大淘宝技术  ·  Agent工程能力思考记录 ·  2 天前  
51好读  ›  专栏  ›  程序员大咖

怎样编写高质量的 Java 代码

程序员大咖  · 公众号  · 程序员  · 2018-04-20 10:24

正文

请到「今天看啥」查看全文



编码标准: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


注:某些插件需要科学上网才能更新


编码标准(CheckStyle的使用)


在eclipse上安装好了CheckStyle插件后,我们来建一个类用它跑一下。这个类很简单,一个常见的用户实体,包含了id,用户名、密码、邮件等属性,并包含get set方法,一个标准的POJO。运行CheckStyle检查一下:



一个我们平时再普通不过的一个类,被checkstyle弄出这么多问题,情何以堪,我们来看看究竟是什么情况?


看一下这些警告信息:


line 1、 ,说缺少package-info.java文件。


line 2、 ,说第一句注释要以“.”结尾。


line 30、 ,缺少java doc注释。


line 35、 ,getId不是继承的方法,必须指定abstract,final或空。另外也缺少java doc注释。


这个类基本就这四类毛病,缺少package-info.java文件,这个文件是做什么的呢?他是用来描述包注释的类,有一定的特殊性,要想详细了解请百度。如果对你的项目没有太大的影响,可以忽略它。配置CheckStyle的方法我们等会再说。第一句注释要以“.”结尾,这看你的习惯,你确定需要这个,你就保留,不需要就忽略。缺少java doc,对于java类的属性来说,注释是必要的,所以这个要保留。不是继承的方法,需要加上final关键字,如果你有这个习惯,就保留,反之忽略。


我们这里只是建立了一个最简单的类用CheckStyle来检查,随着你的类代码越来越多,逻辑越来越复杂,CheckStyle能检查出来的毛病也越来越多。常见的CheckStyle错误有这些:


1.Type is missing a javadoc commentClass

缺少类型说明

2.“{” should be on the previous line

“{” 应该位于前一行

3.Methods is missing a javadoc comment

方法前面缺少javadoc注释

4.Expected @throws tag for “Exception”

在注释中希望有@throws的说明

5.“.” Is preceeded with whitespace “.”

前面不能有空格

6.“.” Is followed by whitespace“.”

后面不能有空格

7.“=” is not preceeded with whitespace

“=” 前面缺少空格

8.“=” is not followed with whitespace

“=” 后面缺少空格

9.“}” should be on the same line

“}” 应该与下条语句位于同一行

10.Unused @param tag for “unused”

没有参数“unused”,不需注释

11.Variable “CA” missing javadoc

变量“CA”缺少javadoc注释

12.Line longer than 80characters

行长度超过80

13.Line contains a tab character

行含有”tab” 字符

14.Redundant “Public” modifier

冗余的“public” modifier

15.Final modifier out of order with the JSL

suggestionFinal modifier的顺序错误

16.Avoid using the “.*” form of import

Import格式避免使用“.*”

17.Redundant import from the same package

从同一个包中Import内容

18.Unused import-java.util.list

Import进来的java.util.list没有被使用

19.Duplicate import to line 13

重复Import同一个内容

20.Import from illegal package

从非法包中 Import内容

21.“while” construct must use “{}”







请到「今天看啥」查看全文