Java编码规范

前言
      本文是根据经验、软件工程原则,整理出一套实用的编写Java代码的约定和指南。此规范使代码易于团队内沟通、理解和维护。而且,通过遵循这些程序开发标准,软件开发者的生产效率、代码质量会有显著提高。

软件工程上对编码的建议

1、语句构造
      程序代码书写,首先是大、小写一致,按块缩进。每条语句简洁而直接,最好一行只写一条语句。具体要求如下:
      ⑴、避免使用复杂的条件测试。
      ⑵、排除测试条件的“非”。
      ⑶、避免多重循环嵌套或条件嵌套,如果超过3层,则需要重新考虑算法。
      ⑷、用括号的方法使逻辑表达式或算术表达式更加清晰。
      ⑸、只使用国家标准。
  ⑹、在代码中的逻辑步骤之间加上一个空行(例如,定义变量、循环、等等)。
  ⑺、在一个源文件中,最外层的代码应顶格写,然后按照逻辑结构依次缩进,每次缩进一个Tab字符的位置。

2、保护性编程
      保护性编程技术可以分为主动和被动两种。主动保护技术周期性地或空闲时间对整个程序或数据库进行搜索,用以发现异常情况。被动保护技术是在到达检查代码时,对程序的某些部分进行检查。
      例如典型的项目检查:
      ⑴、来自外部设备的输入数据(范围、属性)
      ⑵、由其它程序提供的数据
      ⑶、操作员的输入(破坏性输入)
      ⑷、表达式出现零分母的可能性
      ⑸、通过其它程序或外设的输出
      ⑹、数组的界限
      ⑺、时间溢出检查

命名约定

1、类名定义(classes)
      类名应该是名词或名词性词组,大小写可混用,但首字母应大写,一般不使用缩写,除非其缩写更通用和便于理解。例如:
                              class  AccountBook
                              class  ComplexVariable
2、接口定义 (interface)
      接口名大小写规则与类名相同。
                              interface  Account
3、方法定义(method)
      方法名应该是动词或动词性词组,大小写可混用,但首字母应小写,第二个及以后的单词首字母大写。例如:
                              balanceAccount()
                              addComplex ()
4、变量
      名词或名词性词组,首字母小写,第二个及以后的单词首字母大写;
      不提倡使用下画线"_"和美元符"$"作为变量开头;
      单词间可以使用下画线分隔;
      变量名不宜过长但也应有意义,除非是临时使用(例如只涉及几行代码)后即丢弃的情况,不建议使用单个字母做变量名,常用的临时使用的变量名包括表示整数的i,j,k,m,n和表示字母的c以及表示异常对象的e等。
      变量命名举例:
          int age; int student_age; String studentName; Exception e;

5、常量
      名词或名词性词组,每个单词的首字母大写;单词间使用下画线分隔。
      常量命名举例:
          int MAX_LEVEL; double Comm_Tax;

6、包
      名词或名词性词组,全部小写;一般使用本公司/组织网站域名的逆序后跟具体的软件内部模块名。
      包命名举例:
          package com.sun.java; package com.cuc.workflow;

程序书写规范

      程序书写规范文档化,包括两部分,一是程序代码,另外是注释。

      注释书写,分序言性注释与功能性注释两类,序言性注释安排在每个模块的起始部分,用于说明每个模块的用途、功能,以及接口描述、数据变量的说明、开发历史(开发人、评审人、日期、修改说明等);
      功能性注释应嵌入程序代码体内,用来描述处理功能,段落说明四周用“*”括上。

      注解代码时,要明智些!如果一段代码的逻辑关系很复杂,注解将有助于别人理解代码的意图。但如果逻辑关系直线向前,避免加上并非必须的注解。要象维护您的代码一样维护您的注解!

代码优化与异常处理

1、性能

      编码要考虑性能,例如:
          for(int i=0 ; i<ids.length; i++){
      此代码中,“ids.length”使用方法影响代码执行效率,建议把取值放在循环体外。
          int n=ids.length;
          for(int i=0 ; i<n; i++){

2、对于经常发生的可预计事件不要采用异常
      用异常来表达并非一定是错误的状态有几个不便之处:
      它易混淆。
      它通常在控制流中强制性地产生一些中断,而这些中断更难理解和维护。
      它使得代码调试起来更令人痛苦,因为大多数源码级的调试器在缺省值状态下标志出所有的异常。
      例如,不要将异常以某种额外值的形式由函数返回(象查询中的 Value_Not_Found)。使用一个含有“out”参数的进程,或者引入一个意思为 Not_Found 的特殊值,或者在一个含有区别量 Not_Found 的记录中包装一个返回类型。

待续......
欢迎补充。


你可能感兴趣的:(Java编码规范)