核心功能定位
本 Skill 是面向 .NET 8/9 生态的专业开发助手,聚焦现代 C# 后端工程实践,而非基础语法教学。核心覆盖四大技术栈:
1. 架构设计层
- 模块化单体(Modular Monolith):按业务域而非技术层组织代码,平衡微服务灵活性与单体简单性
- CQRS 分离:通过 MediatR 实现命令(写)与查询(读)的物理分离
- Result 错误模式:用显式结果类型替代异常驱动控制流,提升代码可预测性
2. 技术实现层
- Minimal API + 强类型端点:取代传统 Controller,减少样板代码
- EF Core 9 优化:包含迁移管理、查询优化(投影/预加载)、审计字段自动处理
- FluentValidation 管道集成:验证逻辑与业务逻辑解耦,通过中间件统一处理
3. 工程规范层
- 强类型 ID:防止原始类型滥用导致的传参错误
- 领域实体富行为:抵制贫血模型,将业务规则内聚于实体
- JWT 认证完整方案:Access/Refresh Token 双令牌机制
显著优点
1. 生产就绪:代码可直接用于企业项目,非玩具示例
2. 性能导向:强调 AsNoTracking、投影查询、取消令牌传递等细节
3. 错误处理体系化:Result 模式与 ProblemDetails 标准化响应
4. 反模式清单:明确列出 10 类常见错误(如 .Result、返回 IQueryable 等)
潜在局限
1. 技术栈锁定:高度依赖 MediatR、FluentValidation 等第三方库,迁移成本存在
2. 学习曲线陡峭:需同时理解 DDD、CQRS、函数式错误处理等多个概念
3. 中小型项目过度设计:模块化单体对简单 CRUD 场景可能显得笨重
4. 无前端/全栈覆盖:纯后端导向,Blazor、MAUI 等未涉及
适合人群
- 有中高级 .NET 基础、希望规范架构的开发者
- 从传统三层架构向现代模式迁移的团队
- 需要快速启动标准化项目的 Tech Lead
常规风险
- 依赖版本漂移:MediatR 12.x 与早期版本 API 差异较大,代码需对应版本
- 异步死锁:虽强调
async/await,但团队若不遵守仍可能引入.Result隐患 - 数据库性能幻觉:EF Core 便利抽象可能掩盖低效 SQL,需配合 SQL Profiling 使用