NestJS 最佳实践是一份面向 NestJS 应用的综合性最佳实践指南,包含 10 个类别共 40 条规则,按影响程度排序,用于指导自动化重构和代码生成。
适用时机
在以下场景中参考这些准则:
- 编写新的 NestJS 模块、控制器或服务
- 实现身份认证与授权
- 审查代码中的架构与安全问题
- 重构现有 NestJS 代码库
- 优化性能或数据库查询
- 构建微服务架构
规则类别(按优先级)
- 架构(CRITICAL,前缀 arch-)
- 依赖注入(CRITICAL,前缀 di-)
- 错误处理(HIGH,前缀 error-)
- 安全(HIGH,前缀 security-)
- 性能(HIGH,前缀 perf-)
- 测试(MEDIUM-HIGH,前缀 test-)
- 数据库与 ORM(MEDIUM-HIGH,前缀 db-)
- API 设计(MEDIUM,前缀 api-)
- 微服务(MEDIUM,前缀 micro-)
- DevOps 与部署(LOW-MEDIUM,前缀 devops-)
快速参考
1. 架构(CRITICAL)
- arch-avoid-circular-deps:避免循环模块依赖
- arch-feature-modules:按功能而非技术层组织
- arch-module-sharing:正确的模块导出/导入,避免重复 provider
- arch-single-responsibility:使用职责聚焦的服务,而非“上帝服务”
- arch-use-repository-pattern:抽象数据库逻辑以便测试
- arch-use-events:使用事件驱动架构实现解耦
2. 依赖注入(CRITICAL)
- di-avoid-service-locator:避免服务定位器反模式
- di-interface-segregation:接口隔离原则(ISP)
- di-liskov-substitution:里氏替换原则(LSP)
- di-prefer-constructor-injection:优先使用构造函数注入而非属性注入
- di-scope-awareness:理解 singleton/request/transient 作用域
- di-use-interfaces-tokens:为接口使用注入令牌
3. 错误处理(HIGH)
- error-use-exception-filters:集中式异常处理
- error-throw-http-exceptions:使用 NestJS HTTP 异常
- error-handle-async-errors:正确处理异步错误
4. 安全(HIGH)
- security-auth-jwt:安全的 JWT 认证
- security-validate-all-input:使用 class-validator 校验
- security-use-guards:认证与授权守卫
- security-sanitize-output:防止 XSS 攻击
- security-rate-limiting:实现速率限制
5. 性能(HIGH)
- perf-async-hooks:正确的异步生命周期钩子
- perf-use-caching:实现缓存策略
- perf-optimize-database:优化数据库查询
- perf-lazy-loading:懒加载模块以加快启动
6. 测试(MEDIUM-HIGH)
- test-use-testing-module:使用 NestJS 测试工具
- test-e2e-supertest:使用 Supertest 进行 E2E 测试
- test-mock-external-services:模拟外部依赖
7. 数据库与 ORM(MEDIUM-HIGH)
- db-use-transactions:事务管理
- db-avoid-n-plus-one:避免 N+1 查询问题
- db-use-migrations:使用迁移进行模式变更
8. API 设计(MEDIUM)
- api-use-dto-serialization:DTO 与响应序列化
- api-use-interceptors:横切关注点
- api-versioning:API 版本策略
- api-use-pipes:使用管道进行输入转换
9. 微服务(MEDIUM)
- micro-use-patterns:消息与事件模式
- micro-use-health-checks:用于编排的健康检查
- micro-use-queues:后台任务处理
10. DevOps 与部署(LOW-MEDIUM)
- devops-use-config-module:环境配置
- devops-use-logging:结构化日志
- devops-graceful-shutdown:零停机部署
使用方式
阅读各规则文件以获取详细说明和代码示例:
- rules/arch-avoid-circular-deps.md
- rules/security-validate-all-input.md
- rules/_sections.md
每个规则文件包含:
- 为何重要的简要说明
- 带说明的错误代码示例
- 带说明的正确代码示例
- 额外上下文与参考
完整汇编文档
包含所有规则展开的完整指南:AGENTS.md