Java开发规范
目录
目录 2
History 2
Java编程规范 3
1. 为什么要制定编码规范? 3
编码原则 3
2. JAVA编码规范 4
2.1 程序编写规范 4
2.2 排版规范 4
2.3 测试维护 4
2.4 JAVA文件样式 4
2.5 可读性 7
2.6 性能 8
2.7 命名规范 8
2.8 代码编写格式 11
2.9 注释规范 12
2.10 代码编译 13
2.11 关于分布式系统的包结构组织一般约定(walkersun内部使用的强制规则) 14
3. 显示层页面编码规范 14
3.1 显示层页面样式(草案) 14
4. 参考资源 16
History
Date
version
description
Author
Java编程规范
为什么要制定编码规范?
代码规范相当重要. 代码规范提高软件代码的可读性 , 使得开发人员快速和彻底的理解新代码.
好的代码风格不仅会提高可读性 ,而且会使代码更健壮 , 更为重要的是在修改时不容易出错.
在现代软件开发中 ,维护工作会占用80%的时间 , 而且开发者和维护者通常不是同一个程序员. 这意味着你经常要阅读和修改别人开发的程序 , 别人也同样可能需要阅读和修改你开发的程序. 既然如此 , 为什么不把这利人利己的事情作好呢?
一些习惯自由程序人员可能对这些规则很不适应,但是在多个开发人员共同写作的情况下,这些规则是必需的。
编码原则
1)精练。合理利用面向对象的抽象概念。
2)高复用性。模块化的观念。
3) 团队精神。
4)易调试。认真记录每一个异常,在程序的关键地方可以加入调试信息。
如何精练
1)对于多处调用的同一段代码,请及时改写为同一函数的调用,且函数的粒度要细,功能要单一。一般一个函数最好不要超过200行。
2)对于同类操作要及时抽象其超类。这其实作为一个java程序的基本要求。
3)对于一些频繁调用,但是又不是专属于某个类的方法,请放到common中的相关类中,比如Tools等,以便大家使用,注意这些方法应该是静态的,不要创建类实例甚至有上下文的牵扯。
如何在编码时体现“团队精神”
1)不要轻易删除别人的代码,一般做法是注释掉即可,而且也要征求原作者的意见,说明原因。对于确实要删除的代码一定要征求原作者的意见,当然原作者不在情况下例外,但是一定要备案。
2)对于修改底层类或者超类(被很多类继承的,涉及很多开发人员的)一定要慎重。如果要修改,一定要向相关负责人或者相关代码作者告知,讲明理由。所谓底层类包括通讯类等。
3)多写注释。
如何使程序易调试
请应用log4j模块。用该模块来记录每一个调试信息,异常等。关于该模块的使用方法将有专人讲解。
JAVA编码规范
命名规范
定义这个规范的目的是让项目中所有的文档都看起来像一个人写的,增加可读性,减少项目组中因为换人而带来的损失。(这些规范并不是一定要绝对遵守,但是一定要让程序有良好的可读性)
较短的单词可通过去掉“元音”形成缩写;
较长的单词可取单词的头几发符的优先级,并用括号明确
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
达式的操作顺序,避免使用默认优先级。
使用匈牙利表示法。
● Package 的命名
Package 的名字应该都是由一个小写单词组成。
package com.neu.util
● Class 的命名
Class的名字必须由大写字母开头而其他字母都小写的单词组成,对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。
public class ThisAClassName{}
● Class 变量的命名
变量的名字必须用一个小写字母开头。后面的单词用大写字母开头
userName , thisAClassMethod
● Static Final 变量的命名
static Final 变量的名字应该都大写,并且指出完整含义。
/**
*DBConfig PATH
**/
public static final String
DB_CONFIG_FILE_PATH ="com.neu.etrain.dbconfig";
● 参数的命名
参数的名字必须和变量的命名规范一致。
● 数组的命名
数组应该总是用下面的方式来命名:
byte[] buffer;
而不是:
byte buffer[];
● 方法的参数
使用有意义的参数命名,如果可能的话,使用和要赋值的字段一样的名字:
setSize(int size){
this.size = size;
}
不要用
setSize(int i){ //错误!参数需要有意义
this.size = i;
}
●?属性访问函数的命名
这里主要说明一些对(fields/property)赋值的访问性函数。
访问一个对象的属性时不要这样
obj.attr;
请使用set/get方法
obj.getAttr();
Get型函数
Get型函数返回一个域(field)的值。在命名时将“get”作为第一个单词;如果是boolean型的域,那么将“is”作为函数名称的第一个单词,这些函数主要用来对一个布尔域(field)来进行值测试,命名时将“is”作为第一个单词。如Thread类中的isInterrupt()方法。
getFirstName();
getAccountNumber();
getLostEh();
isPersistent();
isAtEnd();
Set型函数
这些函数主要用来对一个域(field)来赋值,命名时将“set”作为第一个单词。
setFirstName(string aName);
setAccountNumber(int anAccountNumber);
setReasonableGoals(Vector newGoals);
setAtEnd(boolean isAtEnd);
To型函数
这些函数主要用来进行类型转换,如toSting()方法。
这些命名约定是JDK
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
和JAVA Beans开发时所要求的。
下表总结了类、接口、包的命名规则。
定义类型
命名规则
例子
Packages
包名称的前缀总是用小写的ASCII字母来表示的,并且总是采用一级域名,如com,edu,gov,mil.net,ort,或者是ISO 3166标准中规定的国家名的2字母缩写。
一个包名称后面的组件名根据一个组织的各个名称约定来取。
com.travelsky.gds.XXX
com.apple.quicktime.v2
edu.cmu.cs.bovik.cheese
Class
类名称应该是名词,且其内部的每一个词的首字母应大写。类名应简单而有意义。组成类名的单词不应用缩写。除非这些缩写已被广泛理解,如URL和HTML
Class Raster;
Class ImageSprite;
Interfaces
接口名称的大写规则与类名相同
Interface GodDelegate
●?名字缩写?
说明:较短的单词可通过去掉“元音”(在拉丁字母中,A、E、I、O、U通常都是元音字母)形成缩写;较长的单词可取单词的头几个字母形成缩写;一些单词有大家公认的缩写。
示例:如下单词的缩写能够被大家基本认可。
temp 可缩写为 tmp ;
flag 可缩写为 flg ;
statistic 可缩写为 stat ;
increment 可缩写为 inc ;
message 可缩写为 msg ;
码编写格式
● 代码样式
代码应该用 unix 的格式,而不是 windows 的(比如:回车变成回车+换行)
● 文档化
必须用 javadoc 来为类生成文档。不仅因为它是标准,这也是被各种 java 编译器都认可的方法。使用 @author 标记是不被推荐的,因为代码不应该是被个人拥有的。
● 缩进
缩进应该是每行4个空格. 不要在源文件中保存Tab字符. 在使用不同的源代码管理工具时Tab字符将因为用户设置的不同而扩展为不同的宽度.
如果你使用 UltrEdit 作为你的 Java 源代码编辑器的话,你可以通过如下操作来禁止保存Tab字符, 方法是通过 UltrEdit中先设定 Tab 使用的长度是4个空格,然后用 Format|Tabs to Spaces 菜单将 Tab 转换为空格。
● 页宽
页宽应该设置为80字符. 源代码一般不会超过这个宽度, 并导致无法完整显示, 但这一设置也可以灵活调整. 在任何情况下, 超长的语句应该在一个逗号或者一个操作符后折行. 一条语句折行后, 应该比原来的语句再缩进2个字符.
● {} 对
{} 中的语句应该单独作为一行. 例如, 下面的第1行是错误的, 第2行是正确的:
if (i>0) { i ++ }; // 错误, { 和 } 在同一行
if (i>0) {
i ++