SuperAPI AI 工具集

clean-architecture

编程与开发

查看项目

更新于 10-16 03:37

技能介绍

用途:帮助构建可维护、可测试的后端,围绕 SOLID 原则、六边形架构(端口与适配器)和 DDD 战术模式组织代码,示例语言为 Python,涉及 FastAPI 依赖注入。

主要能力:

  1. SOLID 原则:单一职责(拆分 UserService、EmailService、ReportService)、开闭(用 Protocol 定义 PaymentProcessor 并扩展 Stripe/PayPal 实现)、里氏替换(IUserRepository 的 Postgres 与内存实现可互换)、接口隔离(拆分 IReader、IWriter、ISearchable)、依赖倒置(服务依赖抽象,FastAPI 用 Depends 注入)。
  2. 六边形架构:区分驱动适配器(FastAPI 路由、CLI、Celery 任务、测试 Mock)、输入端口(用例服务)、领域层(实体、值对象、领域事件)、输出端口(Protocol 定义的仓储与通知接口)与驱动适配器(Postgres、SMTP/SendGrid)。
  3. DDD 战术模式:实体按身份相等、值对象不可变且结构相等、聚合根收集领域事件并在提交后发布。
  4. 目录结构建议:api/v1、domains/analysis(entities、value_objects、services、repositories、events)、infrastructure(repositories、services、messaging)、core(dependencies、protocols)。
  5. 反模式:领域层不得导入基础设施、不得向 API 泄漏 ORM 模型、领域层不得依赖框架(如 HTTPException)。
  6. 关键决策:Protocol 优于 ABC;领域用 dataclass、API 用 Pydantic;每个聚合根一个仓储;事务边界在服务层;事件在聚合中收集、提交后发布。

使用方式:作为技能参考,在实现后端分层与领域建模时按上述模式组织代码;资料未提供安装命令或调用方式。

适用场景:FastAPI 应用结构设计、基础设施与领域解耦、实体与值对象区分、聚合设计。

限制:示例为 Python;未提供其他语言实现、收费、平台或效果信息。