DedsiDDD.NET Coding
DedsiDDD +.NET 项目代码生成规范,遵循 DDD/CQRS 架构模式和统一约定。
何时使用
- 在 DedsiDDD +.NET 项目中生成新实体/聚合根
- 创建 CQRS Command/Query 处理器
- 配置 EF Core 映射和 DbContext
- 实现 Repository
- 创建 Controller 和 API 端点
- 定义 DTO 数据传输对象
- 遵循 DedsiDDD 约定进行代码审查
能力规则
没有这些规则,AI 无法解决问题或生成的代码无法正确运行。
领域模型
DTO
数据库
仓储
CQRS
Controller
通用
效率规则
这些规则帮助 AI 更有效、更一致地解决问题。
质量保证
交互协议
冲突优先级
本 SKILL 约定 > 现有仓库约定 > 一般 DDD/CQRS 习惯
澄清问题清单
在生成代码前,必须先澄清以下问题:
- 模块边界:实体属于哪个模块?命名空间与目录?
- 路由风格:Controller 使用 action route 还是资源路由?
- 聚合信息:实体单/复数名、主键类型(默认 string/ULID)、是否聚合根
- 字段清单:字段名/类型/必填/长度/默认值/enum/值对象
- 关系与集合:一对多/多对多、集合唯一性约束、更新策略(增量 vs Clear+Add)
- 数据库映射:表名、Schema、索引/唯一约束、是否软删
- API 契约:需要哪些端点(Get/Paged/Create/Update/Delete/Export)
- 返回结构:是否有统一的 ApiResponse/Result 包装?
缺省策略
- 主键:默认
string,生成方式 Ulid.NewUlid().ToString() - 分页:使用
DedsiPagedRequestDto - 更新集合:默认 Clear + Add
- 导出组件:仅当仓库已存在 MiniExcel 时提供落地代码
交付标准
- 明确的文件清单与落点(Domain/Infrastructure/UseCase/HttpApi)
- 每个文件的代码模板或最小变更补丁
- 所有公开入口包含
CancellationToken 并透传到 EF Core/仓储 - 分页查询顺序:筛选 → Count → 排序 →(非导出则分页)→ 投影 → ToList
- Controller 能编译并能调用 Query/Mediator;Command/Query 返回类型与 Controller 对齐
占位符规则
必须替换的占位符:
[Project] - 项目名称[Domain] - 领域实体名称[Entities] - 实体复数形式[DbContext] - DbContext 名称[Child] - 子实体名称
推荐工作流
- 澄清边界与不变式
- 写领域模型(Domain)
- 定义 DTO(Contract)
- 配置 EF Core(DbContext + EntityConfiguration)
- 生成仓储(Repository)
- 实现 Commands(写侧)
- 实现 Queries(读侧)
- 实现 Controller(API 层)
- 一致性检查
参考