SuperAPI AI 工具集

nestjs-best-practices

编程与开发

查看项目

更新于 10-16 02:08

技能介绍

NestJS 最佳实践是一份面向 NestJS 应用的综合性最佳实践指南,包含 10 个类别共 40 条规则,按影响程度排序,用于指导自动化重构和代码生成。

适用时机

在以下场景中参考这些准则:

  • 编写新的 NestJS 模块、控制器或服务
  • 实现身份认证与授权
  • 审查代码中的架构与安全问题
  • 重构现有 NestJS 代码库
  • 优化性能或数据库查询
  • 构建微服务架构

规则类别(按优先级)

  1. 架构(CRITICAL,前缀 arch-)
  2. 依赖注入(CRITICAL,前缀 di-)
  3. 错误处理(HIGH,前缀 error-)
  4. 安全(HIGH,前缀 security-)
  5. 性能(HIGH,前缀 perf-)
  6. 测试(MEDIUM-HIGH,前缀 test-)
  7. 数据库与 ORM(MEDIUM-HIGH,前缀 db-)
  8. API 设计(MEDIUM,前缀 api-)
  9. 微服务(MEDIUM,前缀 micro-)
  10. 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