java代码开发规范

标签: java 代码 开发 | 发表时间:2012-09-11 08:51 | 作者:Nirvana reborn
出处:http://www.blogjava.net

Java代码开发规范

                       

格式规范:                                                                      

      1、TAB空格的数量。编辑器上的TAB空格数量统一取值为4

      2、换行, 每行120字符

      3、if语句的嵌套层数3层以内   

      4、匿名内部类20行以内 ,太长的匿名内部类影响代码可读性,建议重构为命名的

        (普通)内部类。

      5、文件长度2000行以内

    6、方法长度150行以内

      7、逻辑上相关序代码与其前后之程序代码间应以空白行加以分隔;在注释段与程序

         段、以及不同程序段插入空行。提高可读性

   

      8、方法(构造器)参数在5个以内 ,太多的方法(构造器)参数影响代码可读性。

         考虑用值对象代替这些参数或重新设计。

    9、CC 度量值不大于10

         解释:CC(CyclomaticComplexity)圈复杂度指一个方法的独立路径的数量,可以

         用一个方法内if,while,do,for,catch,switch,case,?:语句与&&,||操作符的

         总个数来度量。

   10、NPath度量值不大于200

         解释:NPath度量值表示一个方法内可能的执行路径的条数。

    11、布尔表达式中的布尔运算符(&&,||)的个数不超过3个

      

命名规范:                                                                                                               

开发人员如果遇到以下未列举的类型,请书面通知相关管理人员,由管理人员集中更新列

 表内容,不得擅自启用未经确定的新变量前缀

   

  包名 必须全部用小写。

 命名方式:业务领域名.子系统名.层名 如com.iteach.dao.weibo

   

类名 以英文单词取名,首字母必须大写,多个英文单词以大写字母间隔,避免使用单词的缩写,除非它的缩写已经广为人知,如HTTP。类名中不允许'_'、 '-'等符号。 [A4] 

   

属性 在类定义的开始,按照public,protected,package,private顺序放置。定义local变量尽量在那段代码的开始处,如方法的开始处。

如果是if,for,while段,尽量在左大括号"{"的下一行处定义要使用的local变量。

尽量用相同含义英文单词表示,不允许'_'、 '-'等符号,如:custName。第一个字母小写,中间单词的第一个字母大写。不要用_或&等符号作为第一个字母。 单字符的变量名一般只用于生命期非常短暂的变量。如:i,j,k,m,n一般用于int。如果变量是集合,则变量名应用复数,即以小写s结尾 。例如:

序号

变量名称

注    释

1

strFileName

"文件名"字符串类型

2

intFileCount

"文件总数"整型

3

strFames

多个"文件名"的集合

4

gMemory

全局变量

   

 常量名 均全部大写,单词间以'_'隔开。例如:

序号

常量名称

注 释

1

MAX_NUM

最大数

2

public static final String FUNCTION_LIST = "function_list";

   

方法 命名采用"动作+属性" 的方法。并且,动作以小写字母开始,属性以大写字母开始。常用的动作有:is、get、set、add、 update、del等。

例如:getName、setName、isSysManager、saveXXX、mdfXXX、delXXX等。

规则名称

规则

说明

新增数据

addXXX

  

修改数据

updateXXX

  

删除数据

deleteXXX

  

查询数据

findXXX

getXXX

findUserByName() 获取单个

getUserByName()  获取所有

备注:

      遇到缩写如XML时,仅首字母大写,即loadXmlDocument()而不是

          loadXMLDocument()

   

          为了基于接口编程,不采用首字母为I或加上IF后缀的命名方式,如

          IBookDao,BookDaoIF。

   

          页面部件名建议命名为:btnOK、lblName或okBtn、nameLbl

          其中btn、lbl缩写代表按钮(Button)、标签(Label)。

   

注释规范:                                                                      

在类、方法开始之前需要添加中文注释,类和方法的注释采用Java自动生成的注释格式。

      1、类注释:

 /**

* 类功能说明

* 类创建者 创建日期

     */

        2、函数注释

 /**

     * 函数功能说明

* 创建者名字 创建日期

* 修改者名字 修改日期

* 修改内容

     * @param 参数名称  参数类型 参数说明

     * @return 返回值类型 返回值说明

*/

      3、程序段注释

             如果做过修改需加上修改者和日期   //修改者 修改日期 说明

或者     

          /**

           *修改者 修改日期

           *说明

           */

     4、变量或属性注释

          //说明

     5、失效代码注释

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

    

       注:没有意义的注释语句删掉,不留空的注释语句

   

   

   

    备注建议的注释:(非下划线标注的规范建议使用,不强制)

       循环语句和判断语句前必须注释。

        特殊变量声明时需要注释。

           如果方法允许Null作为参数,或者允许返回值为Null,必须在JavaDoc中说明。

   

           注释中的第一个句子要以(英文)句号、问号或者感叹号结束。Javadoc生成

           工具会将注释中的第一个句子放在方法汇总表和索引中。

           

           为了在JavaDoc和IDE中能快速链接跳转到相关联的类与方法,尽量多的使用

           @see xxx.MyClass,@see xx.MyClass#find(String)。

   

           如果注释中有超过一个段落,用<p>分隔。

           示例代码以<pre></pre>包裹。

           标识(java keyword, class/method/field/argument名,Constants) 以<code></code>

           包裹。

   

           标识在第一次出现时以{@linkxxx.Myclass}注解以便JavaDoc与IDE中可以链

           接。

              

           如果该注释是废话,连同标签删掉它,而不是自动生成一堆空的标签,如空的

           @param name,空的@return。

   推荐的注释内容:

           对于API函数如果存在契约,必须写明它的前置条件(precondition),后置条件

           (postcondition),及不变式(invariant)。

   

           对于调用复杂的API尽量提供代码示例。

           对于已知的Bug需要声明。

           在本函数中抛出的unchecked exception尽量用@throws说明。

   

           代码质量不好但能正常运行,或者还没有实现的代码用//TODO: 或 //XXX:

           声明存在错误隐患的代码用//FIXME:声明

   

异常处理:                                                                     

          重新抛出的异常必须保留原来的异常,即throw new NewException("message", e);

          而不能写成throw new NewException("message")。

   

          在所有异常被捕获且没有重新抛出的地方必须写日志。

          如果属于正常异常的空异常处理块必须注释说明原因,否则不允许空的catch块。

   

          框架尽量捕获低级异常并封装成高级异常重新抛出,隐藏低级异常的细节,方便 

          系统能够更好的跟踪运行情况。

           

           

          如果一个层要抛出多个异常,那么所有自定义异常必须统一继承一个父类异常。

          这样上层可以通过父类异常捕获。

   

编写细节建议规范:                                              

   

1、 为了提高可读性,一般情况下,字符串的连接使用"+",而不是StringBuffer

         中的方法。在考虑速度性能的时候才考使用StringBuffer。

   

       2、 (不强制)没有特殊原因,不要定义synchronized 的方法。而是在方法内实

             际需要同步的代码段加入synchronized限定,如:

   public void sharedMethod() {
			

       String display = null;
			

       synchronized( this ) {
			

           display = mySharedObject.getHelloWorld();
			

       }
			

       System.out.println( display );
			

   }
			

   

   

      3、   捕捉例外的标准书写规则如下:

try{

       // some stuff

} catch ( FileNotFoundException fnfe ) {

       // some stuff

} finally {

       // some stuff

}

              例外的变量名统一规定为例外类名中大写字母的组合。

   

       4、  (不强制)对于一个方法或实例化类调用是否成功,不采用返回boolean值来判

              断,而采用捕捉例外的方法,如:

Order m_order = new Order();

try {

       m_order.init();

} catch ( OrderNotFoundException onfe ) {

       // some stuff

}


本文链接

相关 [java 代码 开发] 推荐:

java代码开发规范

- - BlogJava_首页
格式规范:                                                                      .       1、TAB空格的数量. 编辑器上的TAB空格数量统一取值为4.       2、换行, 每行120字符.       3、if语句的嵌套层数3层以内   .

Java代码优化

- - ImportNew
2016年3月修改,结合自己的工作和平时学习的体验重新谈一下为什么要进行代码优化. 在修改之前,我的说法是这样的:. 就像鲸鱼吃虾米一样,也许吃一个两个虾米对于鲸鱼来说作用不大,但是吃的虾米多了,鲸鱼自然饱了. 代码优化一样,也许一个两个的优化,对于提升代码的运行效率意义不大,但是只要处处都能注意代码优化,总体来说对于提升代码的运行效率就很有用了.

Java 代码性能优化

- - IT瘾-geek
代码 优化,一个很重要的课题. 可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢. 这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗. 没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了. 代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优化的细节了,一个一个细小的优化点累积起来,对于代码的运行效率绝对是有提升的.

Apache Thrift - java开发详解

- - 编程语言 - ITeye博客
2、编写IDL文件 Hello.thrift. 4、编写实现类、实现Hello.Iface:. 5、编写服务端,发布(阻塞式IO + 多线程处理)服务.      * 阻塞式、多线程处理 .             //设置传输通道,普通通道  .             //使用高密度二进制协议  .

2011年度最牛逼java代码

- sunseesiu - ITeye论坛最新讨论
作者: 5172306 . 声明: 本文系ITeye网站发布的原创文章,未经作者书面许可,严禁任何网站转载本文,否则必将追究法律责任. 已有 16 人发表回复,猛击->>这里<<-参与讨论. —软件人才免语言低担保 赴美带薪读研.

Java代码编写的30条建议

- - inJava
(1) 类名首字母应该大写. 字段、方法以及对象(句柄)的首字母应小写. 对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母. 若在定义中出现了常数初始化字符,则大写static final基本类型标识符中的所有字母. 这样便可标志出它们属于编译期的常数. Java包(Package)属于一种特殊情况:它们全都是小写字母,即便中间的单词亦是如此.

编写高质量的Java代码

- - 研发管理 - ITeye博客
Java 开发通用方法和准则. 不要在变量和常量出现易混淆字母:int i=1l;. 三元操作符的值类型务必保持一致;. 避免带有变长参数的方法重载:Java 5 引入了变长参数,varags, 用…表示,变长参数必须是最后一个参数,一个方法不能有多个变长参数;. 别让null和空值影响到变长方法,主要出现在在变长方法的重载;.

如何写出更好的Java代码

- - Java译站
Java是最流行的编程语言之一,但似乎并没有人喜欢使用它. 好吧,实际上Java是一门还不错的编程语言,由于最近Java 8发布了,我决定来编辑一个如何能更好地使用Java的列表,这里面包括一些库,实践技巧以及工具. 这篇文章在 GitHub上也有. 你可以随时在上面贡献或者添加你自己的Java使用技巧或者最佳实践.

Matlab中调用第三方Java代码

- - ITeye博客
在Java中采用Matlab JA Builder可以实现调用m文件,采用这样的方式,可在Matlab的M文件中,直接调用Java类. 这种方式可以表示为Java--> Matlab( m, Java),即整个程序由Java启动. 那如何使用Matlab直接调用Java的方式. 错误的方法:网上有些说将jar、class放在Matlab的Search路径中.

JAVA代码编写的30条建议

- - Java - 编程语言 - ITeye博客
今天和大家谈论到的是关于Java代码编码方面的一些建议. 这里整理到JAVA代码编写的30条建议:. 字段、方法以及对象(句柄)的首字母应小写. 对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母. 若在定义中出现了常数初始化字符,则大写static final基本类型标识符中的所有字母.