`
江南白衣
  • 浏览: 545223 次
  • 来自: 广州
社区版块
存档分类
最新评论

SpringSide的Coding Standards

阅读更多

前言   

    本文档反映的是SpringSide 团队的编码规范,同时推荐所有使用SpringSide框架的开发人员遵循。

    本文档基本遵循Sun's Coding Conventions,补充了其中没有说明或者有所改动的地方。

   本文档随SpringSide的开发而不断更新,最新版本请访问SpringSide Wiki:
    
    http://wiki.springside.org.cn/display/springside/Coding+Standards

版权声明   

    本规范由springside团队维护,相关评论与意见请发至springside@gmail.com,转载请注明出处。

规范等级说明

1.格式与命名规范(Formating and Naming Conventions)

1.1  缩进

  使用Tab缩进,而不是空格键--将缩进2,4,8字符的选择权留给阅读者。

1.2 换行

   每行120字符--因为已是1024*768的年代。

   if,for,while语句只有单句时,如果该句可能引起阅读混淆,需要用" {"和"}"括起来,否则可以省略。

1.3 命名规则 

1.4 声明

     同等的类型,按public, protected, private的顺序排列。

2.注释规范(Document Convertions)

2.1 注释类型

2.1.1 JavaDoc注释

  略。

2.1.2 失效代码注释

  由/*...*/界定,标准的C-Style的注释。专用于注释已失效的代码。

 

2.1.3 代码细节注释

  由//界定,专用于注释代码细节,即使有多行注释也仍然使用//,以便与用/**/注释的失效代码分开

  除了私有变量外,不推荐使用行末注释。

 

2.2 注释的格式

2.3 注释的内容

2.3.1 可精简的注释内容

    注释中的每一个单词都要有其不可缺少的意义,注释里不写"@param name -名字"这样的废话。
    如果该注释是废话,连同标签删掉它,而不是自动生成一堆空的标签,如空的@param name,空的@return。

2.3.2 推荐的注释内容

2.3.3 Null规约

   如果方法允许Null作为参数,或者允许返回值为Null,必须在JavaDoc中说明。
   如果没有说明,方法的调用者不允许使用Null作为参数,并认为返回值是Null Safe的。

 

2.3.4 特殊代码注释

3.编程规范(Programming Conventions)

3.1基本规范

  1. 当面对不可知的调用者时,方法需要对输入参数进行校验,如不符合抛出IllegalArgumentException,建议使用Spring的Assert系列函数。 
  2. 隐藏工具类的构造器,确保只有static方法和变量的类不能被构造
  3. 变量定义尽量基于接口而不是具体实现类,如Map map = new HashMap()
  4. 代码中不能使用System.out.println(),e.printStackTrace(),必须使用logger打印信息。

3.2 异常处理

  1. 重新抛出的异常必须保留原来的异常,即throw new NewException("message",e); 而不能写成throw new NewException("message")。
  2. 在所有异常被捕获且没有重新抛出的地方必须写日志。 
  3. 如果属于正常异常的空异常处理块必须注释说明原因,否则不允许空的catch块。
  4. 框架尽量捕获低级异常,并封装成高级异常重新抛出,隐藏低级异常的细节。(III)

3.3 代码度量

3.3.1 耦合度度量

3.3.2 方法度量

3.3.3 其他度量

3.4 JDK5.0

  1. 重载方法必须使用@Override,可避免父类方法改变时导致重载函数失效。
  2. 不需要关心的warning报告用@SuppressWarnings("unused"),@SuppressWarnings("unchecked"),@SuppressWarnings("serial") 注释掉

4.自动代码检查

   使用EclipseInellij IDEA的代码校验已经可以查出很多的代码质量问题。再配合使用CheckstylePMDFindBugs三重检查,涵盖了大部分的代码GuideLine。

  1. Eclipse:在Windows->Preferences->Java-Compiler->Errors/Warnings中,按本文档的规则将一些原来Ignore的规则打开。
  2. IDEA:在Setting->Errors中设定规则,调用Analyzer->Inspece Code进行校验。
  3. CheckStyle:安装CheckStyle的Eclipse插件,在Windows->Preferences->CheckStyle导入springside团队预设在/tools/codereviewer/springside_check.xml的规则
  4. PMD:安装PMD的Eclipse插件,Windows->Preferences->PMD清除原来所有规则,导入springside团队预设在/tools/codereviewer/springside_pmd.xml的RuleSet。
  5. FindBugs:安装FindBugs的Eclipse插件,在项目属性->FindBugs中,取消下列警告MS/EI/EI2/ , SnVI/SE/WS/RS ,ST/NP/UwF/SS/UuF|UrF|SIC 

5.参考资料

  1. Sun's Coding Conventions Sun MicroSystem;
  2. The Elements of Java Style  Scott W. Ambler 等著;
  3. 代码检测工具的规则: checkstylepmdfindbugs
 

分享到:
评论
2 楼 JavaStudyEye 2012-01-12  
6年后 来看这个帖子,依然觉得很坚挺。
1 楼 stone_du 2008-05-25  
good share

相关推荐

Global site tag (gtag.js) - Google Analytics