...
总体代码
应用层只包含流程代码, 不应出现业务代码(具体逻辑,控制语句,循环语句)
具体的业务代码由服务层和实体完成
应用层应该明确职责, 如用户的增删查改与用户行为应该独立分为两个应用根据依赖的仓库能查询到的数据区分
注释
类注释上应该描述该应用提供的功能
在方法的注释中描述输入和输出的数据, 接口的功能
输入输出
应用层接受命令类型输入,如:command,query,event, 输出DTO类型
与仓库的关系
一个应用使用一个仓库, 一个仓库可以依赖一个或多个DAO, cache等
服务层
总体代码
具体的业务逻辑,单个服务的功能应该要单一,如新增用户时对用户名的唯一校验需要一个服务, 可以使前后台共用一个服务校验
需要提前结束时抛出对应的错误, 在配置全局异常处理
注释
类注释表明该类提供的服务范围,如图
方法注释表明输入和输入, 简单介绍逻辑, 如图
与仓库的关系
服务不允许依赖仓库, 通过方法传参的形式传入仓库调用仓库方法, 如图
调用方可以通过传入不同的仓库实现查询不同的数据, 而不是在该服务内部控制
与其他服务的关系
允许服务层之间相互依赖,
仓库层
总体代码
不应出现业务逻辑
...



