Architektura aplikacji w Pythonie. TDD, DDD i rozwój mikrousług reaktywnych
Python zyskuje coraz większą popularność i jest wykorzystywany do tworzenia bardzo różnych aplikacji, jednak projektowanie dużych, niezawodnych systemów w tym języku bywa wyzwaniem. Rozwijanie złożonych systemów o wysokiej jakości wymaga zastosowania odpowiedniej architektury. Trudno w Pythonie stosować takie wysokopoziomowe wzorce projektowe jak architektura sześciokątna, architektura oparta na zdarzeniach czy wzorce zalecane dla projektowania dziedzinowego (DDD). Sytuacji nie poprawia również to, że klasyczna literatura dotycząca metod zarządzania złożonością aplikacji zawiera przykłady kodu napisanego w Javie lub C#. Programiści Pythona często więc uznają takie książki za mało przydatne w swojej pracy.
Ten praktyczny przewodnik przybliży projektantom pracującym w Pythonie sprawdzone wzorce architektury, które ułatwiają zapanowanie nad złożonością aplikacji i pozwalają najlepiej wykorzystać zestawy testów. Prezentację poszczególnych wzorców architektury oparto na przykładowej, stopniowo rozbudowywanej aplikacji. Podejście to pozwoliło na pokazanie zalet metodyki TDD. Z kolei w rozdziałach poświęconych modelowaniu dziedzinowemu zwrócono uwagę na unikanie jakichkolwiek zależności zewnętrznych przy równoczesnym zapewnieniu integralności danych. Wśród ciekawszych koncepcji warto wskazać wykorzystywanie zdarzeń w roli wzorca integracji usług w architekturze mikrousługowej. Niejako przy okazji zaprezentowano praktyczne strony stosowania kilku frameworków i technologii Pythona, między innymi Flask, SQLAlchemy, pytest, Docker i Redis.
W tej książce między innymi:
- modelowanie dziedzinowe i stosowanie wzorców DDD
- jednostki, obiekty wartości i agregaty w architekturze domenowej
- tworzenie modeli bez zbędnych zależności
- zdarzenia, polecenia i szyna wiadomości
- wzorce architektury zdarzeniowej i mikrousług reaktywnych
Architektura nowoczesnych aplikacji w Pythonie: rozwiązania dla poważnych systemów!
O autorze
Harry Percival niegdyś był konsultantem specjalizującym się w zarządzaniu, później brał udział w pracach nad arkuszem kalkulacyjnym Resolver One. Pracował w PythonAnywhere LLP i promował metodykę TDD na konferencjach, warsztatach i innych wydarzeniach na całym świecie. Teraz pracuje w MADE.com.
Szukasz więcej propozycji? Zobacz nasze tytuły z kategorii informatyka lub z serii O'Reilly
Czy książka jest odpowiednia dla programistów znających tylko podstawy Pythona?
Pozycja ta jest skierowana do średniozaawansowanych i zaawansowanych programistów, którzy chcą zarządzać złożonością dużych systemów. Lektura wymaga solidnej znajomości składni języka Python, ponieważ skupia się na zaawansowanych wzorcach projektowych, a nie na nauce programowania od podstaw. Czytelnik dowie się, jak implementować wzorce DDD i TDD, co jest kluczowe przy budowaniu skalowalnych aplikacji biznesowych. Osoby początkujące mogą poczuć się przytłoczone tempem wprowadzania skomplikowanych koncepcji architektonicznych.
Jakie konkretne technologie i frameworki są omawiane w tym podręczniku?
Autorzy prezentują praktyczne zastosowanie frameworka Flask, biblioteki SQLAlchemy oraz narzędzia pytest w kontekście profesjonalnej architektury. W treści znajdziesz również instrukcje dotyczące konteneryzacji za pomocą Dockera oraz wykorzystania bazy Redis do obsługi wiadomości. Każda z tych technologii służy jako narzędzie do demonstracji wzorców takich jak szyna wiadomości czy agregaty domenowe. Dzięki temu nauczysz się łączyć popularne biblioteki w spójny, reaktywny ekosystem mikrousługowy.
Na czym polega praktyczne podejście autorów do nauki wzorców projektowych?
Nauka opiera się na stopniowej budowie i refaktoryzacji konkretnej aplikacji, co pozwala zobaczyć ewolucję kodu w czasie rzeczywistym. Zamiast suchej teorii, otrzymujesz przykłady implementacji architektury sześciokątnej i sterowanej zdarzeniami bezpośrednio w kodzie Pythona. Takie podejście ułatwia zrozumienie, kiedy i dlaczego warto zastosować dany wzorzec, aby uniknąć długu technicznego. Jest to idealne rozwiązanie dla inżynierów, którzy najlepiej uczą się poprzez rozwiązywanie realnych problemów projektowych.
Czego konkretnie nauczę się z książki "Architektura aplikacji w Pythonie"?
Książka "Architektura aplikacji w Pythonie" uczy przenoszenia sprawdzonych wzorców z Javy i C# bezpośrednio do ekosystemu Pythona. Poznasz techniki modelowania dziedzinowego (DDD), które pozwalają oddzielić logikę biznesową od szczegółów infrastrukturalnych, takich jak bazy danych. Dowiesz się również, jak projektować mikrousługi reaktywne korzystające z mechanizmów zdarzeń i poleceń do komunikacji. To kompendium wiedzy o tworzeniu systemów, które są łatwe w testowaniu i późniejszym utrzymaniu.
Czy ta książka koncentruje się wyłącznie na teorii Domain-Driven Design?
Publikacja kładzie silny nacisk na techniczne aspekty implementacji, jednak nie jest to podręcznik dla osób szukających wyłącznie gotowych fragmentów kodu. Choć DDD jest kluczowym elementem, autorzy równoważą go praktykami TDD, pokazując, że testy są fundamentem bezpiecznej zmiany architektury. Należy pamiętać, że książka nie wyczerpuje wszystkich aspektów DevOps czy administracji serwerami, skupiając się głównie na strukturze samej aplikacji. Jest to wybór dla osób gotowych na głęboką analizę logiczną projektu, a nie szybkie wdrożenie prostego skryptu.
