一般约定
1.保持最初的样式,不要在一个文件里使用多种风格不一的代码,会造成代码阅读困难
2.遵守最小惊奇原则
- 简单的类和方法;
- 代码能描述清楚类、接口、方法、变量、对象为什么要用、怎么用、在哪里用、什么时候用、互相的调用;
- 为函数添加完整的注释;
- 相似的类的代码看起来是相似的,不相似的类的代码看起来是不相似的;
- 文档化的注释给用户提示可能发生的错误和异常
3.从代码编写开始就应当做好
4.任何背离约定的代码都应该文档注释
格式约定
1.善用空格或tab键,约束嵌套代码
class MyClass{
..void function(int arg){
....if(arg>0){
......for(int index=0;index<=arg;index++){
........
......}
....}
..}
}
2.拆分长行。一行一个语句,一个语句不超过一页中可阅读的最大字符数,超过就拆分为多个语句(如果可以的话),不然就以操作符为换行标识
命名约定
1.使用有意义来命名类、成员变量、方法、局部变量
2.不要使用过长的名称。缩短了名称,如果觉得不合适、不容易理解,还是使用长名称。如:
appendSignature(好)、appendSgntr(坏)
3.使用熟悉的名称,如果是消费者就使用Customer,而不要使用Client(客户)
4.只对简称的第一个字母大写,但不适用于常量命名
5.不要使用只依赖于大小写来区分的名称
包命名
1.采用你组织的Internet域名的反转、小写形式作为包名称的根限定词,如:
Internet domain name为sinobest.com,该包下为服务器发布包,所以完整的package名为com.sinobest.server
2.使用一个唯一的小写单词作为每个包的根名称,且根名称应该是有意义的缩写
3.只有当包的新版本仍然与旧版本兼容时,对于包的新版本使用相同的名称,否则使用新名称
类型命名
1.对于类和接口名称只对每个单词的第一个字母大写。
类命名
1.使用名词来命名类,如:
CustomerAccount 、KeyAdapter
接口命名
1.适应名词或形容词来命名接口,因为使用名词主要作为服务声明的描述,而使用形容词主要作为作用的描述,如: ` Runnable `
方法命名
1.方法名词中第一个单词小写,后续的每一个单词仅第一个字母大写
2.使用动词来命名方法
3.命名属性访问的目的,如:
boolean isVaild(){
....
return isVaild;
}
String getName(){
return this.name;
}
变量命名
1.变量名词中的第一个单词小写,后续的每一个单词仅第一个字母大写
2.使用名词来命名成员变量
3.对于集合引用的名称采用复数形式
4.对于通常的临时变量,建立并使用一套标准名称,如:
字符可用 c,d,e
坐标可用 x,y,z
异常可用 e
图形可用 g
对象可用 o
流可用 in,out
字符串可用 s
参数命名
1.当构造函数或者”set”方法想成员分配参数时,参数的命名应和成员相同
常量命名
1.当命名常量时,每个单词均大写,单词之间以下划线区分