Ein sauberes, nachhaltiges und erweiterbares Softwaredesign ist die Grundlage professioneller Softwareentwicklung ob Sie bereits als Softwareentwickler oder -entwicklerin tätig sind, oder sich noch in Ausbildung oder Studium befinden. In diesem umfassenden Handbuch vermittelt Kristian Köhler praxisnah und modern, wie sich die klassischen Patterns auf der Code-Ebene mit Ansätzen auf Architektur- bzw. Strukturebene verbinden lassen. So erfahren Sie alles über gutes Softwaredesign, wie es in der modernen Softwareentwicklung tatsächlich angewendet wird. Ergänzt wird das Buch durch diverse Code-Beispiele, Best Practices und typische Kontexte, die es als Lehr- und Nachschlagewerk unabdingbar machen. Aus dem Inhalt: Clean Code & Clean Architecture Domain Driven Design Microservice-Pattern Entwurfsmusterbeschreibungen Prinzipien für gutes Softwaredesign Dokumentation Erzeugungs-, Struktur-, Verhaltens-, Architektur- und Datenmuster Anwendungsorganisation Systemarchitekturmuster Cloud-native Patterns
Mit Diagrammen, Praxistipps und Codebeispielen
Autorentext
Kristian Köhler ist freiberuflicher Software-Architekt, Berater, Trainer, Entwickler und Consultant. Er berät seine Kunden rund um alle Fragen der Software-Architektur. Seine mehrtätigen Seminare und Praxisworkshops zur Programmiersprache Go sind bei Programmierern heiß begehrt.
Inhalt
Materialien zum Buch ... 11 1. Einleitung ... 13 1.1 ... Programmierparadigmen ... 16 1.2 ... Was sind Design-Patterns und wie sind sie entstanden? ... 26 1.3 ... Was sind Softwarearchitektur und Softwaredesign? ... 31 1.4 ... Die Evolution in der Softwareentwicklung und -architektur ... 38 2. Prinzipien für gutes Softwaredesign ... 65 2.1 ... Grundkonzepte der objektorientierten Programmierung ... 66 2.2 ... Clean-Code-Prinzipien ... 78 2.3 ... Die SOLID-Prinzipien ... 114 2.4 ... Information Hiding ... 138 2.5 ... Inversion of Control und Dependency Injection ... 139 2.6 ... Separation of Concerns und Aspektorientierung ... 141 2.7 ... Mit Unit-Tests die Qualität sicherstellen ... 145 3. Sourcecode und Dokumentation der Softwareentwicklung ... 151 3.1 ... Kommentare im Sourcecode ... 152 3.2 ... Dokumentation der Softwarearchitektur ... 166 3.3 ... UML zur Darstellung von Software ... 179 3.4 ... C4 Model zur Darstellung von Softwarearchitektur ... 190 3.5 ... Doc-as-Code ... 199 4. Softwaremuster ... 207 4.1 ... Factory-Method/Fabrikmethode ... 208 4.2 ... Builder/Erbauer ... 217 4.3 ... Strategy/Strategie ... 227 4.4 ... Chain of Responsibility/Zuständigkeitskette ... 235 4.5 ... Command/Kommando ... 244 4.6 ... Observer/Beobachter ... 256 4.7 ... Singleton/Einzelstück ... 266 4.8 ... Adapter/Wrapper ... 274 4.9 ... Iterator ... 284 4.10 ... Composite/Kompositum ... 292 4.11 ... Der Begriff der Anti-Patterns ... 300 5. Softwarearchitektur, -stile und -Patterns ... 307 5.1 ... Die Rolle des Softwarearchitekten ... 308 5.2 ... Softwarearchitekturstile ... 311 5.3 ... Stile zur Anwendungsorganisation und Codestruktur ... 330 5.4 ... Patterns für die Unterstützung der Architekturstile ... 345 6. Kommunikation zwischen Services ... 369 6.1 ... Stile der Anwendungskommunikation ... 371 6.2 ... Resilience Patterns ... 379 6.3 ... Messaging Patterns ... 413 6.4 ... Patterns zur Schnittstellenversionierung ... 438 7. Patterns und Konzepte für verteilte Anwendungen ... 449 7.1 ... Konsistenz ... 450 7.2 ... Das CAP-Theorem ... 451 7.3 ... Das PACELC-Theorem ... 453 7.4 ... Eventual Consistency ... 454 7.5 ... Stateless Architecture Pattern ... 457 7.6 ... Database per Service Pattern ... 463 7.7 ... Optimistic Locking Pattern ... 466 7.8 ... Saga Pattern -- das Verteilte-Transaktionen-Pattern ... 475 7.9 ... Transactional Outbox Pattern ... 480 7.10 ... Event Sourcing Pattern ... 486 7.11 ... Command Query Responsibility Segregation Pattern ... 492 7.12 ... Distributed Tracing Pattern ... 498 Index ... 509
Mit Diagrammen, Praxistipps und Codebeispielen
Autorentext
Kristian Köhler ist freiberuflicher Software-Architekt, Berater, Trainer, Entwickler und Consultant. Er berät seine Kunden rund um alle Fragen der Software-Architektur. Seine mehrtätigen Seminare und Praxisworkshops zur Programmiersprache Go sind bei Programmierern heiß begehrt.
Inhalt
Materialien zum Buch ... 11 1. Einleitung ... 13 1.1 ... Programmierparadigmen ... 16 1.2 ... Was sind Design-Patterns und wie sind sie entstanden? ... 26 1.3 ... Was sind Softwarearchitektur und Softwaredesign? ... 31 1.4 ... Die Evolution in der Softwareentwicklung und -architektur ... 38 2. Prinzipien für gutes Softwaredesign ... 65 2.1 ... Grundkonzepte der objektorientierten Programmierung ... 66 2.2 ... Clean-Code-Prinzipien ... 78 2.3 ... Die SOLID-Prinzipien ... 114 2.4 ... Information Hiding ... 138 2.5 ... Inversion of Control und Dependency Injection ... 139 2.6 ... Separation of Concerns und Aspektorientierung ... 141 2.7 ... Mit Unit-Tests die Qualität sicherstellen ... 145 3. Sourcecode und Dokumentation der Softwareentwicklung ... 151 3.1 ... Kommentare im Sourcecode ... 152 3.2 ... Dokumentation der Softwarearchitektur ... 166 3.3 ... UML zur Darstellung von Software ... 179 3.4 ... C4 Model zur Darstellung von Softwarearchitektur ... 190 3.5 ... Doc-as-Code ... 199 4. Softwaremuster ... 207 4.1 ... Factory-Method/Fabrikmethode ... 208 4.2 ... Builder/Erbauer ... 217 4.3 ... Strategy/Strategie ... 227 4.4 ... Chain of Responsibility/Zuständigkeitskette ... 235 4.5 ... Command/Kommando ... 244 4.6 ... Observer/Beobachter ... 256 4.7 ... Singleton/Einzelstück ... 266 4.8 ... Adapter/Wrapper ... 274 4.9 ... Iterator ... 284 4.10 ... Composite/Kompositum ... 292 4.11 ... Der Begriff der Anti-Patterns ... 300 5. Softwarearchitektur, -stile und -Patterns ... 307 5.1 ... Die Rolle des Softwarearchitekten ... 308 5.2 ... Softwarearchitekturstile ... 311 5.3 ... Stile zur Anwendungsorganisation und Codestruktur ... 330 5.4 ... Patterns für die Unterstützung der Architekturstile ... 345 6. Kommunikation zwischen Services ... 369 6.1 ... Stile der Anwendungskommunikation ... 371 6.2 ... Resilience Patterns ... 379 6.3 ... Messaging Patterns ... 413 6.4 ... Patterns zur Schnittstellenversionierung ... 438 7. Patterns und Konzepte für verteilte Anwendungen ... 449 7.1 ... Konsistenz ... 450 7.2 ... Das CAP-Theorem ... 451 7.3 ... Das PACELC-Theorem ... 453 7.4 ... Eventual Consistency ... 454 7.5 ... Stateless Architecture Pattern ... 457 7.6 ... Database per Service Pattern ... 463 7.7 ... Optimistic Locking Pattern ... 466 7.8 ... Saga Pattern -- das Verteilte-Transaktionen-Pattern ... 475 7.9 ... Transactional Outbox Pattern ... 480 7.10 ... Event Sourcing Pattern ... 486 7.11 ... Command Query Responsibility Segregation Pattern ... 492 7.12 ... Distributed Tracing Pattern ... 498 Index ... 509
Titel
Softwaredesign und Entwurfsmuster
Untertitel
Das umfassende Handbuch
Autor
EAN
9783367102617
Format
E-Book (epub)
Hersteller
Veröffentlichung
09.05.2025
Digitaler Kopierschutz
frei
Dateigrösse
9 MB
Anzahl Seiten
517
Lesemotiv
Unerwartete Verzögerung
Ups, ein Fehler ist aufgetreten. Bitte versuchen Sie es später noch einmal.