一、 概述
(一) 背景
(二) 读者对象
(三) 商讨
二、 基本原则
(一) 一开始就必须正确的使用规范
(二) 简易性原则
(三) 清晰性原则
(四) 健壮性原则
(五) 效率原则
三、 格式规范
(一) 代码缩进
(二) 分解较长的行
(三) 空白区域的使用
(四) SQL语句书写规范
1. SELECT语句书写规则
2. insert语句书写规则
3. update语句的编写规则
4. delete语句的编写规则。
四、 命名规范
(一) 使用有意义的命名
(二) 使用术语进行命名
(三) 超长命名处理
(四) 保留元音
(五) 缩写后的首字母大写
(六) 不要用字符的大小写来区分命名
(七) 包命名
1. 包命名
2. 使用单一的、小写单词来命名每一个包
(八) 类命名
1. 类或接口的每个单词的首字母大写
2. 使用名词来命名类
3. 一组有关系的属性、静态服务或常量的类命名采用复数
(九) 接口命名
1. 使用名词或形容词来命名接口
(十) 方法的命名
1. 方法的首单词的首字母小写,后面的单词的首字母大写
2. 使用动词来命名方法
3. 遵从JavaBeans规则来命名访问方法
(十一) 变量命名
1. 在变量的命名中,变量的首单词的首字母小写,后面的单词的首字母大写
2. 使用名词来命名变量
3. 集合含义的变量采用复数形式进行命名
(十二) 属性命名
1. 使用“this”关键字限定属性变量,用于区分逻辑变量
(十三) 参数命名
1. 当一个构件器或一个“set”方法通过参数赋值给一个属性时,将参数和属性采用同样的名字来命名
(十四) 常量命名
五、 注释规范
(一) 保持注释和代码同步
(二) 使用主动语态并尽量忽略不需要的用词
(三) 注释类型
(四) 版权信息注释
(五) 使用文档注释来描述程序接口
(六) 使用标准代码去隐藏代码而不要删除它
(七) 使用行注释来解释实现细节
(八) 文档注释
1. 在代码编写前就描述程序接口
2. 文档中应描述公有、保护、包和私有的成员
3. 对每个包提供概要描述信息和总体的功能
4. 对每个应用或一组包提供概要描述信息和总体的功能
(九) 注释格式
1. 在所有的文档注释中,使用一致的格式和结构
(十) 使用第三人称代词
(十一) 使用“this”而不是“the”指向当前类的实例
(十二) 不要在方法或构造函数名后添加“()”,除非做一个特殊的标识
(十三) 注释内容
1. 为每一个类、接口、属性和方法提供一个概要描述
2. 充分描述每个方法提供的操作
3. 解释和理解你的软件的使用,最简单的方法是提供例子。
(十四) 以文档方式记录已知的缺点和不足
(十五) 记录同步的语义
(十六) 代码内部注释
1. 需要帮助他人理解代码时才增加内部注释
2. 描述代码应该做的事情,而不是描述代码正在做什么
3. 避免使用行末注释的方法
4. 采用行末注释的方式解释局域变量
5. 创建并使用一套关键字集来标注未解决的问题
6. 在多重嵌套控制结构中标注结束标志
7. 如果在switch语句中没有break,则在相应的两个case之间添加一行“fall-through”注释
8. 标注empty语句
六、 编程规范
(一) 将代表基础数据类型的类声明为final
(二) 定义类和方法尽可能短小精悍
(三) 将所有成员变量声明为private类型
(四) 使用多态(polymorphism),不使用isntanceOf
(五) 类型安全
1. 用Object对象代替一般目的类可以提供静态类型检验
2. 将枚举类型封装为类
(六) 语句与表达式
1. 用等价的方法替换重复的表达式
2. 在控制结构中尽量使用代码块来代替表达式
3. 用圆括号清晰地标明运算的顺序
4. 在switch语句的最后一个case语句块结束的地方加上一个break语句。
5. 判断两个对象的值是否相等,使用equals(),而不是使用==
(七) 构造函数
1. 保证对象的构造总是有效
2. 在构造函数中不要引用非常量方法
3. 使用嵌套构造器来消除冗余的代码
(八) 异常处理
1. 使用未检测到的、运行时异常来报告程序中未预测到的逻辑错误
2. 使用可检验的异常处理来报告可能发生的程序错误,但是,在正常的程序运行中,这种是错误是很少发生的。
3. 使用return代码报告可预测性的状态变化
4. 转移异常信息的处理
5. 不要对运行时异常或者错误不做任何处理
6. 用一个finally语句块释放资源
七、 编程技巧
(一) byte 数组转换到 characters
(二) Utility 类
1.1 初始化
(三) 对象构造
1. 不要在循环中构造和释放对象
2. 处理 String 的时候要尽量使用 StringBuffer 类。
(四) 避免太多的使用 synchronized 关键字
(五) 通过对系统数据结构的划分与组织的改进,以及对程序算法的优化来提高空间效率。
(六) 循环体内工作量最小化。
(七) 不应花过多的时间提高调用不很频繁的函数代码效率。
(八) 在保证程序质量的前提下,通过压缩代码量、去掉不必要代码以及减少不必要的局部和全局变量,来提高空间效率。
(九) 在多重循环中,应将最忙的循环放在最内层。
(十) 尽量用乘法或其它方法代替除法,特别是浮点运算中的除法。