一.标识符命名
1.命名原则
A.统一:对同一个概念,在程序中用同一种表示方法
B.达意:标识符能准确表达含义
C.简洁:在统一和达意的前提下,用尽量少的标识符
D.驼峰命名:除了包名,静态常量等特殊情况,大部分情况下标识符使用骆驼法则,即单词之间不使用特殊符号分割,而是通过首字母大写来分割
2.包名
使用小写字母,单词间不要隔开,如com.xxx.settlment.jsfutil,而不要com.xxx.settlement.jsf_util
3.类名
A.首字母大写,比如MainActivity不要mainActivity
B.类名往往用后缀表达额外的意思,如: Service(服务),impl(实现类),inter(接口),Dao(封装了数据访问方法的类),Action(直接处理页面请求,管理页面逻辑的类),Listener(响应某种时间的类),Event(事件类),Factory(生成某种对象工厂的类), Adapter(适配器类),Job(按时间运行的任务类),Wrapper(包装类,为某个类提供没有的能力)
4.方法名
首字母小写,动词在前,动词往往包含特殊的含义,如: create(创建),delete(删除),add(创建对象到集合),remove(删除),init(初始化),destroy(销毁),open(打开),close(关闭),read(读取),write(写入),get(获得),set(设置), prepare(准备),copy(复制),modity(修改),calculate(计算),do(执行),start(开始),stop(结束),send(发送),receive(接受),respond(响应),find(查找),update(更新)
5.域名
A.静态常量:全大写且用下划线分割,如:public static find String ORDER_PAID_EVENT = "ORDER_PAID_EVENT";
B.枚举:全大写,用下划线分割,如public enum Events { ORDER_PAID, ORDER_CREATED }
C.其他:首字母小写,按驼峰法,如public String myName;
二:代码格式
1.源文件:源文件使用utf-8编码
2.行宽:不要超过130
3.导包:删除不用的包,尽量不要使用整个包的导入
4.代码块格式
A.大括号的开始在代码块开始的行尾,闭合在和代码块同一缩进的行首
B.空格的使用:表示分割时用一个空格,二元三元运算符两边用一个空格隔开,逗号语句后如不还行,紧跟一个空格
C.空行的使用:空行可以表达代码在语义上的分割,注释的作用范围,将类似操作,或一组操作放在一起不用空行隔开,而用空行隔开不同组的代码
三.注释规范
1.注释原则:
A.少而精,不能多而滥,更不能有误导
B.命名达意,结构清晰, 类和方法等责任明确
C.注释要和代码同步
D.不用的代码直接删除,不要注释掉,容易让人产生误解
2.Java Doc
表明类、域和方法等的意义和用法等的注释,要以javadoc的方式来写,Java Doc是给类的使用者看的,主要介绍是什么,怎么用等信息,凡是类的使用者需要知道,都要用Java Doc 来写。
3.块级别注释:
A.块级别注释,单行时用 //, 多行时用 /* .. */
B.较短的代码块用空行表示注释作用域
C.较长的代码块要用/* .. */并在里面用start和end表示开始和结束
D.必要时可考虑用大括号标注注释范围
四.其它注意事项
1.每次保存的时候,都让代码是完美的,功能都完成了,谁还会回来优化代码呢
2.使用log而不是System.out.print(),log更方便适用而且分区明确,速度也快
3.每个if while for等语句,都不要省略大括号{},便于以后维护不出错
4.在代码中加入 //TODO: 大部分的ide都会帮你提示,让你知道你还有什么事没有做
5.在需要留空的地方放一个空语句或注释
6.不要再对boolean值做true false判断,因为直接表示就是判断是否为真
7.减少代码嵌套层次,方法有:合并条件,利用 return 以省略后面的else,利用子方法
8.尽量使程序单元的职责单一,可以使你在编写这段程序时关注更少的东西,从而降低难度,减少出错
9.变量的声明,初始化和被使用尽量放到一起
10.缩小变量的作用域:能用局部变量的,不要使用实例变量,能用实例变量的,不要使用类变量。变量的生存期越短,意味着它被误用的机会越小,同一时刻程序员要关注的变量的状态越少。实例变量和类变量默认都不是线程安全的,局部变量是线程安全的
11.尽量不要用参数来带回方法运算结果