Ocena:

Książka jest wnikliwym przewodnikiem dla średnio zaawansowanych programistów Pythona, koncentrującym się na inżynierii oprogramowania, obejmującym podstawowe koncepcje, takie jak projektowanie oparte na domenie i programowanie oparte na testach. Kładzie nacisk na praktyczne doświadczenie i praktyczne zastosowanie wzorców architektonicznych, pomimo pewnych krytycznych uwag dotyczących jakości prezentacji i stylu pisania.
Zalety:⬤ Praktyczne podejście do inżynierii oprogramowania i architektury
⬤ Obejmuje tematy często pomijane w innych książkach o Pythonie
⬤ Zapewnia jasne zalety i wady wyborów projektowych
⬤ # # Wciągający i przystępny styl pisania
⬤ Szczegółowe wyjaśnienia wzorców architektonicznych z praktycznymi przykładami.
⬤ Niektórzy czytelnicy uznali złożoność i trudność treści za wyzwanie
⬤ # Jakość drukowanych diagramów w fizycznych egzemplarzach jest słaba
⬤ # Niektórzy uważają, że tekst jest rozdęty lub kwiecisty
⬤ # # Nie nadaje się dla zupełnie początkujących
⬤ # # Zmiany organizacyjne w rozdziałach mogą powodować zamieszanie.
(na podstawie 50 opinii czytelników)
Architecture Patterns with Python: Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices
Wraz ze wzrostem popularności języka Python, projekty stają się coraz większe i bardziej złożone. Wielu programistów Pythona interesuje się wysokopoziomowymi wzorcami projektowania oprogramowania, takimi jak architektura heksagonalna/czysta, architektura sterowana zdarzeniami i wzorce strategiczne zalecane przez projektowanie sterowane domeną (DDD). Jednak przełożenie tych wzorców na język Python nie zawsze jest proste.
W tym praktycznym przewodniku Harry Percival i Bob Gregory z MADE.com przedstawiają sprawdzone architektoniczne wzorce projektowe, które pomagają programistom Pythona zarządzać złożonością aplikacji - i uzyskać jak największą wartość z ich zestawów testów.
Każdy wzorzec jest zilustrowany konkretnymi przykładami w pięknym, idiomatycznym Pythonie, unikając niektórych błędów składni Java i C#. Wzorce obejmują:
⬤ Inwersja zależności i jej powiązania z portami i adapterami (architektura heksagonalna/czysta)
⬤ Rozróżnienie pomiędzy Entities, Value Objects i Aggregates w projektowaniu opartym na domenie.
⬤ Wzorce repozytorium i jednostki pracy dla trwałego przechowywania.
⬤ Zdarzenia, polecenia i magistrala komunikatów.
⬤ Rozdzielenie odpowiedzialności za polecenia i zapytania (CQRS)
⬤ Architektura sterowana zdarzeniami i reaktywne mikrousługi.