Architecture Patterns with Python: Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices
暫譯: 使用 Python 的架構模式:啟用測試驅動開發、領域驅動設計與事件驅動微服務

Percival, Harry, Gregory, Bob

買這商品的人也買了...

相關主題

商品描述

As Python continues to grow in popularity, projects are becoming larger and more complex. Many Python developers are now taking an interest in high-level software architecture patterns such as hexagonal/clean architecture, event-driven architecture, and strategic patterns prescribed by domain-driven design (DDD). But translating those patterns into Python isn't always straightforward.

With this practical guide, Harry Percival and Bob Gregory from MADE.com introduce proven architectural design patterns to help Python developers manage application complexity. Each pattern is illustrated with concrete examples in idiomatic Python that explain how to avoid some of the unnecessary verbosity of Java and C# syntax. You'll learn how to implement each of these patterns in a Pythonic way.

Architectural design patterns include:

  • Dependency inversion, and its links to ports and adapters (hexagonal/clean architecture)
  • Domain-driven design's distinction between entities, value objects, and aggregates
  • Repository and Unit of Work patterns for persistent storage
  • Events, commands, and the message bus
  • Command Query Responsibility Segregation (CQRS)
  • Event-driven architecture and reactive microservices

商品描述(中文翻譯)

隨著 Python 的受歡迎程度不斷上升,專案變得越來越大且複雜。許多 Python 開發者現在對高階軟體架構模式產生興趣,例如六邊形架構(hexagonal architecture)/乾淨架構(clean architecture)、事件驅動架構(event-driven architecture)以及由領域驅動設計(Domain-Driven Design, DDD)所規範的策略模式。然而,將這些模式轉換為 Python 並不總是那麼簡單。

在這本實用指南中,來自 MADE.com 的 Harry Percival 和 Bob Gregory 介紹了經過驗證的架構設計模式,以幫助 Python 開發者管理應用程式的複雜性。每個模式都用具體的 Python 範例進行說明,解釋如何避免 Java 和 C# 語法中一些不必要的冗長。您將學會如何以 Pythonic 的方式實現這些模式。

架構設計模式包括:
- 依賴反轉(Dependency inversion)及其與端口和適配器(ports and adapters)的關聯(六邊形架構/乾淨架構)
- 領域驅動設計對實體(entities)、值物件(value objects)和聚合(aggregates)的區分
- 用於持久儲存的倉儲(Repository)和工作單位(Unit of Work)模式
- 事件(Events)、命令(commands)和消息總線(message bus)
- 命令查詢責任分離(Command Query Responsibility Segregation, CQRS)
- 事件驅動架構和反應式微服務(reactive microservices)

作者簡介

After an idyllic childhood spent playing with BASIC on French 8-bit computers like the Thomson T-07 whose keys go "boop" when you press them, Harry Percival spent a few years being deeply unhappy as a management consultant. Soon he rediscovered his true geek nature, and was lucky enough to fall in with a bunch of XP fanatics, working on the pioneering but sadly defunct Resolver One spreadsheet. He worked at PythonAnywhere LLP, spreading the gospel of TDD world-wide at talks, workshops and conferences. He is now with MADE.COM.

Bob Gregory is a UK-based software architect with MADE.COM. He has been building event driven systems with domain-driven design for more than a decade.

作者簡介(中文翻譯)

在法國的8位元電腦上,如按鍵發出「boop」聲的Thomson T-07,哈利·珀西瓦爾(Harry Percival)度過了一段理想的童年,沉浸於BASIC的遊戲中。隨後,他作為管理顧問的幾年生活讓他感到非常不快樂。很快,他重新發現了自己真正的極客本性,並幸運地與一群極端的XP愛好者結識,參與了開創性的但可惜已經停產的Resolver One電子表格的開發。他曾在PythonAnywhere LLP工作,透過演講、工作坊和會議在全球推廣測試驅動開發(TDD)的理念。現在,他在MADE.COM工作。

鮑勃·格雷戈里(Bob Gregory)是位於英國的MADE.COM軟體架構師。他已經使用領域驅動設計(domain-driven design)構建事件驅動系統超過十年。