一. 编程规约
(一)命名风格
1. 【强制】代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束
2. 【强制】所有编程相关的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。
3. 【强制】类名使用 UpperCamelCase 风格,但以下情形例外:DO / BO / DTO / VO / AO / PO / UID 等
4. 【强制】方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格。
5. 【强制】常量命名全部大写,单词兼用下划线隔开,力求语义表达完整清楚,不要嫌名字长。
6. 【强制】抽象类命名使用 Abstract 或 Base 开头;异常类命名使用 Exception 结尾;测试类 命名以它要测试的类的名称开始,以 Test 结尾。
(二) 常量定义
1. 【强制】不允许任何魔法值(即未经预先定义的常量)直接出现在代码中。
2. 【强制】在 long 或者 Long 赋值时,数值后使用大写的 L,不能是小写的 l,小写容易跟数字 混淆,造成误解。
3. 【推荐】不要使用一个常量类维护所有常量,要按常量功能进行归类,分开维护。
4. 【推荐】常量的复用层次有五层:跨应用共享常量、应用内共享常量、子工程内共享常量、包 内共享常量、类内共享常量。
5. 【推荐】如果变量值仅在一个固定范围内变化用 enum 类型来定义。
(三)代码格式
1. 【强制】如果是大括号内为空,则简洁地写成{}即可,大括号中间无需换行和空格;如果是非 空代码块则
2. 【强制】左小括号和右边相邻字符之间不出现空格;右小括号和左边相邻字符之间也不出现空 格;而左大括号前需要加空格。详见第 5 跳下方正例提示。
3. 【强制】if/for/while/switch/do 等保留字与括号之间都必须加空格。
4. 【强制】任何二目、三目运算符的左右两边都需要加一个空格。
5. 【强制】采用 4 个空格缩进,禁止使用 tab 字符。
(四) OOP 规约
1. 【强制】避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成 本,直接用类名来访问即可。
2. 【强制】所有的覆写方法,必须加@Override 注解。
3. 【强制】相同参数类型,相同业务含义,才可以使用 Java 的可变参数,避免使用 Object。
4. 【强制】外部正在调用或者二方库依赖的接口,不允许修改方法签名,避免对接口调用方产生 影响。
5. 【强制】不能使用过时的类或方法。
(五)日期时间
1. 【强制】日期格式化时,传入 pattern 中表示年份统一使用小写的 y。
2. 【强制】在日期格式中分清楚大写的 M 和小写的 m,大写的 H 和小写的 h 分别指代的意义。
3. 【强制】获取当前毫秒数:System.currentTimeMillis(); 而不是 new Date().getTime()。
4. 【强制】不允许在程序任何地方中使用:1)java.sql.Date 2)java.sql.Time 3) java.sql.Timestamp
5. 【强制】不要在程序中写死一年为 365 天,避免在公历闰年时出现日期转换错误或程序逻辑 错误。