Java 开发规范文档

一 : 目的
使本组织能以标准的,规范的方式设计和编码。通过建立编码规范,以使每个开发人员养成良好的编码风格和习惯;并以此形成开发小组编码约定,提高程序的可靠性,可读性,可修改性,可维护性和一致性等,增进团队间的交流,并保证软件产品的质量。
二:代码组织与风格
1:长度:为便于阅读和理解,单个函数的有效代码长度当尽量在100行以内(不包括注释行),当功能模块过大时往往采用使用子函数将相应的功能抽取出来,这也有利于提高代码的重用度。
2:单个类不宜过大,当出现此类过大时当将相应功能的代码重构到其他类中,通过组合等方式来调用,建议单个类的长度包括注释行不超过1500行。尽量避免使用大类和长方法。
3:间隔:类,方法及功能块间等应以空行相隔,以增加可读性,但不得有无规则的大片空行。操作符两端应当各空一个字符以增加可读性。
三:注释
1:注释应该增加代码的清晰度。代码注释的目的时要使代码更易于被其他开发人员等理解。
2:保持注释的简洁。
3:注释信息应该包括代码的功能。
4:除变量定义等较短语句的注释使用行尾注释外,其他注释当避免使用行尾注释。
5:JavaDoc规范
对类,方法,变量等注释需要符合javadoc规范,对每个类,方法都应详细说明其功能条件,参数等。类注释中应当包含版本和作者信息。
1)类,接口注释 在类,接口定义之前当对其进行注释,包括类,接口的目的,作用,功能,继承于何种父类,实现的接口,实现的算法,使用方法,示例程序等。

 

2)方法注释  以明确该方法功能,作者,各参数含义以及返回值等。
3)其他注释  应对重要的变量及不易理解的分支条件表达式加以注释,以说明其含义等。
四 命名规范
1:对变量,类,接口及包的命名应该使用英文。严禁使用汉语拼音及不相关单词命名。更不可以使用汉字来进行命名。采用大小写混合,提高名字的可读性。一般应该采用小写字母,但时类和接口的名称的首字母,以及任何中间单词的首字母应该大写。包名全部小写。
2:尽量少用缩写,但如果一定要用,当使用公共缩写和习惯缩写等,如implement可缩写为impl,manager可缩写成mgr等。
3:包名一般以项目或模块名命名,少用缩写和长名,一律小写。
包名按照如下规定组成 [基本包].[项目名].[模块名].[子模块名].….
   如:org.skyinn.skyhome.dao.hibernate。
   不得将类直接定义在基本包下,所有项目中的类,接口等都当定义在各自的项目和模块包中。
4:类,接口 所有单词首字母大写,最好能够见名知意。一般采用名词。接口可带I前缀。或able,dao后缀。
5:字段  常量采用完整的英文大写单词,单词之间用下划线连接,如 DEFAULT_VALUE.
6:变量和参数对不易识别出该变量类型的变量应使用类型缩写作其前缀,如字符串使用strXXX,boolean使用isXXX,hasXXX等等。除第一个单词外其余单词的首字母大写。
7:集合 采用复数名称来表示队列中存放的对象类型,名词采用完整的英文描述。
例如:Vector  vProducts= new Vector();
              Array   aryUsers= new Array();
8:方法  方法的名称应采用完整的英文描述,大小写混合使用:所有中间单词的第一个字母大写。方法名称的第一个单词常常采用一个强烈动作色彩的动词。取值类使用get前缀,设置类使用set前缀。例如  getName(),setSarry()。
9:异常类名由表示该异常类型的单词和Exception组成,如ActionException。异常实例一般使用e,ex等。
10:数组的命名
数组应该总是用下面的方式来命名:byte[] buffer; 而不是: byte buffer[];
五 : 类与接口
1:基本原则:一个类只做一件事情。另一个原则时根据每个类的职责进行划分,比如用User来存放用户信息,而用UserDAO来对用户信息进行数据访问操作,用UserServer对用户信息的业务操作等等。多个类中使用相同方法时将其方法提到一个接口中或使用抽象类,尽量提高重用度。不希望被实例化的类的缺省构造方法声明为private。
2:一般而言,接口定义行为,而抽象类定义属性和共有行为,注意2者的取舍,在设计中可由接口定义公用的行为,由一个抽象类来实现其部分或全部方法,以给子类提供统一的行为为定义。
六 :方法
一个方法只完成一项功能。方法参数类型和参数返回值尽量接口化,以屏蔽具体的实现细节,提高系统的可扩展性,例如:public  void  addUser(List userList){}
public  List   listAllUsers(){}
七:Web 命名规范
一:jsp页面命名
对于某个功能块的增删改查页面定义,最好使用
xxx_add.jsp,xxx_delete.jsp,xxx_update.jsp,xxx_list.jsp.
二:DAO层名称命名(接口层)     IXxxDao
三:DAO层的实现层名称命名       XxxDaoImpl
四:BO  层名称命名(接口层)     IXxxServ
五:BO层的实现层名称命名        XxxServImpl
六:struts中的命名规范  XxxForm ,XxxAction。
七:工具类的命名规范   StringUtil ,  DataUtil。
 
八 : 性能与安全
1:不要使用String str=new String(”abc”);这将产生2个对象,应当使用String str=”abc”;
2:处理可变String 时候尽量使用StringBuffer类。
3:尽量避免使用Vector 和HashTable等旧的集合实现。由于时实现时同步的,故大量操作带来不必要的性能损失。应使用ArrayList和HashMap来代替。如果一定要使用同步集合类,当使用如下方式:Map map=Collections.synchronizedMap(new HashMap());。
4:避免在循环中频繁的构建和释放对象。
5:如无必要,不要序列化对象。
6:垃圾收集和资源释放,可能有异常的操作时必须在try的finally块中释放资源,如数据库连接,I/O操作等
 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值