JAVA编程自我规约

本文只写目前自己能一直坚持做的规范,持续更新。

(JAVA编程自我规约)    


(一)命名风格


1.禁止用下划线开始或结束命名。
2.禁止用拼音与英文混合的方式,不能使用中文。
3.强制用大驼峰法命名类名,每一个单词首字母均大写,如TcpService。
4.强制用小驼峰法命名方法名、参数名、成员变量、局部变量,如getMax。
5.强制大写常量名,单词间用下划线隔开不要嫌名字长。
6.强制用类的后缀名,抽象类命名用 Abstract 或 Base 开头;异常类用Exception结尾;测试类以Test结尾。
7.强制用带中括号的数组说明方式,如String[] args。
8.强制POJO 类中布尔类型的变量,都不要加 is,部分框架可能报异常。
9.各层命名规约:
  A) Service/DAO 层方法命名规约
    1) 获取单个对象的方法用 get 做前缀。
    2) 获取多个对象的方法用 list 做前缀。
    3) 获取统计值的方法用 count 做前缀。
    4) 插入的方法用 save/insert 做前缀。
    5) 删除的方法用 remove/delete 做前缀。
    6) 修改的方法用 update 做前缀。
  B) 领域模型命名规约
    1) 数据对象:xxxDO,xxx 即为数据表名。
    2) 数据传输对象:xxxDTO,xxx 为业务领域相关的名称。
    3) 展示对象:xxxVO,xxx 一般为网页名称。
    4) POJO 是 DO/DTO/BO/VO 的统称,禁止命名成 xxxPOJO。

(二)常量定义


1.强制先声明魔法值再使用,不允许任何魔法值(即未经定义的常量)直接出现在代码中。
2.强制大写L,在long 或者 Long 初始赋值时,使用大写的 L,不能是小写的 l。

(三)代码格式


1. 大括号的使用约定。如果是大括号内为空,则简洁地写成{}即可,不需要换行;如果是非空代码块则:
    1) 左大括号前不换行。
    2) 左大括号后换行。
    3) 右大括号前换行。
    4) 右大括号后还有 else 等代码则不换行;表示终止的右大括号后必须换行。
2. 单行字符数过多换行的规范。换行时遵循如下原则:
    1) 第二行相对第一行缩进2-4个空格,从第三行开始,不再继续缩进。
    2) 运算符与下文一起换行。
    3) 方法调用的点符号与下文一起换行。

(四)OOP 规约


1.强制使用类名去访问该类的静态变量或静态方法。
2.强制加@Override 注解到所有的覆写方法。
3.强制使用 equals 方法进行包装类对象的值比较。
4.强制使用包装数据类型,所有的 POJO 类、RPC 方法的属性或参数必须使用包装数据类型。
5.定义 DO/DTO/VO 等 POJO 类时,不要设定任何属性默认值。
7.相同参数类型,相同业务含义,才用可变参数,尽量不用可变参数编程,如var/object这类。

(五)集合处理


1.使用集合转数组的方法,必须使用集合的 toArray(T[] array)带参数的转换。
2.不要在 foreach 循环里进行元素的 remove/add 操作。
    remove 元素请使用 Iterator方式,如果并发操作,需要对 Iterator 对象加锁。

(六)并发处理


1.创建线程或线程池时请指定有意义的线程名称,方便出错时回溯。
2.线程资源必须通过线程池提供,不允许在应用中自行显式创建线程。
3.SimpleDateFormat 是线程不安全的类,一般不要定义为 static 变量,
    如果定义为static,必须加锁,或者使用 DateUtils 工具类。
4.高并发时,同步调用应该去考量锁的性能损耗。能用无锁数据结构,就不要用锁;

(七)控制语句


1.switch 块内,都必须包含一个 default 语句必须放在最后,即使它什么代码也没有。
2.if/else/for/while/do 语句中必须使用大括号,即使只有一行代码。

(八)注释规约


1.强制用Javadoc 注释规范。类、类属性、类方法的关键位置注释必须使用/**内容*/格式。
2.强制添加作者信息、创建日期和功能简介。(以上内容写在javadoc注释中)
3.谨慎注释掉代码。在上方用///详细说明,而不是简单地注释掉。如果无用,则删除。
4.特殊注释标记,方法在近期将实现,使用 TODO 标记,方法如果遇到错误,暂时为解决使用 FIXME标记。
  经常清理此类标记。
    1) 待办事宜(TODO):( 标记人,标记时间,[预计处理时间])    
    2) 错误,不能工作(FIXME):(标记人,标记时间,[预计处理时间])

发布了96 篇原创文章 · 获赞 172 · 访问量 25万+

猜你喜欢

转载自blog.csdn.net/ai_64/article/details/100566636