代码未动,规范先行🐴
此篇文章自己收集整理而来,如有侵权,请联系本人删除😃
一、Java编码规范
- 禁止以
_
或者` - $
` 开始或者结尾
-
禁止使用半英文、半拼音
-
类名:类名使用
UpperCamelCase
; -
方法名、参数名、成员变量、局部变量都统一使用lowerCamelCase 风格,必须遵从驼峰形式
-
小驼峰法(camel方法)变量一般用小驼峰法标识。
第一个单词以小写字母开始;第二个单词的首字母大写或每一个单词的首字母都采用大写字母 例如:myFirstName
、myLastName
-
大驼峰法(
Upper Camel Case
)也称为:帕斯卡命名法:(pascal方法)常用于类名、函数名、属性、命名空间 -
领域模型结尾:
DO / DTO / VO/ PO
等
- VO(View Object): 视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来
- DTO(DataTransferObject):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对象
- DO(Domain Object):领域对象,就是从现实世界中抽象出来的有形或无形的业务实体
- PO(Persistent Object):持久化对象,它跟持久层(通常是关系型数据库)的数据结构形成一一对应的映射关系,如果持久层是关系型数据库,那么,数据表中的每个字段(或若干个)就对应PO的一个(或若干个)属性
- DAO(Data Access Object) 😗 数据访问对象是一个面向对象的数据库接口
-
枚举以
Enum
结尾😄; -
接口以
I
开头,抽象类命名使用Abstract
或Base
开头;异常类命名使用Exception
结尾;测试类命名以它要测试的类的名称开始,以Test
结尾 -
Controller 类:必须以
Controller
结尾;
Service:接口以I
开头 ,Service
结尾;
实现以ServiceImpl
结尾;
Dao:接口,以Dao
结尾 -
包名一律小写, [基本包].[项目名1].[项目名2].[模块名].[子模块名]…
一律以com.auto.icloud.****
形式命名 -
减少缩写,如果有缩写请加注释;
-
if、for 等格式规约,左
{
不换行;加空格等; -
换行:一行的长度超过80个字符需要换行,换行规则如下:
-
在一个逗号后面断开;
-
在一个操作符前面断开;
-
长表达式要在低优先级操作符处划分新行;
-
新行缩进2个TAB
-
-
if、for、do、while等语句的执行语句部分无论多少代码都要加括号"{}"
-
每当一个case顺着往下执行时(因为没有break语句),通常应在break语句的位置添加注释;
-
尽量避免在循环中构造和释放对象
-
在使用局部变量的过程,按就近原则处理——不允许定义一个局部变量,然后在很远的地方才使用;
-
相同的功能不允许复制成N份代码;
-
在处理 String 的时候要尽量使用
StringBuffer
类。 -
所有覆盖方法加
@Override
-
不使用过时的类或方法 (
@Deprecatedi
) -
多个异常应分别捕捉并处理,避免使用一个单一的
catch
来处理。 -
类、类属性、类方法的注释,比如
domain
中属性注释,这样在生成Javadoc
的时候,会将注释输出出来,方便阅读;/** 注释 **/
-
类注释:说明类的用途;
-
方法注释:说明做了什么事情,实现了什么功能;入参类型,作用;返回值;异常;
-
好的命名、代码结构是自解释的——注释力求精简准确、表达到位。
-
Map的key、value注意点:
集合类 Key Value 说明 Hashtable 不允许为 null 不允许为 null 线程安全 ConcurrentHashMap 不允许为 null 不允许为 null 线程局部安全 TreeMap 不允许为 null 允许为 null 线程不安全 HashMap 允许为 null 允许为 null 线程不安全
-
工具类加
Util
结尾 或者Helper
结尾; -
设计模式类,请用设计模式名称结尾,比如
WindowSingleton
二、数据库设计规范:
-
避免中文拼音,比如
dengluming
,可以用username
-
主键id自增
-
不设置外键
-
所有字段非空、并且有默认值
-
所有字段必须有注释,表必须有注释;
-
字段小写,单词间用
_
,比如college_name
;对应java 的domain
就是collegeName
-
表明以
t_
开头,并且安装模块区分;比如 课程模块:以t_course
开头; -
视图以
v_
开头,函数以fn_
开头,等; -
sql语句中,sql关键字要大写,如
SELECT,UPDATE,FROM,WHERE,ORDER BY
-
注意sql的美化,(通常sql 关键字前换行) 如:
SELECT id , username
FROM t_auth_user
WHERE id = 1
AND del = 0
ORDER BY time DESC
LIMIT 0 , 10
- 对应Mybatis 的 xml 的写法(详解 AuthUserMapper.xml 文件)
- 类名,字段名小写
- sql关键字大写,并换行美化