小伙伴们,你们好,我是老寇,上一节,我们学习了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形式的命名,要体现业务语义
| 操作 |
方法名约定 |
举例 |
| 添加 |
add |
addEvent |
方法命名(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:用户名已存在 |
我是老寇,我们下次再见