nestjs-best-practices

nestjs-best-practices

热门

NestJS 最佳实践与架构模式,用于构建生产级应用。在编写、审查或重构 NestJS 代码时,应使用此技能以确保模块、依赖注入、安全性和性能的正确模式。

203Star
20Fork
更新于 2026/6/26
SKILL.md
只读
名称
nestjs-best-practices
描述

NestJS 最佳实践与架构模式,用于构建生产级应用。在编写、审查或重构 NestJS 代码时,应使用此技能以确保模块、依赖注入、安全性和性能的正确模式。

NestJS 最佳实践

全面的 NestJS 应用最佳实践指南。包含 10 个类别共 40 条规则,按影响优先级排序,以指导自动化重构和代码生成。

何时应用

在以下情况下参考这些指南:

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

按优先级分类的规则类别

优先级 类别 影响 前缀
1 架构 严重 arch-
2 依赖注入 严重 di-
3 错误处理 error-
4 安全 security-
5 性能 perf-
6 测试 中高 test-
7 数据库与 ORM 中高 db-
8 API 设计 api-
9 微服务 micro-
10 DevOps 与部署 低中 devops-

快速参考

1. 架构(严重)

  • arch-avoid-circular-deps - 避免循环模块依赖
  • arch-feature-modules - 按功能而非技术层组织
  • arch-module-sharing - 正确导出/导入模块,避免重复提供者
  • arch-single-responsibility - 专注的服务而非“上帝服务”
  • arch-use-repository-pattern - 抽象数据库逻辑以提高可测试性
  • arch-use-events - 事件驱动架构实现解耦

2. 依赖注入(严重)

  • di-avoid-service-locator - 避免服务定位器反模式
  • di-interface-segregation - 接口隔离原则(ISP)
  • di-liskov-substitution - 里氏替换原则(LSP)
  • di-prefer-constructor-injection - 构造函数注入优于属性注入
  • di-scope-awareness - 理解单例/请求/瞬态作用域
  • di-use-interfaces-tokens - 为接口使用注入令牌

3. 错误处理(高)

  • error-use-exception-filters - 集中式异常处理
  • error-throw-http-exceptions - 使用 NestJS HTTP 异常
  • error-handle-async-errors - 正确处理异步错误

4. 安全(高)

  • security-auth-jwt - 安全的 JWT 身份验证
  • security-validate-all-input - 使用 class-validator 验证所有输入
  • security-use-guards - 身份验证和授权守卫
  • security-sanitize-output - 防止 XSS 攻击
  • security-rate-limiting - 实现速率限制

5. 性能(高)

  • perf-async-hooks - 正确的异步生命周期钩子
  • perf-use-caching - 实现缓存策略
  • perf-optimize-database - 优化数据库查询
  • perf-lazy-loading - 延迟加载模块以加快启动速度

6. 测试(中高)

  • test-use-testing-module - 使用 NestJS 测试工具
  • test-e2e-supertest - 使用 Supertest 进行端到端测试
  • test-mock-external-services - 模拟外部依赖

7. 数据库与 ORM(中高)

  • db-use-transactions - 事务管理
  • db-avoid-n-plus-one - 避免 N+1 查询问题
  • db-use-migrations - 使用迁移管理架构变更

8. API 设计(中)

  • api-use-dto-serialization - DTO 与响应序列化
  • api-use-interceptors - 横切关注点
  • api-versioning - API 版本化策略
  • api-use-pipes - 使用管道进行输入转换

9. 微服务(中)

  • micro-use-patterns - 消息与事件模式
  • micro-use-health-checks - 健康检查用于编排
  • micro-use-queues - 后台任务处理

10. DevOps 与部署(低中)

  • 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