代码命名规范

代码命名指南

好的命名能体现出代码的特征,含义或者是用途,让阅读者可以根据名称的含义快速厘清程序的脉络。

Java 命名规范:

类型 约束
项目名 全部小写,多个单词用中划线分隔‘-’ spring-cloud
包名 统一使用小写 com.alibaba.fastjson
类名 单词首字母大写(大驼峰) Feature, ParserConfig,DefaultFieldDeserializer
常量名 全部大写,多个单词,用’_'分隔 CACHE_EXPIRED_TIME
变量名 首字母小写,多个单词组成时,除首个单词,其他单词首字母都要大写 password, userName
方法 小驼峰(与变量名一样) read(), readObject(), getById()

包命名详解

包名的构成可以分为以下几四部分【前缀】【发起者名】【项目名】【模块名】。

常见的前缀可以分为以下几种:

前缀名 示例 含义
indi、onem indi.发起者名.项目名.模块名.…… 个体项目,指个人发起,但非自己独自完成的项目,可公开或私有项目,copyright 主要属于发起者。
pers pers.个人名.项目名.模块名.…… 个人项目,指个人发起,独自完成,可分享的项目,copyright 主要属于个人
priv priv.个人名.项目名.模块名.…… 私有项目,指个人发起,独自完成,非公开的私人使用的项目,copyright 属于个人。
team team.团队名.项目名.模块名.…… 团队项目,指由团队发起,并由该团队开发的项目,copyright 属于该团队所有
顶级域名 com.公司名.项目名.模块名.…… 公司项目,copyright 由项目发起的公司所有

类命名详解

大驼峰形式

属性 约束
抽象类 Abstract 或者 Base 开头 BaseUserService
枚举类 Enum 作为后缀 GenderEnum
工具类 Utils 作为后缀 StringUtils
异常类 Exception 结尾 RuntimeException
接口实现类 接口名+ Impl UserServiceImpl
领域模型相关 /DO/DTO/VO/DAO(全大写 正例:UserDAO 反例:UserDo, UserDao
设计模式相关类 Builder,Factory 等 当使用到设计模式时,需要使用对应的设计模式作为后缀,如 ThreadFactory
处理特定功能的 Handler,Predicate, Validator 表示处理器,校验器,断言,这些类工厂还有配套的方法名如 handle,predicate,validate
测试类 Test 结尾 UserServiceTest, 表示用来测试 UserService 类的
MVC 分层 Controller,Service,ServiceImpl,DAO 后缀 UserManageController,UserManageDAO

/DO/DTO/VO/DAO 的含义是什么?

这四种类命名是根据设计模式中的分层思想来命名的:

  • DO(Data Object):数据对象,主要用于封装与数据库表对应的数据,包括实体类的定义、属性及属性的 get/set 方法等。一般情况下,DO 对象与数据库表中的字段一一对应。
  • DTO(Data Transfer Object):数据传输对象,主要用于封装业务逻辑层之间传输的数据例如远程调用等。DTO 对象通常包含多个 DO 对象的属性,以及其他业务逻辑相关的属性和方法。(√)
  • VO(Value Object):值对象,主要用于封装视图层需要展示的数据例如展示在前端页面的数据。VO 对象通常只包含少量属性,是从DTO对象中抽取出来的。(√)
  • DAO(Data Access Object):数据访问对象,主要用于封装与数据库的交互操作例如增删改查等。DAO 对象通常与数据库表一一对应,提供对数据库的操作方法。

这种分层设计方式可以有效地降低各个层次之间的耦合度,提高代码的可维护性和可扩展性。

相应的 四种包,以及 entity 包等。均可放在 model 包下统一进行管理。

参考

编码5分钟,命名2小时?史上最全的Java命名规范参考! (qq.com)

你可能感兴趣的:(系统设计,java,系统架构)