代码走读 规范和标准清单

序号 检查内容
I 排版规范
I-A-1 程序块要采用缩进风格编写,缩进的空格数为4个。
I-A-2 分界符(如大括号‘{’和‘}’)应各独占一行并且位于同一列,同时与引用它们的语句左对齐。在函数体的开始、类和接口的定义、以及iffordowhileswitchcase语句中的程序都要采用如上的缩进方式。
I-A-3 较长的语句、表达式或参数(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。
I-A-4 不允许把多个短语句写在一行中,即一行只写一条语句
I-A-5 if, for, do, while, case, switch, default 等语句自占一行,且if, for, do, while等语句的执行语句无论多少都要加括号{}
I-A-6 相对独立的程序块之间、变量说明之后必须加空行。
I-A-7 在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、之后或者前后要加空格;进行非对等操作时,如果是关系密切的立即操作符(如.),后不应加空格。
I-A-8 同一行禁止声明多个变量,确保每行只声明一个变量
I-A-9 类属性不要交叉放置,不同存取范围的属性也尽量不要交叉放置。
I-B-1 类方法不要交叉放置,不同存取范围方法也尽量不要交叉放置
   
II 注释规范
II-A-1 一般情况下,源程序有效注释量必须在30%以上。
II-A-2 对于CBB模块:需添加包的注释,包的注释写入一个名为 package.htmlHTML格式的说明文件放入当前路径。
II-A-3 于CBB模块必须添加的包的注释内容:简述本包的作用、详细描述本包的内容、产品模块名称和版本、公司版权。
II-A-4 文件注释:文件注释写入文件头部,包名之前的位置。
II-A-5 文件注释内容:版权说明、描述信息、生成日期、修改历史。
II-A-6 类和接口的注释:该注释放在 package 关键字之后,class 或者 interface 关键字之前。
II-A-7 类和接口的注释内容:类的注释主要是一句话功能简述、功能详细描述,
II-A-8 类属性、公有、保护和私有方法注释:写在类属性、公有、保护和私有方法上面。
II-A-9 成员变量注释内容:成员变量的意义、目的、功能,可能被用到的地方。
II-A-10 公有和保护方法注释内容:列出方法的一句话功能简述、功能详细描述、输入参数、输出参数、返回值、违例等。
II-A-11 对于方法内部用throw语句抛出的异常,必须在方法的注释中标明,对于所调用的其他方法所抛出的异常,选择主要的在注释中说明。对于非RuntimeException,即throws子句声明会抛出的异常,必须在方法的注释中标明。
II-A-12 注释应与其描述的代码相近,对代码的注释应放在其上方或右方(对单条语句的注释)相邻位置,不可放在下面,如放于上方则需与其上面的代码用空行隔开。
II-A-13 注释与所描述内容进行同样的缩排。
II-A-14 将注释与其上面的代码用空行隔开。
II-A-15 对变量的定义和分支语句(条件分支、循环语句等)必须编写注释。
II-A-16 对于switch语句下的case语句,如果因为特殊情况需要处理完一个case后进入下一个case处理,必须在该case语句处理完、下一个case语句前加上明确的注释。
II-A-17 边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。不再有用的注释要删除。
II-A-18 注释的内容要清楚、明了,含义准确,防止注释二义性。
II-A-19 避免在注释中使用缩写,特别是不常用缩写。
II-A-20 避免在一行代码或表达式的中间插入注释。
II-A-21 通过对函数或过程、变量、结构等正确的命名以及合理地组织代码的结构,使代码成为自注释的。
II-A-22 在代码的功能、意图层次上进行注释,提供有用、额外的信息。
II-A-23 Java编码统一采用UTF-8格式
II-A-24 注释应考虑程序易读及外观排版的因素,使用的语言若是中、英兼有的,建议多使用中文,除非能用非常流利准确的英文表达。
II-A-25 方法内的单行注释使用 //
II-A-26 注释尽量使用中文注释和中文标点。方法和类描述的第一句话尽量使用简洁明了的话概括一下功能,然后加以句号。接下来的部分可以详细描述。
II-A-27 顺序实现流程的说明使用1234在每个实现步骤部分的代码前面进行注释。
II-A-28 一些复杂的代码需要说明。
II-B-1 异常的注释必须说明该异常的含义及什么条件下抛出该异常。
II-B-2 在程序块的结束行右方加注释标记,以表明某程序块的结束。
   
III 命名规范
III-A-1 包名采用域后缀倒置的加上自定义的包名,采用小写字母。在部门内部应该规划好包名的范围,防止产生冲突。部门内部产品使用部门的名称加上模块名称。产品线的产品使用产品的名称加上模块的名称。
III-A-2 类名和接口名,是个名词,使用类意义完整的英文描述,,每个英文单词的首字母使用大写、其余字母使用小写的大小写混合法
III-A-3 方法名是一个动名词,使用类意义完整的英文描述:第一个单词的字母使用小写、剩余单词首字母大写其余字母小写的大小写混合法。
III-A-4 方法中,存取属性的方法采用setter getter方法,动作方法采用动词和动宾结构。
III-A-5 属性名使用意义完整的英文描述:第一个单词的字母使用小写、剩余单词首字母大写其余字母小写的大小写混合法。属性名不能与方法名相同。
III-A-6 常量名使用全大写的英文描述,英文单词之间用下划线分隔开,并且使用 final static 修饰。
III-A-7 属性名可以和公有方法参数相同,不能和局部变量相同,引用非静态成员变量时使用 this 引用,引用静态成员变量时使用类名引用。
III-A-8 除了变量名外,所有实例,包括类,类常量,均采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。变量名不应以下划线或美元符号开头,尽管这在语法上是允许的。
III-A-9 常用组件类的命名以组件名加上组件类型名结尾。
III-A-10 如果函数名超过15 个字母,可采用以去掉元音字母的方法或者以行业内约定俗成的缩写方式缩写函数名。
III-A-11 准确地确定成员函数的存取控制符号,不是必须使用 public 属性的,请使用 protected,不是必须使用 protected, 请使用 private
III-A-12 含有集合意义的属性命名,尽量包含其复数的意义。
   
IV 编码规范
IV-A-1 明确方法功能,精确(而不是近似)地实现方法设计。一个函数仅完成一件功能,即使简单功能也应该编写方法实现。
IV-A-2 应明确规定对接口方法参数的合法性检查应由方法的调用者负责还是由接口方法本身负责,缺省是由方法调用者负责。
IV-A-3 明确类的功能,精确(而不是近似)地实现类的设计。一个类仅实现一组相近的功能。
IV-A-4 所有的数据类必须重载toString() 方法,返回该类有意义的内容。
IV-A-5 数据库操作、IO操作等需要使用结束close()的对象必须在try -catch-finally 的finally中close()。
IV-A-6 异常捕获后,如果不对该异常进行处理,则应该纪录日志或者ex.printStackTrace() 。
IV-A-7 自己抛出的异常必须要填写详细的描述信息。
IV-A-8 运行期异常使用RuntimeException的子类来表示,不用在可能抛出异常的方法声明上加throws子句。非运行期异常是从Exception继承而来的,必须在方法声明上加throws子句。
IV-A-9 在程序中使用异常处理还是使用错误返回码处理,根据是否有利于程序结构来确定,并且异常和错误码不应该混合使用,推荐使用异常。
IV-A-10 注意运算符的优先级,并用括号明确表达式的操作顺序,避免使用默认优先级。
IV-A-11 避免使用不易理解的数字,用有意义的标识来替代。
IV-A-12 数组声明的时候使用 int[] index ,而不要使用 int index[] 。
IV-A-13 调试代码的时候,不要使用 System.out 和 System.err 进行打印,应统一使用日志组件。
IV-A-14 如果多段代码重复做同一件事情,那么在方法的划分上可能存在问题。
IV-A-15 不要使用难懂的技巧性很高的语句,除非很有必要时。
IV-B-1 一个方法不应抛出太多类型的异常。
IV-B-2 异常捕获尽量不要直接 catch (Exception ex),应该把异常细分处理。
IV-B-3 对于创建的主要的类,最好置入main()函数,包含用于测试那个类的代码
IV-B-4 集合中的数据如果不使用了应该及时释放,尤其是可重复使用的集合。
IV-B-5 源程序中关系较为紧密的代码应尽可能相邻。
IV-B-6 建议不使用三目运算符

猜你喜欢

转载自cindy-zhong.iteye.com/blog/2043767