自己收集的一些Checkstyle/PMD/Findbugs编码规范,或许对大家有点用
1、 检查使用*号的导入,默认为全部类。
2、 检查多余的导入,如一个类导入了多次。
3、 检查没有使用的导入。
4、 检查是否有非法的包,缺省检查sun.*;对于某些包是不建议直接调用的。
5、 不需要在相同包中导入一个类。
6、 文件的最大行数,缺省为1500。
7、 每行的最大字符数,缺省为80。
8、 方法的最大行数,缺省为150。
9、 匿名类的最大行数,缺省为20。
10、 检查方法参数的最大个数,缺省为7。
11、 检查正确的缩进,不要使用tab键,并建议在提交代码前Format一下。
12、 类名应该以大写字母开头。
13、 方法名最好以小写字母开头。
14、 方法名中不要包含下划线。
15、 软件包的名称不要包含大写字符。
16、 避免过短的变量名。
17、 常量最好由大写与下划线组成。
18、 去掉或者注释掉无用的变量。
19、 抽象类命名为应该为 'AbstractXXX'。
20、 避免没有一个抽象方法的抽象类
21、 在代码中多次出现的字符串最好定义为常量。
22、 避免使用“final”局部变量,将它变成类变量。
23、 避免在循环语句中初始化新对象(new变量)。
24、 确保资源(像连接、声明和记录集) 在使用后总是关闭。
25、 避免“if (x != y) ..; else ..”表达。
26、 大量软件包的导入表明在对象中高度耦合,可以考虑重构。
27、 过长参数列可以表明应该创建一个新的对象来封装众多的参数。从根本上来说,尝试对参数进行集合。
28、 一个没有附带break声明的switch语句可能有缺陷。
29、 有太多类变量的类应被重新设计为含有少量的类变量,可能通过嵌套对象对信息归类 。
30、 重写equals方法的类也需要同时重写hashcode方法。
31、 双重IF语句可以通过&&来结合条件表达式。
32、 语句中if/finally/catch等块内容不可为空。
33、 避免抛出空指针异常。
34、 对于if/else/for等花括号应当另取一行。
35、 对于/**注释信息*/应该写为:/** 注释信息 */。
36、 文件末尾需要一个空行。
37、 每个包下提供一个package.html文件。
38、 一个少于3个分支的switch语句是低效率的,应使用if语句。
39、 返回参数为数组的不能直接返回null,应该返回空数组。
40、 在使用调用创建删除文件方法时,需要处理下返回结果。
41、 集合判断空与非空使用list.isEmpty() 代替 list.size()==0。
42、 StringBuffer在append单个字符时,使用单引号如sb.append(‘:’)。
43、 避免在循环结构中出现较复杂的逻辑,对循环体内容进行方法封装。
44、 通过提取公共方法来去除重复代码。
45、 类实现了Cloneable但没有定义或使用clone方法。
46、 Random对象应一次创建多次使用
47、 clone方法没有调用super.clone()。
48、 字符串比较使用equals代替==与!=。
49、 如果类定义了compareTo()但从java.lang.Object继承了equals(),如果equals方法返回true,则compareTo必须返回0;否则会发生不可预知的错误;即如下表达式必须成立:(x.compareTo(y)==0) == (x.equals(y))。
50、 Array不要调用了toString方法。
51、 在exception路径中,要关闭数据库资源。
52、 IO stream创建后没有在exception路径中close。
53、 方法名或包中其他参数仅有大小写的区别。
54、 序列化类的非临时性字段有非序列化的值。
55、 serialVersionUID字段应该是final的。
56、 serialVersionUID字段类型应该是long。
57、 serialVersionUID字段应该是static的。
58、 类是序列化的,但没有定义serialVersionUID字段。
59、 序列化类的父类没有定义无参的constructor。
60、 equals()比较不相关的类和接口。
61、 比较byte和超出-128到127范围的数字。
62、 类定义了equal(Object),但没有重载java.lang.Object的该方法。
63、 类定义了hashcode(),但没有重载java.lang.Object的该方法。
64、 检查一个不可能为null的值是否为null。
65、 字段重复赋值,例如:x = x = 17。
66、 无意义的计算方法,相同的字段进行计算(例:x&x or x-x)。
67、 匿名类定义了没有调用或重载的方法。
68、 加锁时方法调用Thread.sleep();建议使用wait()。
69、 日历对多线程使用是不安全的。
70、 装箱的原始类型值创建后立即转换为其他的原始类型(new Double(d).intValue()),建议直接使用(int) d这样的形式。
71、 装箱的原始类型创建仅为了调用 toString()。直接调用原始类型的toString方法。例如:new Integer(1).toString() 换为:Integer.toString(1)。
72、 直接使用Double.valueOf(double),而不是new Double(double)。
73、 不建议使用new String(String),直接适应String即可。
74、 字符串和空字符串比较,建议使用 String.length() == 0而不是String.equals("")
75、 字符串调用.toString() 是多余操作。
76、 在循环中字符串拼接使用StringBuffer而不是直接用字符串的+
77、 使用map的entrySet迭代器而不是keySet。
78、 Switch、if语句的几个分支完全相同。
79、 比较两个浮点数。因为浮点数计算可能会导致溢出,考虑使用固定精度例: BigDecimal。
80、 无用的整数比较,因为总是返回相同的值(例:x <= Integer.MAX_VALUE)。
81、 重复判断对象是否不空(前面已知肯定不空)。
82、 类实现了和父类相同的接口。
分享到:
相关推荐
本文将深入探讨三个重要的静态代码分析工具:Checkstyle、PMD和FindBugs,它们都是Eclipse插件,能帮助开发者在编码阶段发现潜在的问题,避免在后期维护时遇到麻烦。以下是对这三个工具的详细介绍以及如何在Eclipse...
"checkstyle+pmd+findbugs插件"就是针对这一需求而设计的一套Eclipse集成插件,适用于MyEclipse也同样适用。这些插件分别对应了Checkstyle、PMD和FindBugs三个著名的开源工具,它们各自关注代码的不同方面,以帮助...
myeclipse 和 eclipse 集成插件
### 在Eclipse中修改Checkstyle、PMD及FindBugs规则集的方法 #### 一、Checkstyle规则集的修改 **1. 替换Checkstyle规则集** 在Eclipse中更新Checkstyle规则集通常涉及几个步骤: - **备份现有配置**:首先确保...
为了确保代码的高质量,开发者通常会使用一系列的工具来检查代码,其中CheckStyle、PMD和FindBugs是非常著名的三个开源工具。这些工具在Myeclipse10及2014版本中都有相应的插件支持,帮助开发者在编码阶段就发现潜在...
checkstyle findbugs pmd svn-subversion(SVN客户端插件) pde-explorer(文件浏览器,在工程中选中某一文件夹,右键open in explorer) 插件合集 安装: 将压缩包解压进eclipse安装目录中,修改dropins中xxx.txt中...
Jenkins 中 FindBugs、PMD、CheckStyle 和 Violations 静态分析工具安装配置 Jenkins 是一个流行的自动化构建和 Continuous Integration(CI)工具,通过安装和配置静态分析工具,可以对 Java 代码进行检测和改进。...
checkstyle findbugs pmd 插件合集 附送一个open in explorer插件,在工程目录右键有个open in eplorer菜单,直接定位到文件夹 安装方法 将压缩包解压到eclipse目录下, 将mylink.txt(可随意修改名字)修改路径后...
mvn clean install checkstyle: checkstyle pmd: pmd pmd: cpd findbugs: findbugs cobertura: cobertura Eclipse:可以通过m2e Eclipse插件导入项目,并使用Checkstyle、PMD和FindBugs分析代码。 可以使用 EclEmma...
### FindBugs、PMD和CheckStyle对比分析 #### 一、概述 本文将详细介绍FindBugs、PMD和CheckStyle这三种静态代码分析工具的特点、功能及其应用场景,并对比它们之间的差异,帮助开发者更好地理解这些工具的优势与...
它可以检查代码是否遵循特定的编码规范,如 Google 或 Sun 的编码规范。通过配置 Checkstyle,团队可以确保所有成员遵循统一的代码风格,从而提高代码的一致性和可读性。Checkstyle 可以作为命令行工具使用,也可以...
Checkstyle是一款静态代码分析工具,主要用于检查代码是否遵循特定的编程规范,如Google编码规范或Sun Microsystems的Java编程规范。在`checkstyle-5.5-bin`中,包含了Checkstyle的库和配置文件。开发者可以自定义...
在本篇文章中,我们将聚焦三个知名的代码静态检查工具:PMD、FindBugs和CheckStyle。 **PMD** PMD是一款开源的Java源代码分析器,它能够检测出可能的问题,如未使用的变量、空的捕获块、复杂的表达式等。PMD通过...
`findbugs`(现称为`Spotbugs`)、`PMD`和`Checkstyle`是三个著名的Java静态代码分析工具,它们可以帮助开发者发现潜在的错误、提高代码质量并确保代码遵循特定的编程标准。 1. **Findbugs/Spotbugs**: - `...
为您运行Checkstyle,PMD,SpotBugs(以前称为FindBugs),Scalastyle,CodeNarc,JSLint,JSHint,TSLint和Detekt!用法Sputnik仅在受Gerrit补丁集影响的文件上运行Checkstyle,PMD,SpotBugs,CodeNarc,JSHint...
本知识点主要聚焦于如何在Gradle构建平台上集成Findbugs、Checkstyle、PMD这三种流行的静态代码检查工具。 **Gradle平台集成静态代码检查** **1. 静态代码检查工具简介** - **Findbugs**:这是一个分析Java字节码...
"https://raw.githubusercontent.com/chibatching/gradle-android-ci-check/master/ci.gradle"使用你自己的配置如果要使用自己的配置,请在 gradle.properties 中写入本地配置文件路径 checkStyleConfigFile=../...
在Android开发过程中,保持代码质量和遵循最佳...通过集成CheckStyle、FindBugs、PMD和Lint,开发者可以在开发早期发现和修复问题,提升代码质量和可读性,降低维护成本,同时也有助于团队形成统一的编码风格和标准。
接着,脚本会切换到`Check_Findbugs_ExtractPlugin`目录下执行类似的步骤,并且还包含了CheckStyle和PMD检查。 4. **解析FindBugs报告**: - 使用Jenkins插件来解析生成的FindBugs XML报告。 - 在Jenkins项目的...
为了实现这一目标,开发者通常会使用各种静态代码分析工具,如Checkstyle、FindBugs和PMD。这些工具可以帮助识别潜在的问题,确保代码的可读性、可维护性和一致性。Gradle作为Android的构建系统,提供了集成这些静态...