Java代码以及数据库设计规范

代码未动,规范先行🐴

此篇文章自己收集整理而来,如有侵权,请联系本人删除😃

一、Java编码规范

  • 禁止以 _ 或者`
  • $

` 开始或者结尾

  • 禁止使用半英文、半拼音

  • 类名:类名使用UpperCamelCase

  • 方法名、参数名、成员变量、局部变量都统一使用lowerCamelCase 风格,必须遵从驼峰形式

  • 小驼峰法(camel方法)变量一般用小驼峰法标识。
    第一个单词以小写字母开始;第二个单词的首字母大写或每一个单词的首字母都采用大写字母 例如:myFirstNamemyLastName

  • 大驼峰法(Upper Camel Case)也称为:帕斯卡命名法:(pascal方法)常用于类名、函数名、属性、命名空间

  • 领域模型结尾: DO / DTO / VO/ PO

  1. VO(View Object): 视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来
  1. DTO(DataTransferObject):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对象
  1. DO(Domain Object):领域对象,就是从现实世界中抽象出来的有形或无形的业务实体
  1. PO(Persistent Object):持久化对象,它跟持久层(通常是关系型数据库)的数据结构形成一一对应的映射关系,如果持久层是关系型数据库,那么,数据表中的每个字段(或若干个)就对应PO的一个(或若干个)属性
  1. DAO(Data Access Object) 😗 数据访问对象是一个面向对象的数据库接口
  • 枚举以Enum结尾😄;

  • 接口以I开头,抽象类命名使用 AbstractBase 开头;异常类命名使用 Exception结尾;测试类命名以它要测试的类的名称开始,以 Test结尾

  • Controller 类:必须以Controller结尾;
    Service:接口以I开头 ,Service结尾;
    实现以ServiceImpl结尾;
    Dao:接口,以Dao结尾

  • 包名一律小写, [基本包].[项目名1].[项目名2].[模块名].[子模块名]…
    一律以com.auto.icloud.****形式命名

  • 减少缩写,如果有缩写请加注释;

  • if、for 等格式规约,左 { 不换行;加空格等;

  • 换行:一行的长度超过80个字符需要换行,换行规则如下:

    1. 在一个逗号后面断开;

    2. 在一个操作符前面断开;

    3. 长表达式要在低优先级操作符处划分新行;

    4. 新行缩进2个TAB

  • if、for、do、while等语句的执行语句部分无论多少代码都要加括号"{}"

  • 每当一个case顺着往下执行时(因为没有break语句),通常应在break语句的位置添加注释;

  • 尽量避免在循环中构造和释放对象

  • 在使用局部变量的过程,按就近原则处理——不允许定义一个局部变量,然后在很远的地方才使用;

  • 相同的功能不允许复制成N份代码;

  • 在处理 String 的时候要尽量使用 StringBuffer 类。

  • 所有覆盖方法加 @Override

  • 不使用过时的类或方法 (@Deprecatedi

  • 多个异常应分别捕捉并处理,避免使用一个单一的catch来处理。

  • 类、类属性、类方法的注释,比如domain中属性注释,这样在生成 Javadoc 的时候,会将注释输出出来,方便阅读;

    /** 注释 **/

  • 类注释:说明类的用途;

  • 方法注释:说明做了什么事情,实现了什么功能;入参类型,作用;返回值;异常;

  • 好的命名、代码结构是自解释的——注释力求精简准确、表达到位。

  • Map的key、value注意点:

    集合类KeyValue说明
    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 文件)
    1. 类名,字段名小写
    2. sql关键字大写,并换行美化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值