用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/renyangY/y-ddd-skills --skill ddd-code-review命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
基于 SOC 职业分类
| name | ddd-code-review |
| description | DDD 代码审查清单与反模式诊断。适用场景:对 DDD 代码进行审查、识别常见反模式、验证分层规范符合性、检查战术设计实现质量。当用户提到代码审查、PR审查、DDD规范检查、反模式识别时使用。 |
| 阶段 | 时机 | 重点 |
|---|---|---|
| 设计阶段 | 方案评审、架构决策 | 限界上下文划分、聚合设计、依赖方向 |
| 编码阶段 | 编码过程中 | 战术模式实现、分层规范、命名规范 |
| 提交审查 | PR/MR 审查 | 综合检查、反模式识别 |
方法名是否反映业务操作?
order.pay(money) 优于 order.updateStatus("PAID")是否避免了 getter/setter 泛滥?
事务边界是否合理?
领域事件是否最终一致性处理?
防腐层是否隔离了外部系统变化?
| 反模式 | 代码特征 | 快速定位关键词 |
|---|---|---|
| 贫血领域模型 | Entity 只有 getter/setter | class Order { private Long id; public Long getId()... |
| 跨聚合直接引用 | 聚合持有其他聚合根对象 | private Customer customer; 而非 private CustomerId customerId; |
| 领域层依赖基础设施 | Entity 含 Spring/JPA 注解 | @Entity, @Autowired 在 domain 包 |
| 万能聚合 | 聚合包含过多关联对象 | Order 含 Payment, Shipment, Invoice 对象 |
| 绕过应用层 | Controller 直接调用 Repository | @Autowired OrderRepository repo; 在 Controller 中 |
## DDD 规范审查报告
### 审查范围
- 文件:Order.java, OrderService.java, OrderRepository.java
- 提交:feat/order-domain
### 检查结果
#### 通过项
- [x] 领域层无框架依赖
- [x] 实体使用业务 ID 值对象
- [x] 业务方法使用业务动词
#### 问题项
- [ ] 贫血模型:Order.java 只有 getter/setter,建议将 pay 逻辑从 Service 移入 Order
- [ ] 跨聚合引用:Order 持有 Customer 对象,建议改为 CustomerId
- [ ] 命名问题:setStatus 应改为 cancel/ship 等业务方法
#### 建议
- 优先级 P1:将 OrderService.pay 中的业务规则下沉到 Order.pay()
- 优先级 P2:将 Customer 引用改为 CustomerId