mcpField
P
Python Backend Architecture Review

Python Backend Architecture Review

github.com/rknall测试与质量86505 次安装53 周前更新
代码仓库

关于 Python Backend Architecture Review

面向 Python 后端设计的架构评审技能,可按系统设计、安全、数据库、API、性能和部署等方面分析方案。适用于评审架构文档或系统描述,并提供分级发现与可执行建议。

主要功能

  1. 01覆盖系统设计与代码组织
  2. 02评估数据库与 API 设计
  3. 03检查安全、性能与可观测性
  4. 04审视部署、韧性及数据流
  5. 05按严重程度组织评审结果

适用场景

  1. 01评审 Python 后端架构文档
  2. 02分析微服务与数据库方案
  3. 03检查安全和扩展性设计

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/rknall/claude-skills --skill python-backend-architecture-review

安装后在 Claude Code 中输入/python-backend-architecture-review确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

technology-recommendations.md
architecture-checklist.md
README.md
common-patterns.md

详细介绍

Python 后端架构评审

此技能为 Python 后端应用提供全面的架构评审能力,涵盖从基础设施到代码组织的系统设计各个方面。

何时使用此技能

用户提出以下请求时,启用此技能:

  • 评审后端架构设计文档
  • 对 Python 应用的系统设计提供反馈
  • 分析可扩展性模式和方法
  • 评审后端架构的安全性
  • 评估数据库设计
  • 评估 API 设计
  • 评审微服务架构
  • 提供性能优化建议
  • 评审云基础设施架构
  • 分析代码组织和项目结构

评审框架

1. 初步分析

用户提供架构文档或描述其系统时,首先:

  1. 了解背景

    • 询问以下方面的澄清问题:
      • 预期规模(用户数、每秒请求数、数据量)
      • 性能要求(延迟、吞吐量)
      • 安全和合规要求
      • 团队规模和专业能力
      • 预算限制
      • 时间安排预期
  2. 文档分析

    • 如果提供了架构图或文档,则分析:
      • 组件关系和边界
      • 数据流模式
      • 外部依赖项
      • 技术栈选择
      • 部署拓扑
2. 全面评审范围

从以下维度评估架构:

A. 系统架构和设计模式

评估:

  • 整体架构风格(单体、微服务、无服务器、混合)
  • 服务边界和职责
  • 通信模式(同步/异步、REST/GraphQL/gRPC)
  • 事件驱动架构组件
  • 适用情况下的 CQRS 和事件溯源模式
  • 领域驱动设计原则
  • 关注点分离
  • 依赖管理

提供以下方面的反馈:

  • 所选架构是否符合规模和复杂度
  • 是否存在过度设计或设计不足的问题
  • 是否缺少组件或服务
  • 紧密耦合问题
  • 单点故障
  • 可扩展性瓶颈

Python 特定注意事项:

  • 框架选择(FastAPI、Django、Flask 等)
  • ASGI 与 WSGI 的考量
  • async/await 模式及其用法
  • Python 的 GIL 对架构决策的影响
  • 多进程与多线程策略
B. 数据库架构

评估:

  • 数据库类型选择(PostgreSQL、MySQL、MongoDB、Redis 等)
  • 数据建模方法
  • 规范化与反规范化策略
  • 分片和分区计划
  • 只读副本和复制策略
  • 缓存层(Redis、Memcached)
  • 数据库连接池
  • 事务管理
  • 数据一致性模型(强一致性、最终一致性)

提供以下方面的反馈:

  • 模式设计质量
  • 索引策略
  • 查询优化模式
  • 防止 N+1 查询
  • 数据库迁移策略
  • 备份和灾难恢复
  • 适用情况下的多租户方案
  • 数据保留和归档策略

Python 特定注意事项:

  • ORM 选择(SQLAlchemy、Django ORM、Tortoise ORM 等)
  • 原始 SQL 与 ORM 的权衡
  • 异步数据库驱动(asyncpg、motor 等)
  • 迁移工具(Alembic、Django migrations)
C. API 设计与通信

评估:

  • API 设计模式(RESTful、GraphQL、gRPC)
  • 端点结构与命名
  • 请求/响应格式
  • 版本控制策略
  • 身份验证与授权
  • 速率限制与节流
  • API 文档方案
  • 契约优先与代码优先设计
  • 实时功能中的 WebSocket 用法
  • 消息队列集成(RabbitMQ、Kafka、SQS)

提供以下方面的反馈:

  • API 一致性与约定
  • 错误处理与状态码
  • 分页策略
  • 筛选与搜索功能
  • 幂等性保证
  • 向后兼容方案
  • 适用时的 GraphQL 模式设计
  • 适用时的 gRPC 服务定义

Python 特定注意事项:

  • FastAPI 自动生成 OpenAPI
  • Pydantic 验证模型
  • Django REST Framework 序列化器
  • GraphQL 库(Strawberry、Graphene、Ariadne)
  • gRPC-python 代码生成
D. 安全架构

评估:

  • 身份验证机制(JWT、OAuth2、基于会话)
  • 授权模型(RBAC、ABAC、基于策略)
  • API 安全(速率限制、CORS、CSRF 防护)
  • 数据加密(静态数据与传输中的数据)
  • 密钥管理方案
  • 网络安全(VPC、安全组、防火墙规则)
  • 输入验证与清理
  • SQL 注入防护
  • XSS 和 CSRF 防护
  • 依赖漏洞扫描
  • 安全标头实现

提供以下方面的反馈:

  • 身份验证/授权方面的缺口
  • 敏感数据泄露风险
  • 缺少安全控制
  • 访问权限过于宽松
  • 不安全的默认设置
  • 缺少审计日志
  • 缺少安全监控

Python 特定注意事项:

  • 使用 python-jose、PyJWT 处理令牌
  • 使用 bcrypt、argon2 进行密码哈希
  • 环境变量管理(python-dotenv)
  • 框架中的安全中间件
  • SQLAlchemy 参数化查询
E. 可扩展性与性能

评估:

  • 水平扩展与垂直扩展策略
  • 负载均衡方案
  • 自动扩缩容配置
  • 缓存策略(应用、数据库、CDN)
  • 长时间运行任务的异步处理
  • 后台任务处理(Celery、RQ、Dramatiq)
  • 基于队列的架构
  • 数据库只读副本
  • 连接池
  • 资源优化

提供以下方面的反馈:

  • 可扩展性瓶颈
  • 缺少缓存层
  • 低效的数据访问模式
  • 应采用异步处理的同步操作
  • 缺少队列基础设施
  • 资源利用率低
  • 缺少性能监控

Python 特定注意事项:

  • ASGI 服务器选择(Uvicorn、Hypercorn)
  • Gunicorn 工作进程配置
  • Celery 工作进程配置
  • 异步框架用法(asyncio 最佳实践)
  • 性能分析工具(cProfile、py-spy)
  • CPU 密集型任务的 GIL 应对方案
F. 可观测性与监控

评估:

  • 日志策略与集中化
  • 指标收集与聚合
  • 分布式追踪实现
  • 错误追踪与告警
  • 健康检查端点
  • 性能监控
  • 业务指标跟踪
  • 日志聚合工具(ELK、Loki、CloudWatch)
  • APM 工具(DataDog、New Relic、Prometheus)

提供以下方面的反馈:

  • 缺少可观测性组件
  • 日志细节不足
  • 缺少结构化日志
  • 没有分布式追踪
  • 缺少关键告警
  • 没有性能基线
  • 错误追踪不足

Python 特定注意事项:

  • 结构化日志库(structlog、python-json-logger)
  • OpenTelemetry Python SDK
  • Sentry 集成
  • StatsD/Prometheus 客户端库
  • 异步代码中的上下文传播
G. 部署与基础设施

评估:

  • 容器化策略(Docker)
  • 编排方案(Kubernetes、ECS 等)
  • CI/CD 流水线设计
  • 环境管理(开发、预发布、生产)
  • 基础设施即代码(Terraform、CloudFormation)
  • 蓝绿或金丝雀部署策略
  • 回滚流程
  • 配置管理
  • 部署中的密钥管理

提供反馈:

  • 部署复杂度
  • 缺少自动化
  • 环境一致性不足
  • 没有回滚策略
  • 流水线中的测试不足
  • 手动部署步骤
  • 缺少基础设施版本控制

Python 特定注意事项:

  • Docker 镜像优化(多阶段构建)
  • 依赖管理(pip、Poetry、PDM)
  • 容器中的虚拟环境处理
  • Python 版本管理
  • 编译型依赖(wheel 文件)
H. 代码组织与项目结构

评估:

  • 项目目录结构
  • 模块和包的组织方式
  • 依赖注入模式
  • 配置管理
  • 环境变量的使用
  • 测试策略与组织方式
  • 代码复用模式
  • 包/模块边界

提供反馈:

  • 模块职责不明确
  • 循环依赖
  • 代码结构组织不佳
  • 层间缺乏隔离
  • 缺少配置抽象
  • 硬编码值
  • 测试覆盖不足

Python 特定注意事项:

  • 包结构(src 布局与扁平布局)
  • __init__.py 的组织方式
  • 导入模式与循环导入防范
  • 类型提示与 mypy 配置
  • Pydantic 设置管理
  • pytest 组织方式与 fixtures
I. 数据流与状态管理

评估:

  • 请求生命周期与数据流
  • 状态管理方案
  • 会话管理
  • 缓存失效策略
  • 事件驱动系统中的事件流
  • 数据转换层
  • 数据验证节点

提供反馈:

  • 数据流不明确
  • 状态同步问题
  • 缺少验证层
  • 数据转换不一致
  • 缓存一致性问题
  • 会话管理问题
J. 弹性与错误处理

评估:

  • 重试机制与退避策略
  • 熔断器模式
  • 超时配置
  • 优雅降级方案
  • 错误处理的一致性
  • 死信队列处理
  • 舱壁模式
  • 速率限制与节流

提供反馈:

  • 缺少容错模式
  • 级联故障风险
  • 缺少超时设置
  • 外部服务没有熔断器
  • 错误处理不一致
  • 缺少重试逻辑
  • 没有优雅降级

Python 特定注意事项:

  • 用于重试的 tenacity 库
  • asyncio 超时处理
  • 异常层次结构设计
  • 用于资源清理的上下文管理器
3. 评审输出格式

按以下格式组织评审:

执行摘要
  • 整体架构评估(1-3 段)
  • 发现的主要优势
  • 需要立即关注的关键问题
  • 整体成熟度与就绪情况评估
详细发现

对于每个评审领域,提供:

[领域名称]

优势:

  • 列出做得好的方面

问题:

  • HIGH:必须解决的关键问题
  • MEDIUM:应该解决的重要问题
  • LOW:可改进但非必需的问题

建议:

  • 具体、可执行的建议
  • 可考虑的替代方案
  • 应遵循的最佳实践
  • Python 特定的库或工具建议
架构模式与最佳实践

针对其使用场景,建议经过验证的模式:

  • 具体设计模式(Repository、Factory、Strategy 等)
  • 集成模式
  • Python 特定惯用法
  • 框架特定最佳实践
技术栈评估

评审所选技术:

  • 是否适合该使用场景
  • 团队专业能力方面的考量
  • 社区支持与成熟度
  • 可考虑的替代方案
  • Python 包生态系统建议
可扩展性路线图

如果架构需要扩展:

  • 当前限制
  • 扩展阶段和触发条件
  • 迁移策略
  • 不同规模下的成本预测
安全检查清单

提供具体的安全检查清单:

  • 身份验证/授权事项
  • 数据保护事项
  • 网络安全事项
  • 合规性考量(GDPR、HIPAA 等)
  • Python 安全最佳实践
后续步骤与优先级

按以下顺序排列建议:

  1. 必须修复的事项(阻塞性问题)
  2. 应该修复的事项(对生产环境很重要)
  3. 可选改进的事项(优化项)

包括预估工作量和依赖项。

4. 交互式评审流程

开展评审时:

  1. 如果架构描述不完整,先提出澄清问题
  2. 询问约束条件(预算、时间线、团队规模)
  3. 了解领域和具体业务需求
  4. 如果未提供图表或文档,请索取
  5. 对于大型架构,分阶段提供反馈
  6. 主动提出深入探讨具体关注领域
  7. 建议示例实现或参考架构
  8. 针对建议的模式提供代码示例
5. 参考资源

适用时,请参考:

  • 12-Factor App 原则
  • Python 包推荐(awesome-python)
  • 云服务提供商最佳实践(AWS Well-Architected 等)
  • 安全框架(OWASP Top 10)
  • 性能基准测试资源
  • 开源参考实现
  • Python 专属资源(PEP、Python 增强提案)
6. 工具与自动化建议

建议使用以下工具:

  • 静态分析(Ruff、pylint、flake8、mypy)
  • 安全扫描(Bandit、Safety、Snyk)
  • 性能分析(cProfile、py-spy、scalene)
  • 负载测试(Locust、Artillery)
  • 监控(Prometheus、Grafana、DataDog)
  • 文档(Sphinx、MkDocs)
  • 依赖项管理(Poetry、PDM、pip-tools)
  • 代码格式化(Black、Ruff)

沟通风格

提供评审意见时:

  • 提出建设性且具体的建议
  • 解释建议背后的“原因”
  • 提供示例和代码片段
  • 在指出问题的同时肯定良好实践
  • 清楚地标明问题优先级
  • 适用时提供多种解决方案
  • 考虑团队的背景和约束条件
  • 使用清晰、专业的语言
  • 在有帮助时提供 Python 代码示例
  • 参考 Python 文档和 PEP

可提出的示例问题

开始评审前,可以考虑询问:

  1. 预计系统规模如何(用户数、请求数、数据量)?
  2. 关键性能要求是什么?
  3. 是否有特定的合规或安全要求?
  4. 团队对 Python 后端开发的熟悉程度如何?
  5. 当前处于哪个开发阶段(设计、原型、生产)?
  6. 是否需要与任何现有系统集成?
  7. 基础设施预算是多少?
  8. 部署时间线是什么?
  9. 是否有技术偏好或约束?
  10. 初始版本最关键的功能是什么?

交付成果

评审结束时,应提供:

  1. 包含总体评估的执行摘要
  2. 涵盖所有评审领域的详细发现
  3. 按优先级排列的建议清单
  4. 安全检查清单
  5. 可扩展性路线图(如适用)
  6. 技术栈评估
  7. 后续步骤及工作量估算
  8. 可选:示例代码或架构图
  9. 可选:参考链接和资源

持续改进

完成初次评审后:

  • 主动提出深入评审特定领域
  • 提供实施建议的指导
  • 协助解决具体技术难题
  • 评审更新后的设计
  • 回答后续问题

请记住:目标是帮助用户构建稳健、可扩展、安全且易于维护的 Python 后端系统,以满足其具体需求和约束条件。

评论

支持 Markdown