Java开发规约
2018-06-01 15:15:33 0 举报
AI智能生成
Java开发规约, 使用MySQL数据库
作者其他创作
大纲/内容
安全规约
MySQL数据库
建表规约
索引规约
SQL语句
ORM映射
工程结构
应用分层
库依赖
服务器
其他
编程规约
命名风格
代码中命名不能以_和$作为开始和结束
严禁使用拼音英文混合模式, 严禁使用拼音命名
类名使用大驼峰命名
方法名/参数名/成员变量/局部变量使用小驼峰命名
常量命名全大写, 并使用_分割单词
抽象类名使用Abstract/Base开头, 测试类用Test结尾
POJO类中boolean类型的变量, 不允许使用is作为开头
优先统一管理包名, 包名一律使用小写单词, 其他任何字符串为非法
不允许使用不规范的缩写
优先统一命名, 命名不怕长, 尽可能把意思写完整
接口中的方法和属性都不要加public访问修饰符, 并增加相应注释
接口实现类以Impl结尾
增删改查方法前缀
单个对象:get
多个对象:list
保存:insert
删除:delete
修改:update
常量定义
不允许使用魔法值硬编码到代码中
基本类型若需要加后缀, 一律使用大写
不允许使用一个常量类维护所有常量, 按模块区分
代码格式
{}
若大括号内为空, 则写成{}即可
左大括号前不换行, 在后面换行
右大括号前换行, 后面如果有else不换行, 否则换行
()
小括号内相邻的字符不出现空格
任何二目/三目运算的左右两边必须空格
采用4个空格缩进, 不允许使用tab缩进
注释//后必须有个空格
单行字符不超过120个
逗号,后必须空一格
encoding必须为UTF-8
OOP规约
所有覆写方法必须加上@Override注解
不允许通过一个类的对象引用访问该类的静态变量/静态方法
过时的方法必须加上@Deprecated注释
不建议使用过时的方法
使用常量或确定的值来调用equals
包装类使用equals比较
返回值和参数必须使用包装类
POJO
POJO的属性必须使用包装类
如非必要, 定义POJO时不要设置默认值
必须写toString方法
类内方法定义的顺序
public/protected>private>getter/setter
集合处理
集合转数组必须使用toArray
集合初始化时需指定大小(如不知道则设置为16)
JDK8中map遍历必须使用Map.foreach
并发处理
线程池不允许使用Executors创建, 需要通过ThreadPoolExecutor方式获取
JDK8中使用Instant代替Date, LocalDateTime代替Calendar, DateTimeFormarrer代替SimpleDateFormat
JDK7后使用ThreadLocalRandom代替Random
单例必须使用双重检查锁初始化
count++操作使用AtomicInteger替换, 如果是JDK8使用LongAdder
控制语句
switch必须有一个default
if/else/for/while/do中必须使用大括号, 哪怕只有一行, 避免使用单行编码方式
if/else不要超过3层
注释规划
所有的抽象/接口方法必须写javadoc注释
所有的类必须添加创建者和创建日期
注释请全部使用中文
如果注释代码, 请在注释上方做说明, 如果无用, 删除之
其他
异常日志
异常处理
不允许使用异常做流程控制, 条件控制
只try不稳定代码, 对稳定代码不try
防止NPE
日志规约
一般使用info级别, 有问题的使用warn
单元测试
0 条评论
下一页