chore: 更改文件夹结构

This commit is contained in:
2025-11-23 09:55:11 +08:00
parent ccadacaa9d
commit cd52131c34
13 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,79 @@
# 编程规范_FOR_AITakeoutSaaS
说明本规范为AI编程助手与开发者共同遵循的统一编码规范结合 0_Document 下文档约定(特别是 06_开发规范.md、02_技术架构.md、12.* 规范)执行。超出本文件内容的详细条目请以文档中心为准。
## 1. 技术栈
- .NET 10 + ASP.NET Core Web API
- EF Core 10复杂关系/事务)+ Dapper统计/批量)+ PostgreSQL 16+
- Redis、RabbitMQ、Swagger、MediatR、Serilog、FluentValidation、AutoMapper、Hangfire、Polly
## 2. 命名与风格
- 类/方法/属性PascalCase接口I前缀私有字段_camelCase变量camelCase常量PascalCase
- 每文件仅1个公共类型文件名与类型名一致
- 命名空间与目录结构一致
## 3. 分层与结构
- 物理结构ApiAdminApi/MiniApi/UserApi+ Application + Domain + Infrastructure + Core(Shared.*) + Modules + Gateway
- 不允许在Controller/Service中直接操作DbContext必须通过仓储/应用服务
- 返回DTO禁止直接返回实体
## 4. 注释与文档
- 所有公共API、接口、复杂逻辑必须有XML注释
- 控制器、服务方法提供简要说明与异常声明
## 5. 异常与错误码
- 使用 BusinessException含ErrorCode/ ValidationException禁止吞异常
- 全局异常中间件输出 ProblemDetails扩展code与errors
- 错误码400/401/403/404/409/422/500 + 业务10001+
## 6. 异步与日志
- 全面使用 async/await禁止 .Result/.Wait()
- 使用 Serilog 记录结构化日志,避免记录敏感数据
## 7. 依赖注入
- 统一使用构造函数注入,禁止服务定位器
- 业务逻辑在应用层,仓储在基础设施层
## 8. 数据访问
- EF Core 10 负责关系/事务/迁移Dapper 负责统计和大批量
- 使用工作单元与仓储模式避免N+1只读查询使用AsNoTracking
- 参数化查询禁止字符串拼接SQL
## 9. 多租户
- 通过 Header:X-Tenant-Id 或 Token Claim: tenant_id 解析租户
- EF Core 全局过滤tenant_id写入数据时自动填充租户
## 10. 安全
- HTTPS、Security Headers、CORS按端配置
- 授权AdminApi 使用JWT+RBACMiniApi 小程序登录态+JWT
- 严禁日志打印密码/支付信息等敏感数据
## 11. API 设计
- RESTful统一 /api/{area}/v{version}
- 统一返回ApiResponse<T>;分页返回使用 PagedResult<T>
- Swagger 按版本与端分组,开启鉴权按钮
## 12. 模块化
- 独立模块抽象Identity、Authorization、Tenancy、Dictionary、Storage、Sms、Messaging、Scheduler、Delivery
- 公共横切能力抽到 Shared.* 复用
## 13. 测试
- xUnit + Moq + FluentAssertions命名Method_Scenario_Expected
- 核心业务覆盖率≥80%
## 14. Git 提交
- 使用 Conventional Commitsfeat/fix/docs/style/refactor/perf/test/chore
## 15. 性能
- 投影查询、编译查询、批量操作ExecuteUpdate/ExecuteDelete
- 缓存优先Cache-Aside更新后清缓存
## 16. 禁止事项
- 直接使用DbContext绕过仓储/工作单元)
- 硬编码配置使用IOptions
- 返回实体类
- SQL拼接注入风险
- 吞异常或静默失败
- 同步阻塞异步
以上规范将随着文档中心的演进不断完善AI编程助手生成的代码必须符合本规范并默认使用这些约束。