后端开发模式

SkillMonitoring & ops

Backend development patterns for services, error handling, logging, caching. Use when building backend services, APIs, or microservices.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the 后端开发模式 skill

What this skill tells your AI

The instructions your AI receives, as published by xiaobei930/cc-best in skills/backend/SKILL.md and read by ahel’s review.

本技能提供后端服务开发的最佳实践和模式,支持多语言按需加载。

触发条件

  • 构建后端服务
  • 设计服务架构
  • 实现业务逻辑层
  • 配置中间件
  • 处理错误和日志
  • 性能优化(数据库、缓存、并发)

语言专属模式

根据项目技术栈,加载对应的语言专属文件:

技术栈加载文件框架
Pythonpython.mdFastAPI, Django, Flask
TypeScript/Node.jstypescript.mdExpress, NestJS, Fastify
Javajava.mdSpring Boot, Quarkus
Gogo.mdGin, Echo, Fiber
C#csharp.mdASP.NET Core
Rustrust.mdAxum, Actix-web, Rocket

加载方式: 检测项目中的 pyproject.toml/package.json/pom.xml/go.mod/Cargo.toml 等文件确定技术栈。


通用架构模式

分层架构

┌─────────────────────────────────────┐
│           Controller 层              │  处理 HTTP 请求/响应
├─────────────────────────────────────┤
│            Service 层                │  业务逻辑
├─────────────────────────────────────┤
│          Repository 层               │  数据访问
├─────────────────────────────────────┤
│             Model 层                 │  数据模型
└─────────────────────────────────────┘

通用目录结构

src/
├── controllers/          # 控制器(或 routes/handlers)
├── services/             # 业务逻辑
├── repositories/         # 数据访问(或 dal/)
├── models/               # 数据模型(或 entities/)
├── middlewares/          # 中间件
├── utils/                # 工具函数
├── config/               # 配置
└── types/                # 类型定义(如适用)

通用最佳实践

1. 错误处理原则

┌─────────────────────────────────────────────────────┐
│                    错误处理金字塔                     │
├─────────────────────────────────────────────────────┤
│  业务错误 (400-499)                                  │
│  ├─ ValidationError (400)   输入验证失败             │
│  ├─ UnauthorizedError (401) 未认证                  │
│  ├─ ForbiddenError (403)    无权限                  │
│  └─ NotFoundError (404)     资源不存在              │
├─────────────────────────────────────────────────────┤
│  系统错误 (500-599)                                  │
│  ├─ InternalError (500)     服务器内部错误           │
│  ├─ ServiceUnavailable (503) 服务不可用             │
│  └─ GatewayTimeout (504)    网关超时                │
└─────────────────────────────────────────────────────┘

原则:

  • 自定义错误类继承基础错误
  • 统一错误响应格式
  • 区分可操作错误和程序错误
  • 记录足够的上下文用于调试

2. 日志规范

日志级别:

级别用途示例
ERROR需要立即关注的错误数据库连接失败
WARN潜在问题重试成功、降级处理
INFO重要业务事件用户登录、订单创建
DEBUG开发调试信息变量值、执行路径

结构化日志字段:

{
  "timestamp": "2025-01-22T10:00:00Z",
  "level": "info",
  "message": "用户登录成功",
  "requestId": "uuid",
  "userId": "123",
  "duration": 45
}

3. 缓存策略

策略适用场景TTL 建议
Cache-Aside读多写少5-60 分钟
Write-Through强一致性要求短 TTL
Write-Behind写多读少根据业务

缓存键命名:

{service}:{entity}:{id}
{service}:{entity}:list:{hash}

4. API 设计原则

  • RESTful 资源导向
  • 版本控制 /api/v1/...
  • 统一响应格式
  • 幂等性 PUT/DELETE 操作
  • 分页 大列表查询

5. 安全检查清单

  • 输入验证(白名单优先)
  • SQL/NoSQL 注入防护
  • 认证令牌安全存储
  • 敏感数据加密
  • 速率限制
  • CORS 配置

通用代码模式

统一响应格式

成功响应:
{
  "success": true,
  "data": { ... },
  "meta": { "total": 100, "page": 1 }
}

错误响应:
{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "邮箱格式不正确"
  }
}

健康检查端点

GET /health

{
  "status": "ok",
  "timestamp": "2025-01-22T10:00:00Z",
  "services": {
    "database": { "status": "ok" },
    "redis": { "status": "ok" }
  }
}

优雅关闭

1. 收到 SIGTERM 信号
2. 停止接受新请求
3. 等待进行中的请求完成(超时时间内)
4. 关闭数据库连接
5. 关闭其他资源
6. 退出进程

语言专属内容

详细的语言专属实现请参考:

专项优化

Python 进阶


Maintenance

  • Sources: 各语言官方文档, 12-Factor App
  • Last updated: 2025-01-22
  • Pattern: 通用清单 + 按需加载语言专属

记住: 后端代码的质量标准是可维护性——类型安全、错误处理、日志追踪缺一不可。

Signals

GitHub stars
50
Forks
3
Last commit
Jun 2026

ahel review

  • K1binfo
    installs-packages (in performance.md)
  • K1binfo
    installs-packages (in python.md)
  • K1binfo
    installs-packages (in rust.md)

Automated review, not a security audit. Ruleset v1+k2.

Advanced
Catalog kind
skill
Gateway key
backend-xiaobei930
Source
github.com/xiaobei930/cc-best