架構模式: 使用Python

Architecture Patterns with Python

9
680612
進行測試驅動開發、領域驅動設計及製作事件驅動微服務

「這是一本社群期待已久的書籍,讓大家看到現代app架構的核心在Python裡面究竟長怎樣!Harry與Bob展示了依賴反轉原則在這種時尚、動...

內容簡介

進行測試驅動開發、領域驅動設計及製作事件驅動微服務

「這是一本社群期待已久的書籍,讓大家看到現代app架構的核心在Python裡面究竟長怎樣!Harry與Bob展示了依賴反轉原則在這種時尚、動態的語言中有多麼優雅。」
—Brandon Rhodes
Python-patterns.guide作者

「截至目前為止,坊間幾乎沒有介紹使用Python編寫可維護大型系統的Python原生教材。本書展示Python可以遊刃有餘地進行重要的軟體開發。」
—Hynek Schlawack
Python忠實支持者、部落客及演說者

隨著Python越來越流行,專案的規模也越來越大、越來越複雜,讓許多Python開發者對高階軟體設計模式產生濃厚的興趣,例如六邊形/整潔架構、事件驅動架構,和以領域驅動設計(DDD)制定的策略模式,但是將這些模式轉換成Python不是那麼容易。

透過這本實戰指南,來自MADE.com的Harry Percival與Bob Gregory介紹一些行之有效的架構設計模式,協助Python開發者管理app的複雜性,並且充分利用測試套件。

作者透過具體的範例和優美、典型的Python來介紹各種模型,避免Java與C#語法的冗長表述。

本書介紹的模式包括:
‧依賴反轉,以及它和port及adapter(六邊形/整潔架構)的關係
‧領域驅動設計與Entity、Value Object及Aggregate的區別
‧持久保存機制的Repository和Unit of Work模式
‧事件、指令和訊息匯流排
‧命令查詢責任隔離(CQRS)模式
‧事件驅動架構與反應式微服務

Harry Percival 在2009年就開始使用Python了,他也是TDD和XP的粉絲。他是O’Reilly書籍《測試驅動開發|使用Python》的作者,此書的副標題更是聞名—服從測試羊。

Bob Gregory 使用領域驅動設計來建構事件驅動系統已有十多年之久了,他曾經用過的語言包括C#、F#、Python與TypeScript。

產品目錄

前言

引言



【第一部分 建立架構來支援領域模型的建構】

第一章 建立領域模型

第二章 Repository 模式

第三章 簡短插曲:關於耦合與抽象

第四章 我們的第一個用例:Flask API 與服務層

第五章 高速檔與低速檔的 TDD

第六章 Unit of Work 模式

第七章 Aggregate 與一致性界限





【第二部分 事件驅動架構】

第八章 事件與 Message Bus

第九章 搭著 Message Bus 進城

第十章 指令與指令處理式

第十一章 事件驅動架構:使用事件來整合微服務

第十二章 指令查詢責任隔離(CQRS)

第十三章 依賴注入(與啟動)



結語

附錄 A 總結圖表

附錄 B 模板專案結構

附錄 C 換掉基礎設施:用 CSV 做每一件事

附錄 D Repository 與 Unit of Work 模式,使用 Django

附錄 E 驗證



索引

規格

誠品貨碼 / 2681909913004
ISBN13 / 9789865025960
ISBN10 / 9865025965
EAN貨碼 / 9789865025960
頁數 / 312
注音版 / 否
裝訂 / P:平裝
語言 / 1:中文/繁體
尺寸 / 23X18.5CM
級別 / N:無
重量(g) / 889

退貨說明

退貨須知:

  1. 依照消費者保護法的規定,您享有商品貨到次日起七天猶豫期(含例假日)的權益(請注意!猶豫期非試用期),辦理退貨之商品必須是全新狀態(不得有刮傷、破損、受潮)且需完整(包含全部商品、配件、原廠內外包裝、贈品及所有附隨文件或資料的完整性等)。
  2. 請您以送貨廠商使用之包裝紙箱將退貨商品包裝妥當,若原紙箱已遺失,請另使用其他紙箱包覆於商品原廠包裝之外,切勿直接於原廠包裝上黏貼紙張或書寫文字。若原廠包裝損毀將可能被認定為已逾越檢查商品之必要程度,本公司得依毀損程度扣除回復原狀必要費用(整新費)後退費;請您先確認商品正確、外觀可接受,再行拆封,以免影響您的權利;若為產品瑕疵,本公司接受退貨。

依「通訊交易解除權合理例外情事適用準則」,下列商品不適用七日猶豫期,除產品本身有瑕疵外,不接受退貨:

  1. 易於腐敗、保存期限較短或解約時即將逾期。(如:生鮮蔬果、乳製品、冷凍冷藏食材、蛋糕)
  2. 依消費者要求所為之客製化給付。(如:客製印章、鋼筆刻字)
  3. 報紙、期刊或雜誌。
  4. 經消費者拆封之影音商品或電腦軟體。
  5. 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,經消費者事先同意始提供。(如:電子書)
  6. 已拆封之個人衛生用品。(如:內衣褲、襪類、褲襪、刮鬍刀、除毛刀等貼身用品)
  7. 國際航空客運服務。

若您退貨時有下列情形,可能被認定已逾越檢查商品之必要程度而須負擔為回復原狀必要費用(整新費),或影響您的退貨權利,請您在拆封前決定是否要退貨:

  1. 以數位或電磁紀錄形式儲存或著作權相關之商品(包含但不限於CD、VCD、DVD、電腦軟體等) 包裝已拆封者(除運送用之包裝以外)。
  2. 耗材(包含但不限於墨水匣、碳粉匣、紙張、筆類墨水、清潔劑補充包等)之商品包裝已拆封者(除運送用之包裝以外)。
  3. 衣飾鞋類/寢具/織品(包含但不限於衣褲、鞋子、襪子、泳裝、床單、被套、填充玩具)或之商品缺件(含購買商品、附件、內外包裝、贈品等)或經剪標或下水或商品有不可回復之髒污或磨損痕跡。
  4. 食品、美容/保養用品、內衣褲等消耗性或個人衛生用品、商品銷售頁面上特別載明之商品已拆封者(除運送用之包裝外一切包裝、包括但不限於瓶蓋、封口、封膜等接觸商品內容之包裝部分)或已非全新狀態(外觀有刮傷、破損、受潮等)與包裝不完整(缺少商品、附件、原廠外盒、保護袋、配件紙箱、保麗龍、隨貨文件、贈品等)。
  5. 家電、3C、畫作、電子閱讀器等商品,除商品本身有瑕疵外,退回之商品已拆封(除運送用之包裝外一切包裝、包括但不限於封膜等接觸商品內容之包裝部分、移除封條、拆除吊牌、拆除貼膠或標籤等情形)或已非全新狀態(外觀有刮傷、破損、受潮等)與包裝不完整(缺少商品、附件、原廠外盒、保護袋、配件紙箱、保麗龍、隨貨文件、贈品等)。
  6. 退貨程序請參閱【客服專區→常見問題→誠品線上退貨退款】之說明。
付款/配送