- 原文地址: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、前端、後端、區塊鏈、產品、設計、人工智能等領域,想要查看更多優質譯文請持續關注 掘金翻譯計劃、官方微博、知乎專欄。