Architekturmuster in Python
280 Seiten
German
PDF
4.5

Architekturmuster in Python

Architekturmuster in Python

Autor:

Jahr:

Zusammenfassung:

Einleitung

Das Buch „Architecture Patterns with Python“ (im Deutschen: „Architekturmuster in Python“) von Harry Percival und Bob Gregory erschien im Jahr 2020 und zog sofort die Aufmerksamkeit der Python-Entwickler-Community auf sich. Es ist kein weiteres Nachschlagewerk zu Syntax oder Bibliotheken – es ist ein tiefer Einblick in die Prinzipien des Aufbaus komplexer, wartbarer und testbarer Anwendungen in Python. Im Gegensatz zu vielen Architekturbüchern, die für Java oder C# geschrieben wurden, passt dieses Werk die Ideen von Domain-Driven Design (DDD), CQRS und Event Sourcing an die Realitäten des Python-Ökosystems an.

Das Buch mit etwa 280 Seiten richtet sich an erfahrene Entwickler, die bereits auf die Probleme des „Big Ball of Mud“ gestoßen sind und lernen möchten, Systeme zu bauen, die gegenüber Änderungen widerstandsfähig sind. Die Autoren sind anerkannte Experten: Harry Percival ist bekannt für seine Arbeit an Test-Driven Web Development with Python, und Bob Gregory ist ein Architekt mit langjähriger Erfahrung im Finanzsektor.

Worum geht es in diesem Buch

Das Buch entfaltet konsequent die Konzepte der Architektur, beginnend mit grundlegenden Prinzipien bis hin zu fortgeschrittenen Mustern. Der Schwerpunkt liegt auf Domain-Driven Design (DDD) und seiner Umsetzung in Python. Die Autoren listen nicht nur Muster auf, sondern zeigen, wie sie reale Probleme lösen: wie man Geschäftslogik von der Infrastruktur trennt, wie man Code testbar macht und wie man Komplexität verwaltet.

Die wichtigsten Themen des Buches:

  • Schichtenarchitektur – Aufteilung der Verantwortlichkeiten zwischen Domäne, Diensten und Infrastruktur.
  • Repository-Muster – Abstraktion über dem Datenspeicher zur Isolierung der Geschäftslogik.
  • Unit of Work – Verwaltung von Transaktionen und Konsistenz.
  • Aggregate – Konsistenzgrenzen in DDD.
  • Domain Events – reaktive Architektur und lose Kopplung.
  • CQRS (Command Query Responsibility Segregation) – Trennung von Befehlen und Abfragen.
  • Event Sourcing – Speicherung des Zustands als eine Abfolge von Ereignissen.
  • Dependency Injection – Abhängigkeitsverwaltung ohne Frameworks.

Jedes Muster wird am Beispiel eines fiktiven, aber realistischen Projekts veranschaulicht – eines Systems zur Lagerverwaltung. Dies ermöglicht es dem Leser zu sehen, wie Entscheidungen im Kontext und nicht in der Abstraktion getroffen werden.

Für wen ist dieses Buch geeignet

Das Buch richtet sich an Python-Entwickler mittleren und fortgeschrittenen Niveaus, die bereits Erfahrung in der Erstellung von Webanwendungen (z. B. mit Django oder Flask) haben und auf die nächste Stufe – das Architekturdesign – aufsteigen möchten. Es wird nützlich sein für:

  • Entwickler, die auf schwer wartbaren Code stoßen und lernen möchten, ihn zu refaktorisieren.
  • Teamleiter und Architekten, die nach praktischen Beispielen für die Anwendung von DDD in Python suchen.
  • Diejenigen, die CQRS und Event Sourcing ohne Bindung an Java oder .NET verstehen möchten.
  • Entwickler, die Tests schätzen und Systeme bauen möchten, bei denen Tests keine Last, sondern ein Werkzeug sind.

Anfängern könnte das Buch schwierig erscheinen: Es werden sichere Kenntnisse in Python, OOP und grundlegenden Entwurfsmustern (z. B. aus GoF) vorausgesetzt.

Was der Leser lernen wird

Nach der Lektüre des Buches wird der Leser in der Lage sein:

  • Ein System zu entwerfen, bei dem die Geschäftslogik nicht von Frameworks und Datenbanken abhängt.
  • Die Muster Repository und Unit of Work zur Isolierung der Domäne anzuwenden.
  • Eine Architektur auf der Grundlage von Domain Events aufzubauen.
  • CQRS und Event Sourcing in Python mit einfachen Werkzeugen zu implementieren.
  • Tests zu schreiben, die Geschäftsregeln und nicht Implementierungsdetails überprüfen.
  • Legacy-Code zu refaktorisieren und dabei schrittweise Architekturmuster einzuführen.
  • Zu verstehen, wann und warum komplexe Architekturentscheidungen notwendig sind und wann ein einfacher Ansatz ausreicht.

Jedes Kapitel enthält

Empfehlungen