backend-engineer
SKILL.md
后端工程师
本skill指导如何理解产品需求,实现后端服务功能,构建业务领域和数据处理逻辑。
何时使用本Skill
当后端工程师需要实现后端功能时使用,例如:
- "我是后端工程师,需要实现后端功能..."
- "我需要设计数据库和API..."
- "请帮我实现这个后端服务..."
核心职责
1. 需求理解
- 理解产品需求和功能规格
- 理解业务领域
- 理解业务流程
2. 业务实体识别
- 识别业务实体
- 分析实体关系
- 建立数据模型
3. 领域构建
- 构建业务领域模型
- 设计领域服务
- 设计领域事件
4. 后端服务实现
- 实现API接口
- 实现业务逻辑
- 实现数据处理
5. 数据持久化
- 设计数据库表结构
- 实现数据访问层
- 实现数据缓存
关键技能
后端技术
- 后端编程语言(Java/Python/Go/Node.js)
- 框架(Spring Boot/Django/Express)
- 数据库(MySQL/PostgreSQL/MongoDB)
业务建模能力
- 业务实体识别
- 业务领域建模
- 数据建模
架构能力
- 分层架构
- 领域驱动设计(DDD)
- 六边形架构
优化能力
- 性能优化
- 数据库优化
- 缓存优化
输入物
- 产品功能清单
- 功能规格说明
- 数据模型图
- API文档
交付物
- 后端服务代码
- API文档
- 数据库设计文档
- 后端文档
质量标准
- ✅ 功能实现完整
- ✅ 代码质量高
- ✅ 性能良好
- ✅ 符合架构要求
工作流程
- 需求接收:接收产品功能清单、功能规格说明、数据模型图
- 需求理解:深入理解产品需求和业务流程
- 业务分析:识别业务实体,建立数据模型
- 领域构建:构建业务领域模型
- 接口设计:设计API接口
- 服务实现:实现后端服务
- 数据持久化:设计数据库,实现数据访问层
- 性能优化:优化性能
- 测试验证:进行单元测试和集成测试
- 代码提交:提交代码,进行代码评审
工作流程图
graph LR
A[功能规格] -->|需求理解| B[业务分析]
B -->|实体识别| C[业务模型]
C -->|DDD建模| D[领域驱动设计]
D -->|API设计| E[API规格说明]
E -->|服务实现| F[业务逻辑实现]
F -->|数据库设计| G[表结构设计]
G -->|数据访问层| H[ORM实现]
H -->|缓存优化| I[缓存层]
I -->|性能优化| J[查询优化]
J -->|单元测试| K[测试覆盖]
K -->|集成测试| L{通过?}
L -->|是| M[代码评审]
L -->|否| N[修复问题]
N -->|调整| F
M -->|合并| O[提交到测试]
协作关系
- 向上对接:产品专家、技术架构师
- 平行对接:前端工程师、测试人员
后端开发方法论
方法1: 领域驱动设计(DDD)
- 识别领域和子域
- 建立领域模型
- 设计聚合和实体
- 设计领域服务和事件
核心概念:
- 聚合:一致性边界,保证数据一致性
- 实体:有唯一标识的对象
- 值对象:无唯一标识的对象
- 领域服务:不属于特定实体或值对象的业务逻辑
- 领域事件:表示领域内发生的重要事件
方法2: 六边形架构
- 分离领域层和应用层
- 使用端口和适配器
- 解耦业务逻辑和外部依赖
层次结构:
- 领域层:业务逻辑、实体、值对象、领域服务
- 应用层:应用服务、用例、领域事件
- 适配器层:接口适配、持久化适配、消息适配
- 基础设施层:外部依赖、框架、工具
依赖方向:外部依赖 → 适配器层 → 应用层 → 领域层
方法3: RESTful API设计
- 使用RESTful风格
- 设计合理的资源路径
- 设计标准的HTTP方法
- 设计清晰的错误处理
HTTP方法:
- GET:获取资源
- POST:创建资源
- PUT:更新整个资源
- PATCH:部分更新资源
- DELETE:删除资源
数据库设计
数据库选择
- 关系型数据库(MySQL/PostgreSQL):适合结构化数据、事务要求高的场景
- 文档型数据库(MongoDB):适合非结构化数据、灵活schema的场景
- 缓存数据库(Redis):适合缓存、会话存储的场景
表设计原则
- 规范化:遵循第三范式,避免数据冗余
- 索引:为查询字段创建索引
- 分表分库:大数据量时考虑分表分库
- 软删除:使用标记字段表示删除
常见误区
❌ 误区1: 只关注技术实现,不关注业务逻辑 ✅ 正确: 技术和业务并重,优先考虑业务逻辑
❌ 误区2: 不考虑性能,只关注功能实现 ✅ 正确: 在实现功能的同时考虑性能优化
❌ 误区3: 不考虑扩展性,只关注当前需求 ✅ 正确: 在设计时考虑系统的扩展性
成功案例
案例1: 报表导出功能后端实现
功能需求: 导出销售数据为Excel
实现步骤:
-
业务实体识别:
- 销售记录(SalesRecord)
- 产品(Product)
- 客户(Customer)
- 销售员(Salesperson)
-
领域构建:
- SalesRecord聚合(包含销售明细)
- ReportService(导出报表服务)
- ExportJob(导出任务)
-
API设计:
- POST /api/reports/export - 创建导出任务
- GET /api/reports/export/{jobId} - 查询导出任务状态
- GET /api/reports/export/{jobId}/download - 下载导出文件
-
服务实现:
- ReportService.exportSalesData() - 导出销售数据
- 导出参数验证(日期范围、产品分类、地区)
- 数据查询和过滤
- 数据转换为Excel
- 保存到文件服务器
-
异步处理:
- 使用消息队列处理导出任务
- 实现导出进度跟踪
- 实现导出完成通知
技术实现:
- 使用Java + Spring Boot
- 使用JPA进行数据访问
- 使用Apache POI生成Excel
- 使用RabbitMQ处理异步任务
- 使用Redis缓存查询结果
案例2: 搜索功能后端实现
功能需求: 产品搜索功能
实现步骤:
-
业务实体识别:
- 产品(Product)
- 产品分类(ProductCategory)
- 品牌(Brand)
-
领域构建:
- Product聚合
- SearchService(搜索服务)
- SuggestionService(搜索建议服务)
-
API设计:
- GET /api/search?q=keyword - 搜索产品
- GET /api/search/suggestions?q=keyword - 搜索建议
- GET /api/search/popular - 热门搜索
-
服务实现:
- SearchService.search() - 搜索产品
- 支持精准搜索和模糊搜索
- 支持多字段搜索(名称、SKU、规格)
- 支持排序和分页
-
性能优化:
- 使用Elasticsearch搜索引擎
- 实现搜索结果缓存
- 实现热门搜索缓存
技术实现:
- 使用Python + Django
- 使用Django ORM进行数据访问
- 使用Elasticsearch进行搜索
- 使用Redis缓存查询结果
- 使用Celery处理异步任务
使用指南
当用户说"我是后端工程师,需要实现后端功能..."时,按照以下步骤引导:
- 需求接收:接收产品功能清单、功能规格说明、数据模型图
- 需求理解:深入理解产品需求和业务流程
- 业务分析:识别业务实体,建立数据模型
- 领域构建:使用DDD方法构建业务领域模型
- 接口设计:设计RESTful API接口
- 服务实现:实现后端服务和业务逻辑
- 数据持久化:设计数据库,实现数据访问层
- 性能优化:优化数据库查询、实现缓存
- 测试验证:进行单元测试和集成测试
- 代码提交:提交代码,进行代码评审
输出质量检查清单
在提交后端代码之前,检查以下项目:
- 功能实现完整
- 代码质量高(遵循代码规范)
- 业务逻辑正确
- 数据库设计合理
- API设计规范
- 性能良好(查询优化、缓存)
- 错误处理完善
- 安全性考虑(SQL注入、XSS等)
- 单元测试覆盖率高
Weekly Installs
4
Repository
bdq460/shell-formatFirst Seen
Jan 21, 2026
Security Audits
Installed on
cursor4
trae2
claude-code2
mcpjam1
openhands1
zencoder1