01小节:牛券项目代码规范
作者:程序员马丁
热门项目实战社群,收获国内众多知名公司面试青睐,近千名同学面试成功!助力你在校招或社招上拿个offer。
牛券项目代码规范,元数据信息:
- 什么是牛券oneCoupon:https://t.zsxq.com/pAWgS
- 代码仓库:https://gitcode.net/nageoffer/onecoupon —— 申请项目权限参考上述牛券项目链接
- 章节难度:★☆☆☆☆ - 简单
- 视频地址:无
©版权所有 - 拿个offer-开源&项目实战星球专属学习项目,依据《中华人民共和国著作权法实施条例》和《知识星球产权保护》,严禁未经本项目原作 者明确书面授权擅自分享至 GitHub、Gitee 等任何开放平台。违者将面临法律追究。
内容摘要:讲解在牛券项目编写过程中使用的代码规范,以帮助大家更好地理解代码并编写高质量代码。
由于本节内容主要涉及代码规范,没有特别复杂或隐晦的部分,因此没有录制视频。
课程目录如下所示:
- 方法命名
- 参数命名
- 领域模型命名规约
- 代码开发规约
- 注释规范
- 消息队列规约
方法命名
1. 获取单个对象的方法用 get 作前缀
例如:查询单个用户 getStudent,按照 ID 查询单个用户 getStudentById。
2. 获取多个对象的方法用 list 作前缀
例如:按照 IDS 查询多个用户,listStudentByIds。
3. 获取统计值的方法用 count 作前缀
例如:统计全量用户,countUser。
4. 插入的方法用 save 作前缀
例如:新增用户,saveUser。
5. 删除的方法用 remove 作前缀
例如:删除用户,removeUser。
6. 修改的方法用 update 作前缀
例如:修改用户,updateUser。
参数命名
1. 对象参数命名
许多同学在方法参数命名上较为随意,与其如此,不如制定统一的命名规范,以避免增加命名难度。针对 Controller、Service 和 Mapper 三层架构中的单个对象请求参数,建议统一使用 requestParam 进行命名。
示例如下:
/**
* 查询优惠券模板
*
* @param requestParam 请求参数
* @return 优惠券模板信息
*/
CouponTemplateQueryRespDTO findCouponTemplate(CouponTemplateQueryReqDTO requestParam);
2. 单参数命名
对于基础类型和引用类型,由于它们的语义较为单一,因此可以直接使用它们本身的语义单词进行命名。
/**
* 查询优惠券推送任务详情
*
* @param taskId 推送任务 ID
* @return 优惠券推送任务详情
*/
CouponTaskQueryRespDTO findCouponTaskById(String taskId);
领域模型命名规约
1. 数据对象
xxxDO,xxx 即为数据表名。比如学生数据对象:StudentDO。
2. 数据传输对象
xxxDTO,xxx 为业务领域相关的名称。
这里又分为两种,分别是请求入参和请求出参,以学生新增接口为例:
- 入参:StudentSaveReqDTO
- 出参:StudentSaveRespDTO
如果是分页查询学生接口,示例如下:
- 入参:StudentPageQueryReqDTO
- 出参:StudentPageQueryRespDTO
3. 项目配置类
xxxConfiguration,xxx 为配置类型。比如数据库持久层配置类:DataBaseConfiguration。
4. 常量类
xxxConstant,xxx 为常量领域。比如项目中公共 Redis 配置:RedisCommonConstant。
5. 上下文
xxxContext,xxx 为上下文类型。比如用户存储上下文:UserContext。
6. 枚举类
xxxEnum,xxx 表示什么类型的枚举。比如用户优惠券状态枚举:UserCouponStatusEnum。
7. 注意事项
POJO 是 DO/DTO/BO/VO 的统称,禁止命名成 xxxPOJO。