一个开箱即用的 DDD (领域驱动设计) Python 脚手架,基于 Django 5 + DRF + drf-spectacular ,包含双数据库、统一响应、全局异常与事件驱动示例。
Django-DDD 是一个精心打造的 Python 语言 DDD 工程脚手架,帮你快速搭建符合 DDD 精髓的 Web 服务。项目内置用户与订单示例、领域事件与内存总线、多数据库路由、统一响应与全局异常处理,适合作为团队工程模板,给 AI 提供代码规范参考。
很多人认为 Python 没必要用 DDD ,毕竟它和 Ruby 、JS 一样轻巧灵活,Django 自带的 MTV ( Model-Template-View )拿来就能写。确实,大多数场景下"数据驱动"的 Django 模式完全够用。
工程化无非是把接口处理、业务逻辑、数据处理区分开,让各部分各司其职,方便维护和扩展。DDD 相对更适合中大型项目:如果项目有几十个模块、上百个接口,用 DDD 设计会更合适;模块少、接口不多的话,简单分层就够了。
项目做大以后,会遇到三个常见问题:
django.db.models,替换存储引擎几乎是重构本脚手架遵循务实 DDD:抓住精髓(分层 + 领域模型 + 仓储抽象 + 领域事件),不死守概念(不做 CQRS 、不强制事件溯源、不要求每个业务都建聚合)。总之,是否采用 DDD 和语言无关,只跟业务规模有关。
源码地址:https://github.com/microwind/design-patterns/tree/main/practice-projects/django-ddd