小伙伴们,你们好,我是老寇,上一节,我们学习了DDD相关术语,继续跟老寇学习COLA代码规范
代码规范
包命名
| 层次 | 包名 | 功能 | 必选 |
|---|
| Adapter层 | web | 处理页面请求Controller | 否 |
| Adapter层 | wireless | 处理无线端适配 | 否 |
| Adapter层 | wap | 处理wap端的适配 | 否 |
| | | |
| App层 | executor | 处理request,包括command和query | 是 |
| App层 | consumer | 处理外部message | 否 |
| App层 | scheduler | 处理定时任务 | 否 |
| | | |
| Domain层 | model | 领域模型 | 否 |
| Domain层 | ability | 领域能力,包括DomainService | 否 |
| Domain层 | gateway | 领域网关,解耦利器 | 是 |
| | | |
| Infrastructure层 | gatewayimpl | 网关实现 | 是 |
| Infrastructure层 | mapper | ibatis数据库映射 | 否 |
| Infrastructure层 | config | 配置信息 | 否 |
| | | |
| Client SDK | api | 服务对外透出的API | 是 |
| Client SDK | dto | 服务对外的DTO | 是 |
类命名
| 规范 | 用途 | 解释 |
|---|
| xxxCmd | Client Request | Cmd代表Command,表示新增/修改/删除相关的请求 |
| xxxQry | Client Request | Qry代表Query,表示查询相关的请求 |
| xxxCO | Client Object | 用于传递数据,等同于DTO |
| xxxServiceI | Api Service | Api接口 |
| xxxCmdExe | Command Executor | 命令模式,一个新增/修改/删除相关的请求对应一个执行器 |
| xxxQryExe | Query Executor | 命令模式,一个查询相关的请求对应一个执行器 |
| xxxInterceptor | Command Interceptor | 拦截器,用于处理切面逻辑 |
| xxxExtPt | Extension Point | 扩展点 |
| xxxExt | Extension | 扩展实现 |
| xxxValidator | Validator | 校验器,用于校验的类 |
| xxxConvertor | Convertor | 转换器,实现不同层级对象互转 |
| xxxAssembler | Assembler | 组装器,组装外部服务调用参数 |
| xxxA | AggregateRoot | 聚合根,聚合实体和值对象 |
| xxxE | Entity | 领域实体 |
| xxxV | Value Object | 值对象 |
| xxxMapper | Mapper | 数据库映射 |
| xxxDomainService | Domain Service | 领域服务 |
| xxxDO | Data Object | 数据对象,持久化 |
| xxxGateway | Gateway | 领域网关,防腐层 |
| xxxConstant | Constant | 常量 |
| xxxConfig | Configuration | 配置 |
| xxxUtil | Utility | 工具 |
| xxxEvent | Event | 事件 |
| xxxEventHandler | Event Handler | 处理事件 |
| xxxDomainFactory | Domain Factory | 领域工厂 |
| xxxController | Controller | 处理页面请求 |
方法命名
方法命名(adapter层 + app层)
| 操作 | 方法名约定 | 举例 |
|---|
| 新增 | save | saveUser |
| 删除 | remove | removeUser |
| 修改 | modify | modifyUser |
| 查看 | get | getById |
| 列表 | list | listUser |
| 分页 | page | pageUser |
| 统计 | count | countUser |
方法命名(domain层)
尽量避免CRUD形式的命名,要体现业务语义
方法命名(infrastructure层)
| 操作 | 方法名约定 | 举例 |
|---|
| 新增 | create | createUser |
| 删除 | delete | deleteUser |
| 修改 | update | updateUser |
| 查看 | get | getById |
| 列表 | list | listUser |
| 分页 | page | pageUser |
| 统计 | count | countUser |
方法命名(Mapper)
| 操作 | 方法名约定 | 举例 |
|---|
| 新增 | insert | insertUser |
| 删除 | delete | deleteUser |
| 修改 | update | updateUser |
| 查看 | select | selectById |
| 列表 | list | selectList |
| 分页 | page | selectPage |
| 统计 | count | selectCount |
错误码命名(显性)
| 类型 | 错误码约定 | 举例 |
|---|
| 参数异常 | P_XX_XX | P_OAuth2_UsernameIsNull:账号不能为空 |
| 系统异常 | S_XX_XX | S_DS_TableNotExist:表不存在 |
| 业务异常 | B_XX_XX | B_User_UsernameAlreadyExist:用户名已存在 |
我是老寇,我们下次再见