编码规范
1.编写目的
本规范的目的在于编写可靠的、一致的、便于理解的JAVA源代码,并且写出的代码被其他人阅读,所有的JAVA代码保持良好的致性,容易在以后的阶段中进行维护和升级。
同时,也是为了通过一定时间的实践,增加我们的软件产品的投入产出量,以提高我们的工作效率。
2.适应范围
适用于JAVA程序开发人员,或后续开发人员。
可以方便系统的开发与维护,使系统开发与维护可以顺利展开。
3.代码命名一般原则
我们开发的是一个JSP新闻发布系统,用的编码方式是JAVA,因此用的命名总原则是:
3.1.用全英文单词命名的方式,准确地描述变量、属性、类等。
如:使用firstNname、grandTotal、等命名就比x1、y1、fn等更容易让人理解其含义,尽管它们的长度要大一些。
3.2.采用一些更加准确的术语来命名。
例如:如果我们的用户称他们的clients为customers ,那么我们就应该用customer来命名,而不是采用client来命名。
这是一些细微的地方,但也希望能注意。
3.3.采用大小写混合的方式来命名,以便命名有很好的可读性。
在JAVA代码中,将采用如下原则:类或接口命名中每个单词的首字母均大写,而单词的剩余部分均小写。
其它像变量、成员方法、属性等除第一个单词全部小写以外,其它单词的首写字母均大写,而单词的剩余部分均小写。
3.4.尽量少用单词的缩写形式,但如果一定要用,则选择大家通用的缩写方式,并且要在本JAVA源代码中坚持用它,而不要一会用这种缩写方式,一会用那种
缩写方式。
比如,如果要用“number”的缩写方式,则可用“no”或“num”两种缩写方式,而不要用“nu”这种大家不常用的缩写方式,并且要保持不变。
3.5.尽量避免太长的命名,一般以少于20个字符为宜。
3.6.尽量避免使用这样命名:两个或多个命名仅仅是其中的有些字符大小写不一样,或者仅仅是其中有些单词是单复数之区别。
例如:persistentObject与persistentObjexts;anSqlDatabase与anSQLDataBase等。
3.7.尽量避免使用下划线。
在JAVA中,一般比较少的采用下划线的命名方式。
4.代码注释
在程序代码编写过程中,为了使以后的代码具有可读性与可维护性,为了使代码可重复使用,因此对代码进行注释是很有必要的,做好代码注释规范是有意义的,我们应做好以下几点:
1.代码注释应简洁明了,使开发人员与维护人员能一目了然。
2.避免使用多余重复的代码注释。
3.代码注释应使用简单易懂的代码注释语言。
4.如有特殊的代码要加以说明,表明为什么要这样做。
5.代码注释时应该写在相应的位置处。
6.代码注释应写的规范整齐。
7.在编写代码时就注释,因为以后很可能没有时间这样做。
另外,
如果有机会复查已编写的代码,在今天看来很明显的东西六周以后或许就不明显了。
8.修改代码时,总是使代码周围的注释保持最新。
9.注释应该是解释为什么存在和可以做什么。
10.在编写注释时使用完整的句子。
注释应该阐明代码,而不应该增
加多义性。
11.避免多余的或不适当的注释,如幽默的不主要的备注。
12.避免杂乱的注释,如一整行星号。
而是应该使用空白将注释同代
码分开。
13.避免在块注释的周围加上印刷框。
这样看起来可能很漂亮,但是
难于维护
5.命名规范
5.1.package命名
Package的名字应该由小写字母组成,命名格式:Package 包名(例如:Package entity)
5.2类接口的命名
类的接口关键字为interface,接口名的命名首字母应大写,组成接口名的
各个英文单词首字母大写,其他字母应小写。
命名格式为:interface 接口名(例如:interface OracleDao)。
5.3.抽象类的命名
抽象类的关键字为abstract,命名规范同接口的命名,抽象类的首字母应
大写,组成抽象类的各个英文单词首字母大写,其他字母应小写。
命名格式为:abstract class 类名(例如:abstract class OracleFactory)。
5.4.成员变量及方法的命名
成员变量及方法的命名应该采用全英文单词且是大小写混合的方式来进行。
方法名的第1个单词均小写,其它单词首字母大写。
如:
username,password,clientId
OpenAccount(),printMailingLabel(),save(),delete()等。
通过这样命名规范,很容易看出这个方法干什么的,它的目的是什么。
心
管有时方法名会比较长,但它能容易让其他人理解本方法意图。
get方法,它一般返回一个属性值,应将get放在方法名中第一个单词位置。
例如:getFirstName()、getAccountNumber()、getClientName()等等。
同样,对于set方法,它一般是用于设置对象属性值,同样也将set放在
方法名中的第个单词的位置。
如:setFirstName(StringaName)、
setAtEnd(booleanisAtEdn)、setPersistent(Boolean is Persistert)、setUserName()、setSex()等等。
5.4.匈牙利命名法
命名时可以遵循匈牙利命名法
它通过在数据和函数名中加入额外的信息以增进程序员对程序的理解。
如字符串,前面加上str;.
String strTemp = new String(“This is ……”);
如果定义两个实例,可以这样合起来写:
MyClass myClassTemp1,myClassTemp2;
5.5.访问控制权限的属性设置
一般来讲,在Java中常见的修饰符有:private、无、protected、public。
经这些修饰符修饰的变量和方法具有不同的访问权限,为了使属性变量具有更好的封闭性,一般不将属性值设为public,而将其设为private,然后用其他方法调用。
6.成员函数
成员函数的功能一定要单一,
实现其功能时不要过分追求技巧,
函数体不能过长
总之在编写程序代码为各函数、方法等命名时应做到简洁,易记,易懂不应标新立异,特另独行。
7.局部变量一定要初始化
如果你声明一个变量,不要以为编译器会自动将之赋零值!你随手给它赋个初值并不麻烦,却会使程序更可靠。
8.数组与缓冲区的使用
对数组与缓冲区使用时一定要注意检查以防止其越界。
9.函数应该是单入口、单出口的
目的是为了问题调试时更方便,更快捷,更易确定问题所出现的位置,以方便开发人员对其进行修改。
10.调用函数应合法
调用函数时要严格按照接口规范,要符合函数调用的一般规则,不能自己凭空想象,要符合实际,不能自己想当然的进行函数调用,要使得大多数人都能看懂其调用的方法。
严格按照函数的输入要求给它合适的参数
11.尽量不要用goto语句
特别谨慎使用goto语句,最好别用它
尽管goto语句在某些特殊的情况下(比如编译器中)还很管用, 但它破坏了整个程序的结构,尤其使用goto嵌套时,更让人一头雾水(很久以前就有人提出取消它)。
所以不到万不得已时刻不要用它。
可以用break,continue之类的语句替代之。
12.单元测试
自己做代码内部(单元)测试时,必须做到语句覆盖,并且特别要注意边界
值的覆盖
要让每个语句都被执行过,并且边界值(最大和最小)也被测试过。
你在程
序中写的各种情况都可能在用户那里出现
13.静态检查
代码写完后要尽可能多的做一些静态检查(Debug调试可是很费神费时的)。
尤其是对算法和数据管理(比如对文件存取)部分。
14.文件存放
代码文件的存储位置固定,图片文件存放在统一的目录Picture下,如果
各个模块有自己的图片文件,可以创建子目录来完成。
公用函数脚本文件放在统一的目录Scripts下。
每个功能模块创建一个JSP文件存放目录。