alibaba命名规范

1.类名命名规范

1.类名使用 UpperCamelCase 风格,但以下情形例外:DO / BO / DTO / VO / AO / PO / UID 等
2.方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵从驼峰形式。
3.抽象类命名使用Abstract或Base开头;异常类命名使用Exception 结尾;测试类命名以它要测试的类的名称开始,以 Test结尾。
4.如果模块、接口、类、方法使用了设计模式,在命名时需体现出具体模式。
5.接口类中的方法和属性不要加任何修饰符号(public 也不要加),保持代码的简洁性,并加上有效的 Javadoc 注释。
6.枚举类名建议带上 Enum 后缀,枚举成员名称需要全大写,单词间用下划线隔开。

2.各层命名规约:

A) Service/DAO 层方法命名规约
1) 获取单个对象的方法用 get 做前缀。
2) 获取多个对象的方法用 list 做前缀,复数形式结尾如:listObjects。 
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。

3.定义常量

1.不要使用一个常量类维护所有常量,要按常量功能进行归类,分开维护。
2.如果变量值仅在一个固定范围内变化用 enum 类型来定义。

4.SQL查询

1.不要使用 count(列名)或 count(常量)来替代 count(*),count(*)是 SQL92 定义的标准统计行数的语法,跟数据库无关,跟 NULL 和非 NULL 无关
2.使用 ISNULL()来判断是否为 NULL 值
3.在代码中写分页查询逻辑时,若 count 为 0 应直接返回,避免执行后面的分页语句
4.不得使用外键与级联,一切外键概念必须在应用层解决。
5.禁止使用存储过程,存储过程难以调试和扩展,更没有移植性
6.数据订正(特别是删除、修改记录操作)时,要先 select,避免出现误删除,确认无误才能执行更新语句
7.in 操作能避免则避免,若实在避免不了,需要仔细评估 in 后边的集合元素数量,控制在 1000 个之内
8.在表查询中,一律不要使用 * 作为查询的字段列表,需要哪些字段必须明确写明
9.POJO 类的布尔属性不能加 is,而数据库字段必须加 is_,要求在 resultMap 中进行字段与属性之间的映射
10.不要用 resultClass 当返回参数,即使所有类属性名与数据库字段一一对应,也需要定义;反过来,每一个表也必然有一个 POJO 类与之对应。配置映射关系,使字段与 DO 类解耦,方便维护
11.sql.xml 配置参数使用:#{},#param# 不要使用${} 此种方式容易出现 SQL 注入
12.不允许直接拿 HashMap 与 Hashtable 作为查询结果集的输出。resultClass=”Hashtable”,会置入字段名和属性值,但是值的类型不可控
13.@Transactional 事务不要滥用。事务会影响数据库的 QPS,另外使用事务的地方需要考虑各方面的回滚方案,包括缓存回滚、搜索引擎回滚、消息补偿、统计修正等

你可能感兴趣的:(#,项目踩坑,数据库)