`
wang516483474
  • 浏览: 11746 次
社区版块
存档分类

java项目命名规范

阅读更多

 

规范等级说明

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

1.1  缩进

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

1.2 换行

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

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

 

//错误,需要使用花括号{}括起来
if (condition)
    
if(condition) doSomething();
else
    doSomething();

1.3 命名规则 

  • 遇到缩写如XML时,仅首字母大写,即loadXmlDocument()而不是loadXMLDocument()
  • Package名必须全部小写,尽量使用单个单词
  • Interface名可以是一个名词或形容词(加上'able','ible', or 'er'后缀),如Runnable,Accessible。
    为了基于接口编程,不采用首字母为I或加上IF后缀的命名方式,如IBookDao,BookDaoIF。
  • 局部变量及输入参数不要与类成员变量同名(get/set方法与构造函数除外)

1.4 声明

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

2.注释规范(Document Convertions)

2.1 注释类型

2.1.1 JavaDoc注释

  略。

2.1.2 失效代码注释

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

/*
 * Comment out the code
 * String s = "hello";
 * System.out.println(s);
 
*/ 

2.1.3 代码细节注释

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

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

class MyClass {

    
private int myField; // An end-line comment.

    
public void myMethod {

       
//a very very long
       
//comment.
       if (condition1) {
          
//condition1 comment
          ...
        } 
else {
          
//elses condition comment
          ...
        }
    }
} 

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的。

/**
 * 获取对象.
 *
 * @ return the object to found or null if not found.
 
*/
Object get(Integer id){
    ...
}
 

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.自动代码检查

   使用Eclipse 与 Inellij 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. 代码检测工具的规则: checkstylepmd ,findbugs

本文转自 :Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1443852

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

分享到:
评论

相关推荐

    Java命名规范 Java命名规范

    Java命名规范是编程实践中至关重要的指导原则,旨在提高代码的可读性和一致性。遵循这些规范,可以帮助团队成员更好地理解和维护代码,减少误解和错误。以下是Java命名规范的主要方面: 1. **包(Package)**: 包名...

    Java 开发命名规范

    Java 开发命名规范是指在 Java 项目中对包名、类名、变量名等命名的规则和惯例,旨在确保代码的可读性、可维护性和重用性。本文将对 Java 开发命名规范进行详细的解释和说明。 一、包名命名规范 包名是 Java 项目...

    java-命名规范整理.docx

    Java 命名规范是指在 Java 编程语言中为变量、类、方法、包等命名的规则和约定。遵守良好的命名规范可以提高代码的可读性、易维护性和协作性。 包命名规范: * 包名全部小写 * 针对不同的项目类型,细分为个体项目...

    Java语言命名规范

    Java语言命名规范是Java编程中的一项基本规则,它旨在提高代码的可读性、可维护性和一致性。遵循这些规范对于任何Java开发者来说都是至关重要的,因为它使得团队成员能够更容易地理解彼此的代码,从而提高协作效率。...

    Java 项目开发规范

    以下将详细介绍Java项目开发规范中关于MVC各模块的命名规范。 **1. 命名方式** - 文件名、变量名应使用有意义的英文或英文缩写命名,确保名称与数据表结构的名称一致,以便提高查阅效率。 - 多词组合命名遵循驼峰...

    Java代码命名规范

    ### Java代码命名规范 在Java编程中,遵循良好的命名规范对于编写可读性强、易于维护的代码至关重要。尤其是对于Java初学者来说,培养正确的命名习惯能够有效减少后续开发中的问题,提升团队协作效率。本文将从变量...

    JAVA项目开发规范

    这份文档详细地阐述了JAVA项目中的各类命名规范、注释规范、项目文件夹组织规范以及排版规范,旨在提升软件的可读性、可重用性、健壮性、可移植性和可维护性。 ### 命名规范 #### 包命名规范 包命名应反映项目的...

    java项目搭建命名规范

    本人觉得这对于从事程序开发的程序员很有必要的了解一下。 因为这是一下很基本的东西,不解释!

    java命名规范以及注释规范

    Java编程语言有着严格的命名规范和注释规则,这对于提高代码的可读性、可维护性和团队协作至关重要。以下是对这些规范的详细说明: 1. **包名命名规范**: - 包名全由小写字母组成,可以包含少量数字。 - Java...

    java开发命名规范

    ### Java开发命名规范详解 #### 一、概述 在Java软件开发过程中,遵循一套统一的命名规范至关重要。它不仅能够提高代码的可读性和可维护性,还能够增强团队协作效率。本文将根据提供的文件信息,详细介绍Java开发...

    java命名规则

    Java编程语言以其严谨的规范和良好的可读性著称...Java命名规范是编程实践中的一项基本准则,遵守这些规则可以使代码更易于理解和维护,也利于团队间的合作。熟练掌握并应用这些规范,将有助于提升编程效率和代码质量。

    java命名规范 一些详细

    ### Java命名规范详解 在Java开发过程中,遵循一套合理的命名规范不仅能够提高代码的可读性和可维护性,还能帮助团队成员更快地理解和协作。本文将详细介绍Java中的命名规范,并结合给定的部分内容来具体说明。 ##...

    Java SSH 命名规范

    Java SSH(Spring、Struts和Hibernate)命名规范是软件开发中的一个重要方面,它确保了代码的可读性、可维护性和一致性。以下是基于提供的信息详细解释的命名规范: ### 包的命名 - 包名全为小写字母,遵循反向域名...

    java类与方法命名规则

    4. **其他命名规范**: - 避免使用Java关键字作为变量名,如`class`、`void`等。 - 避免使用缩写,除非它是广泛认可且无歧义的,例如`num`代表数字。 - 常量(Constants)通常使用全大写字母,用下划线分隔单词,...

    java命名规范分享

    Java编程语言的命名规范是确保代码清晰、可读和易于维护的关键部分。这些规范不仅有助于团队成员之间的沟通,还能提高代码质量。以下是一些主要的Java命名规则: 1. **包名**: - 包名应全部使用小写字母。 - ...

    JAVA命名规范.pdf

    Java编程语言的命名规范是确保代码清晰、一致性和可读性的关键部分。这些规范帮助开发者理解和维护代码,尤其是在团队合作的大型项目中。以下是一些主要的Java命名规则: 1. **包(Package)的命名**: 包名应该...

    Java 包对命名规则

    在Java编程语言中,包(Package)是一种组织代码的方式,它可以帮助我们管理类和接口,避免命名冲突,提高代码的可维护性和可重用性。...因此,对于任何Java开发者来说,掌握包的命名规范都是至关重要的。

Global site tag (gtag.js) - Google Analytics