- 原文地址:Python Architecture Stuff: do we need more?
- 原文做者:Harry
- 译文出自:掘金翻译计划
- 本文永久连接:github.com/xitu/gold-m…
- 译者:QiaoN
- 校对者:
最近,我一直在学习有关应用程序架构的不少新东西。亲爱的读者,我想知道你是否对这些想法感兴趣,以及咱们是否应该尝试围绕它构建更多的资源(博客、会谈等)。html
对我而言一切都始于这个问题。在个人书尾 ,我用结束章节讨论了如何充分利用你的测试,在单元、集成和端到端的测试中作出权衡,并对我没有真正理解的一些主题作出些模糊浅显的指示:端口与适配器(ports and adapters),六角架构(hexagonal architecture),函数式内核/命令式外壳(functional core imperative shell),干净架构(the clean architecture),等等。前端
从那以后,我和一个正在用 Python 积极实现这些模式的技术团队达成合做。其实,这些架构模式并非什么新鲜事,人们多年来一直在用 Java 和 C# 进行探索。只是我对它们很陌生……从我的经验而言,我在这里可能会有些深刻(我对你的反应很感兴趣),但它们对 Python 社区的大部分人可能也是个新鲜事?python
随着咱们的成熟,确实能感受到愈来愈多的曾经的小项目和大胆的初创公司变成了复杂的业务和(偷偷的说)商业软件,因此这些东西可能会变得愈来愈显著。android
我最初从测试的角度看待它,正确的架构真得能够帮助你充分利用测试,经过分离出一个业务逻辑核心(“领域模型”)并让其摆脱全部的架构依赖,它能彻底的用快速、灵活的单元测试进行测试。最终让人感受测试金字塔是一个可实现的目标,而非一个奢望。ios
Evans 的领域驱动设计(DDD) 和 Fowler 的架构模式都是很经典的书籍,任何对这些感兴趣的人都应该阅读。但若是你像我同样,费力阅读那些 public static void main AbstractFactoryManager之类的东西实在让人有点烦。也许一些更轻量级的、Python 化的介绍能让人感受更加合理,少点云里雾里?git
Made 的首席架构师,尊敬的 Bob 先生,就咱们如今讨论的问题写过一个分为四部分的博客系列。我开始时特别喜欢阅读它。这系列是 DDD 基本概念、端口与适配器/依赖倒置、和某种程度上的事件驱动架构的快速使用介绍。都是 Python 适用。(触发警告:Type Hints)。github
在 io.made.com 上还有不少,但以上四篇为主要内容。咱们但愿获得一些关于它们的反馈,哪些被阐述到了,哪些须要进一步解释,等等。shell
另:一个去年圣诞节及时发布的的书,Leonardo Giordani 的 Python 干净架构(Clean Architectures in Python)。这本书是两本书合二为一,第一部分是 TDD 的介绍,但第二部分有四章介绍了与我在这里讨论的相似的模式。后端
我也很喜欢一年前 David Seddon 的一个演讲 岩石河:如何构建你的 Django 单体应用(monolith),显示出其余人开始思考咱们如何超越基本的 Django 模型/视图/模板架构。架构
在 Valentin Ignatev 的 DDD 资源列表还有更多的内容,这是我最近在推特上看到的。彷佛不少人对此都有想法。
Bob已经获得一些对他博客帖子很好的反馈,Leonardo 也有了一些很不错的初始销量,因此我感受到 Python 社区的一些兴趣,可是我想对它进行一个理性考察。
我很乐意听到你的意见。文末评论开放,或者你也能够在推特上给我留言@hjwp。
若是发现译文存在错误或其余须要改进的地方,欢迎到 掘金翻译计划 对译文进行修改并 PR,也可得到相应奖励积分。文章开头的 本文永久连接 即为本文在 GitHub 上的 MarkDown 连接。
掘金翻译计划 是一个翻译优质互联网技术文章的社区,文章来源为 掘金 上的英文分享文章。内容覆盖 Android、iOS、前端、后端、区块链、产品、设计、人工智能等领域,想要查看更多优质译文请持续关注 掘金翻译计划、官方微博、知乎专栏。