Ulteriori informazioni
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
Sommario
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
Info autore
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.