开发,尤其是团队开发时,经常面临这样的问题:
以上都不会影响代码的运行,但是却给程序布下了不便或者隐患。所以开发前,团队总会制定规范文档,但是文档只具有借鉴的作用,不具有约束力,靠的是大家的自律;如果靠人工检查,耗时耗力——你需要Checkstyle。
前段时间为了保证团队开发的在风格上的一致性,比如:函数命名、代码长度 、文件长度、注释规范等,写了一个关于Checkstyle基础文档,供大家参考学习《Checkstyle_下载_配置_使用手册》。
然后打开使用Checkstyle的项目文件,如ICollegeBean.java即可看到Checkstyle的效果,每个小放大镜都会提示问题位置及原因:
<?xml version="1.0"?> <!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.2//EN" "http://www.puppycrawl.com/dtds/configuration_1_2.dtd"> <module name="Checker"> <!--提示信息的严重性--> <property name="severity" value="warning"/> <!-- Checks that a package.html file exists for each package. --> <!-- See http://checkstyle.sf.net/config_javadoc.html#PackageHtml --> <module name="JavadocPackage"/> <!-- 忽略检测文件末尾是否有新行 --> <!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile --> <module name="NewlineAtEndOfFile"> <property name="severity" value="ignore"/> </module> <!-- 检测两个资源文件是否具有相同的key --> <!-- See http://checkstyle.sf.net/config_misc.html#Translation --> <module name="Translation"/> <!--……………………其它配置…………--> </module>在它内部,将每个需要检测的单元以module的方式封装起来,需要检查哪些检测,将该module放入配置文件,并指定值即可。
一般我们都需检测什么:
1.tab宽度:每个tab代表4个单位宽度
2.注释:检测注释的名称和个数是否和参数匹配
3.命名规范:检测函数和参数名是否符合Sun规范
4.import:检测import引用项是否符合规范
5.代码行长度:定义为最长120个宽度
6.函数长度:函数最长代码行为150行
7.参数个数:函数参数个数最多为7个
8.空格:检测不必要的空格
9.嵌套:检测嵌套情况
10.文件长度:文件最长为2000行
11.资源文件:检测相同名称的资源文件是否有相同的key
12.编码规范:检测常见编码规范,如空行、静态变量使用、非法对象实例化
凡是与人工代码无关的内容,请交给计算机。更多详见《Checkstyle_下载_配置_使用手册》。
原文:http://blog.csdn.net/lidatgb/article/details/19781189