小伙伴们,你们好,我是老寇,上一节,我们学习了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:用户名已存在 |
我是老寇,我们下次再见