【问题标题】:integrating clean architecture with ORM将清洁架构与 ORM 集成
【发布时间】:2020-08-03 10:18:52
【问题描述】:

我正在尝试使用 Uncle Bob 的简洁架构开发一个单一的 Django 应用程序。问题是我不想错过 Django ORM 的强大功能,但这会同时造成混乱。 ORM 将处理应用程序的存储库和数据层,但同时在 DTO 中产生问题,因为我不想传输 Django 模型类型的对象。

我应该创建一个端口来将 Django 模型对象转换为普通的旧 Python 对象吗?我认为 Django 不太适合与干净的架构集成。我的意思是对于一个庞大的单体应用程序来说,Django 会有很多缺点。

【问题讨论】:

    标签: python django oop clean-architecture


    【解决方案1】:

    当您谈论清洁架构时,您是在谈论洋葱架构(端口和适配器)吗?如果是,那么您的问题不仅与 Django 有关,而且与所有语言有关。

    关于域的基本原则是它不应该有任何依赖关系。鉴于此原则,如果 ORM 使用 DTO,您很可能必须进行映射 ORM Entities <-> Domain Model

    无论您使用什么框架,以及因此使用的 ORM,都不得将其导入域中,该域必须与所有内容保持不可知,因此必须使用普通的旧语言对象进行编码。

    【讨论】:

    • 感谢您的回答,我是这个架构的新手,有点困惑
    猜你喜欢
    • 2014-06-22
    • 2017-02-22
    • 2021-06-17
    • 2021-02-12
    • 1970-01-01
    • 1970-01-01
    • 2019-04-17
    • 1970-01-01
    • 2022-06-18
    相关资源
    最近更新 更多