名称: 后端开发工程师 描述: 使用多种框架、数据库和部署策略构建生产级服务器端应用程序的综合后端开发。适用于构建API、服务、数据库或服务器基础设施时。
后端开发工程师技能
目的
提供跨多种框架、语言和部署策略的服务器端应用程序开发的全面专业知识。专注于构建可扩展的API、数据库设计、认证系统和生产就绪的后端基础设施。
何时使用
- 构建REST或GraphQL API
- 设计数据库模式和模型
- 实现认证和授权
- 设置服务器基础设施
- 创建微服务或单体后端
- 优化后端性能
- 将服务器应用程序部署到生产环境
- 需要多框架后端指导(Express、FastAPI、Django、Spring)
快速开始
在以下情况下调用此技能:
- 使用Node.js、Python、Java或Go构建服务器端API(REST、GraphQL)
- 实现认证/授权(JWT、OAuth2、基于会话)
- 设计数据库模式和ORM集成
- 设置后端测试(单元、集成、端到端)
- 实现中间件(日志记录、验证、错误处理)
- 将后端服务部署到Kubernetes、AWS、GCP或Azure
- 优化后端性能(缓存、查询优化、速率限制)
不要在以下情况下调用:
- 仅需要前端开发 → 使用前端开发工程师或Next.js开发工程师
- 需要数据库特定优化 → 使用数据库优化师或PostgreSQL专家
- 仅需API设计无需实现 → 使用API设计师
- 需要GraphQL特定架构 → 使用GraphQL架构师
- 仅需DevOps/基础设施 → 使用DevOps工程师或云架构师
框架支持
Node.js/TypeScript
- Express.js、NestJS、Koa.js、Fastify
Python
- FastAPI、Django、Flask、Tornado
Java
- Spring Boot、Quarkus、Micronaut
Go
- Gin、Echo、Fiber
决策框架
后端框架选择
后端框架选择
├─ JavaScript/TypeScript
│ ├─ 需要快速开发 + 类型安全 → NestJS
│ ├─ 需要轻量级/高性能 → Fastify
│ └─ 需要简单性 + 生态系统 → Express.js
│
├─ Python
│ ├─ 需要异步 + 高性能 → FastAPI
│ └─ 需要开箱即用 → Django (+ DRF)
│
├─ Java
│ └─ 企业级就绪 → Spring Boot
│
└─ Go
└─ 高性能服务 → Gin 或 Fiber
认证策略矩阵
| 场景 | 策略 | 复杂度 | 安全性 |
|---|---|---|---|
| 无状态API(移动端、SPA) | JWT | 低 | 中 |
| 第三方登录 | OAuth 2.0 | 中 | 高 |
| 传统Web应用 | 基于会话 | 低 | 高 |
| 微服务 | JWT + API网关 | 高 | 高 |
| 企业单点登录 | SAML 2.0 | 高 | 非常高 |
数据库与ORM选择
数据库与ORM决策
├─ 关系型(SQL)
│ ├─ Node.js/TypeScript
│ │ ├─ 需要类型安全 + 迁移 → Prisma
│ │ └─ 需要灵活性 → TypeORM 或 Sequelize
│ ├─ Python
│ │ ├─ 需要异步 → Tortoise ORM 或 SQLModel
│ │ └─ 同步 / Django → Django ORM 或 SQLAlchemy
│ └─ Java
│ └─ JPA(Hibernate)或 jOOQ
│
└─ NoSQL
├─ 文档存储 → MongoDB(Node.js用Mongoose)
└─ 键值存储 → Redis(缓存、会话)
最佳实践
- 始终验证输入 - 使用提供的验证中间件
- 优雅处理错误 - 使用生成的错误处理器
- 编写测试 - 使用测试模板保持一致性
- 使用环境变量 - 绝不硬编码密钥
- 实现日志记录 - 使用提供的日志配置
- 监控性能 - 设置指标和警报
- 安全第一 - 使用提供的认证设置
- 版本化API - 遵循版本控制模式
- 文档化代码 - 自动生成API文档
- 安全部署 - 使用提供的部署脚本
常见模式
仓储模式
- 关注点分离
- 易于测试
- 可互换实现
服务层
- 集中业务规则
- 事务管理
- 错误处理
中间件栈
- 认证
- 授权
- 验证
- 日志记录
- 错误处理
故障排除
常见问题
数据库连接错误
- 检查连接字符串
- 确认数据库正在运行
- 检查网络连接
- 查看连接池设置
认证失败
- 验证JWT密钥
- 检查令牌过期
- 验证令牌格式
- 查看中间件顺序
构建失败
- 检查TypeScript配置
- 确认依赖已安装
- 查看错误信息
- 检查语法错误
部署问题
- 验证Docker镜像构建
- 检查Kubernetes Pods
- 查看日志
- 验证环境变量
质量检查清单
安全
- [ ] 所有端点的输入验证(Zod/Joi)
- [ ] 密码哈希(bcrypt成本10+或Argon2)
- [ ] SQL注入防护(参数化查询)
- [ ] 认证端点的速率限制
- [ ] 安全头(Helmet.js)
- [ ] 密钥使用环境变量
认证与授权
- [ ] 强JWT密钥(256位)
- [ ] 短期访问令牌(15分钟)
- [ ] 刷新令牌轮换
- [ ] 受保护路由的授权检查
错误处理
- [ ] 全局错误处理器
- [ ] 异步错误处理(express-async-errors)
- [ ] 清晰的验证错误信息
- [ ] 未知端点的404处理
性能
- [ ] 数据库连接池
- [ ] 查询优化(避免N+1)
- [ ] 缓存(Redis用于会话、速率限制)
- [ ] 响应压缩(gzip/brotli)
测试
- [ ] 服务/仓储的单元测试
- [ ] API端点的集成测试
- [ ] 关键路径覆盖率 >80%
- [ ] 独立的测试数据库
附加资源
- 详细技术参考:参见 REFERENCE.md
- 代码示例与模式:参见 EXAMPLES.md