其他
在 .NET 10 项目中按现有架构生成完整功能切片:检测…
当你要在 .NET 10 项目中新增功能、端点、实体或模块,并希望按项目现有架构生成完整可运行的功能切片时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 35/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 38/100 ×0.15
适用场景
在 .NET 10 项目中按现有架构生成特定
解决思路
- 支持的架构:VSA、Clean Architecture、DDD + Clean Architecture、Modular Monolith;对应文件放置映射和代码形态模板在 references/architecture-patterns.md。
- 检测架构:使用 architecture-advisor skill 确定项目架构(VSA、Clean Architecture、DDD、Modular Monolith)。
- 检测架构时检查文件夹结构、项目引用和现有模式。
- 若架构不明确,询问用户,不要猜测。
- 加载匹配的架构 skill:vertical-slice、clean-architecture、ddd。
- 生成前与用户确认范围;若计划已回答则跳过:功能/实体名称与所需操作——完整 CRUD 还是子集。
- 生成前与用户确认:新实体的关键字段和不变量。
- 生成前与用户确认:模块放置(仅 Modular Monolith)——放入已有模块还是新模块。
- 学习约定:使用 convention-learner skill 和 MCP 工具检查命名模式(*Handler、*Service、*Endpoint、*Command、*Query)。
- 检查文件夹结构、文件组织、访问修饰符、sealed 约定。
- 检查现有验证方式(FluentValidation、data annotations、manual)。
- 检查测试项目结构和命名(*Tests、*IntegrationTests)。
- 匹配现有约定;不要向已有代码库强加新约定。
- 生成所有层:按 references/architecture-patterns.md 中的模板生成架构要求的每个文件。
- VSA:阅读 VSA 部分;单文件功能 + endpoint group + EF 配置 + 测试。
- Clean Architecture:阅读 CA 部分;Mediator command/handler 放在 Application,endpoint 放在 Api。
- DDD:阅读 DDD 部分;带不变量和领域事件的聚合,薄 handler。
- Modular Monolith:阅读 Modular Monolith 部分;模块 DbContext、DI 注册、集成事件。
- 参考文件还覆盖所有架构复用的共享形态(endpoint group、validator、entity + IEntityTypeConfiguration<T> 对、test fixture)以及要避免的 anti-patterns。
- 强制完整性清单:每个脚手架功能必须包含全部九项,不得跳过:Endpoint——包含路由组的 IEndpointGroup 文件;绝不在 Program.cs 中接线。
- Handler——sealed、primary constructor,每个操作一个。
- Validator——有意义的 FluentValidation 规则(ranges、required、max lengths),在变更型端点通过 .AddEndpointFilter<ValidationFilter<T>>() 接线。
- DTOs——为消费者塑造的 records,绝不是实体的 1:1 镜像。
- EF configuration——IEntityTypeConfiguration<T>;实体上不要用 data annotations。
- Integration tests——WebApplicationFactory + Testcontainers,通过 services.RemoveAll<DbContextOptions<T>>() 替换 DI。
- OpenAPI metadata——.WithName()、.WithSummary()、.Produces<T>()、.ProducesValidationProblem()、.ProducesProblem(404)。
- CancellationToken——每个 async 方法都要有,并传给每个 async 调用。
- Result pattern——handlers 返回 Result<T>;endpoints 将成功映射为 TypedResults,失败映射为 ToProblemDetails()。
- 同时验证支持基础设施,缺失则脚手架补齐:list endpoints 获得有界分页(page/pageSize,最大 50),Program.cs 有 app.UseExceptionHandler(),appsettings.json 有连接字符串。
- 验证:运行 dotnet build --no-restore。
- 运行 dotnet test --no-build --filter "FullyQualifiedName~{FeatureName}"。
- 若构建或测试失败,修复并重新运行,然后再展示结果。
- 生成时保证不是半个功能:每次脚手架都作为一个单元包含 endpoint、handler、validation、DTOs、EF configuration 和至少一个 integration test。
- 使用现代 C# 14:primary constructors、collection expressions、records、sealed handlers、TypedResults。
适用边界 · 注意事项
- 非 .NET 10 项目或不采用 VSA、Clean Architecture、DDD、Modular Monolith 的项目不要套用。
- 架构不明确且无法向用户确认时,不要猜测架构后生成。
- 只想要单个文件或极小改动、不需要完整功能切片的场景,不要强行补齐九项清单。