Sie sind hier
E-Book

Grundlagen des modularen Softwareentwurfs

Der Bau langlebiger Mikro- und Makro-Architekturen wie Microservices und SOA 2.0

AutorHerbert Dowalil
VerlagCarl Hanser Fachbuchverlag
Erscheinungsjahr2018
Seitenanzahl227 Seiten
ISBN9783446456006
FormatPDF/ePUB
KopierschutzWasserzeichen/DRM
GerätePC/MAC/eReader/Tablet
Preis26,99 EUR
Hier geht es um das Geheimnis langlebiger Softwarearchitektur - Zerlegung in effiziente, weil modulare Strukturen
Die klassischen Muster der Softwarearchitektur versagen, wenn die IT-Landschaft zu komplex wird. Zurzeit werden neue Prinzipien und Muster entwickelt, welche genau diese Komplexität in geordnete Bahnen lenken sollen. Dieses Buch handelt exakt davon!
Über Softwarearchitektur
Erfahren Sie Grundlegendes zu verschiedenen Definitionen des Themas Softwarearchitektur, und wie diese in Wechselwirkung zur Organisation eines Unternehmens stehen.
Modulares Softwaredesign
Lernen Sie die Prinzipien kennen, welche langlebige Softwaredesigns auszeichnen. Durch den Einsatz entsprechender Pattern entsteht eine gut wartbare Codebasis, die dazu in der Lage ist, langfristig weiter zu wachsen.
Muster langlebiger Enterprise SOA
Die Königsdisziplin der Softwarearchitektur ist bestimmt der Entwurf besonders großer IT-Landschaften. Lesen Sie, wie sich die Muster gut strukturierten Codes auch auf die Strukturen einer Makro-Architektur anwenden lassen.

Herbert Dowalil ist seit vielen Jahren als Softwareentwickler, -architekt, Trainer und seit Kurzem auch als Autor tätig. Dabei beschäftigt er sich mit der Frage, wie man durch den Entwurf effizienter Strukturen langfristig Produktivität und Flexibilität sicherstellt. Sein Hauptaugenmerk gilt dabei einer der Schwachstellen der IT-Branche, nämlich modularen Enterprise- bzw. Makro-Architekturen.

Kaufen Sie hier:

Horizontale Tabs

Blick ins Buch
Inhaltsverzeichnis
Inhalt9
Vorwort15
Danksagung19
Der Autor21
1 Grundlagen23
1.1 Definition Architektur23
1.1.1 Strukturierung in Komponenten – Modularisierung24
1.1.2 Abläufe25
1.1.3 Anforderungen26
1.1.4 Technologien27
1.1.5 Operative Systeme27
1.2 Was Architektur definitiv NICHT ist28
1.3 Organisation29
1.4 Über Enterprise-Architektur (EA)33
1.5 Evolution35
1.5.1 Managed Evolution (Credit Suisse)36
1.5.2 Aim4237
1.5.3 Purer Pragmatismus38
1.6 Dokumentation38
1.6.1 Mikro-Architektur – Softwaredesign38
1.6.2 Makro-Architektur39
1.7 Digitale Transformation – Digitalisierung39
2 Prinzipien des Software-Entwurfs41
2.1 Keep it Simple and Stupid (KISS)41
2.2 Don’t Repeat Yourself (DRY)43
2.3 Information Hiding Principle43
2.4 Open Closed Principle46
2.5 Lose Kopplung47
2.5.1 Code Reuse48
2.5.2 Datenbankintegration – gemeinsames Datenmodell48
2.5.3 Datenbankintegration – selbe Datenbank, unterschiedliche Datenmodelle49
2.5.4 Synchroner Remote Procedure Call50
2.5.5 Datenreplikation50
2.5.6 Messaging50
2.5.7 Composite-UI51
2.6 Hohe Kohäsion52
2.7 Separation Of Concerns53
2.8 Hierarchischer Aufbau56
2.9 Zusammenfassung59
3 Mikro-Architektur – Softwaredesign61
3.1 SOLID62
3.1.1 Liskovsches Substitutionsprinzip62
3.1.2 Interface Segregation Principle64
3.1.3 Dependency Inversion Principle65
3.2 Dependency Injection66
3.3 Law of Demeter67
3.4 Composition over Inheritance68
3.5 Selbst-Dokumentation68
3.6 Design by Contract70
3.7 Design Pattern72
3.7.1 Decorator und Delegate (Structural)73
3.7.2 Adapter (Structural)74
3.7.3 Facade (Structural)75
3.7.4 Observer (Behavioral)76
3.7.5 Simple Factory (Creational)78
3.7.6 Factory Method (Creational)79
3.7.7 Abstract Factory (Creational)80
3.7.8 Builder (Creational)81
4 Domänengetriebener Entwurf – Domain Driven Design (DDD)85
4.1 Ubiquitous Language85
4.2 Aufteilung in Subdomänen86
4.3 Bounded Context86
4.4 Integration87
4.4.1 Das Problem mit dem Konformismus88
4.5 Upstream/Downstream-Beziehungen89
4.6 Context Map90
4.7 Beispiel90
4.8 Fazit92
5 Enterprise Application Integration Pattern (EAIP)95
5.1 Orchestrierung vs. Choreografie96
5.2 Das Prinzip der Dumb Pipes and Smart Endpoints96
5.3 Tooling98
5.3.1 Message Bus98
5.3.2 Message Broker99
5.3.3 Enterprise Service Bus (ESB)99
5.3.4 Business Process-Management-Systeme (BPMS)101
5.3.5 API-Gateways103
5.3.6 Service Discovery/Service Registration104
6 Makro-Architektur105
6.1 Antipattern106
6.1.1 Maximierung des Reuse106
6.1.2 Kanonisches Modell107
6.1.3 Service Versioning109
6.1.4 Zentraler Mediator – Enterprise Service Bus (ESB)110
6.2 Empfohlene Pattern113
6.2.1 Consumer Driven Contract Tests113
6.2.2 Robustness Principle (Tolerant Reader)113
6.2.3 Feature Toggles114
6.2.4 Circuit Breaker115
6.2.5 Bulkhead116
6.2.6 Adapter117
6.2.7 Backend for Frontend (BFF)118
6.2.8 Saga118
6.2.9 Pipes and Filters119
6.2.10 Correlation IDs120
6.2.11 Event Sourcing120
7 Verteilte Systeme – Distributed Systems123
7.1 Monolithen124
7.1.1 Keine Continuous Delivery möglich!?125
7.1.2 Automatische Erosion der Struktur!?126
7.1.3 Monolithische Architekturen skalieren nicht!?126
7.1.4 Es ist eine Frage von entweder/oder!?129
7.2 Idempotenz130
7.2.1 Idempotent Receiver Pattern130
7.3 Representational State Transfer – REST131
7.4 Konsistenz134
7.4.1 Datenbankintegration (Konsistent)136
7.4.2 Two Phase Commit (Konsistent)136
7.4.3 Ein großer Datenservice (Konsistent)136
7.4.4 Send at least once (Eventually Consistent)137
7.4.5 Orchestrierung (Eventually Consistent)139
7.4.6 Choreografie (Nicht automatisch Konsistent)140
7.4.7 Event Sourcing und CQRS (Konsistent)141
7.4.8 Zentraler Mediator Antipattern – Enterprise Service Bus (Eventually Consistent)141
8 Service-orientierte Architektur (SOA)143
8.1 Service-Antipattern144
8.1.1 Service-Kategorien144
8.1.2 Webservice vs. Service145
8.1.3 API im Vordergrund145
8.1.4 SOA 1.0145
8.2 Microservices150
8.2.1 Monolith First154
8.2.2 Hybride154
8.3 Nanoservices155
8.4 Modulare SOA – Right Sized Services – SOA 2.0156
8.5 Self Contained Systems (SCS)157
8.6 Integration kommerzieller Systeme (Commercial off the Shelf – COTS)158
9 Metriken161
9.1 Unit-Test-Abdeckung und das Legacy-Code-Dilemma162
9.2 Technische Schuld163
9.3 Komplexität und Modulgröße164
9.3.1 Semantische Komplexität165
9.3.2 Strukturelle Komplexität165
9.3.3 Verschachtelungskomplexität166
9.4 Kohäsion166
9.4.1 Relational Cohesion166
9.4.2 Lack of Cohesion in Methods IV (LCOM4)166
9.5 Component Rank168
9.6 Software-Package-Metriken nach Robert C. Martin168
9.6.1 Afferent Coupling (Ca)169
9.6.2 Efferent Coupling (Ce)169
9.6.3 Instability170
9.7 Metriken nach John Lakos170
9.7.1 Depends Upon und Used From170
9.7.2 Cumulative Component Dependency (CCD)171
9.7.3 Average Component Dependency (ACD)171
9.7.4 Relative Average Component Dependency (RACD)172
9.7.5 Normalized Cumulative Component Dependency (NCCD)172
9.8 Relative Cyclicity173
9.8.1 Azyklischer Monolith174
9.9 Strukturkennzahlen und verteilte Systeme175
10 Zusammenfassung177
10.1 Die Frage nach dem „richtigen Schnitt“177
10.1.1 Ausrichtung nach dem Kunden177
10.1.2 Optimierung der Software178
10.2 Geteilte Daten179
10.3 Migration180
10.3.1 Extraktion180
10.3.2 APIs First182
10.3.3 Aushöhlung184
10.3.4 Ach wenn ich doch nur anfangen könnte!185
10.3.5 Über die Migration der Mitarbeiter186
10.4 Pitfalls186
10.4.1 Es funktioniert186
10.4.2 Enterprise- vs. Makro-Architektur187
10.4.3 Scrum187
10.4.4 Microservices187
10.4.5 Vereinheitlichung188
10.4.6 Keine klare Linie188
10.4.7 Überbewertung des Themas Prozesse189
10.4.8 Irrationalität189
10.4.9 Big-Bang-Migration192
10.4.10 Scope Creep192
10.4.11 Elfenbeinturm193
10.4.12 Ignorieren von Feedback zu Machbar- und Sinnhaftigkeit193
10.4.13 Widersprüchliche Ziele194
10.4.14 Management durch Kennzahlen194
10.4.15 Falsche Anreize (Kobra-Effekt)195
10.4.16 Cargo-Kult195
10.5 War Story196
10.6 Fazit198
11 Umsetzung201
11.1 Datenreplikation201
11.1.1 Extract Transform Load (ETL)201
11.1.2 Features der Datenbanken201
11.1.3 Polling201
11.1.4 Push Messaging202
11.2 Composite UI202
11.2.1 Partielle Integration im Web203
11.2.2 Integration über ein Trägerportal204
11.2.3 Vollständige Pages205
11.2.4 Komplexe Integration205
11.3 Design eines Moduls206
11.4 Consumer Driven Contract Testing mit PACT208
11.5 Modulares Design208
11.5.1 Javascript208
11.5.2 TypeScript209
11.5.3 Java210
11.5.4 Open Services Gateway initiative – OSGi211
11.5.5 ArchUnit212
11.5.6 Sonargraph213
12 Glossar217
13 Quellen219
Index223
Leere Seite2

Weitere E-Books zum Thema: Informatik - Algorithmen - Softwaresysteme

Softwaretechnik

E-Book Softwaretechnik
Format: PDF

Software-Projekte geraten oft in Schwierigkeiten: Zeit und Budget werden überschritten; das Projekt tritt auf der Stelle; im schlimmsten Fall wird es ohne Ergebnis abgebrochen. Manche…

Softwaretechnik

E-Book Softwaretechnik
Format: PDF

Software-Projekte geraten oft in Schwierigkeiten: Zeit und Budget werden überschritten; das Projekt tritt auf der Stelle; im schlimmsten Fall wird es ohne Ergebnis abgebrochen. Manche…

Softwaretechnik

E-Book Softwaretechnik
Format: PDF

Software-Projekte geraten oft in Schwierigkeiten: Zeit und Budget werden überschritten; das Projekt tritt auf der Stelle; im schlimmsten Fall wird es ohne Ergebnis abgebrochen. Manche…

Software Engineering

E-Book Software Engineering
Architektur-Design und Prozessorientierung Format: PDF

Das Lehrbuch behandelt alle Aspekte der Software-Entwicklung, besonders aber Methoden und Richtlinien zur Herstellung großer und qualitativ hochwertiger Softwareprodukte. Es vermittelt das zur…

Software Engineering

E-Book Software Engineering
Architektur-Design und Prozessorientierung Format: PDF

Das Lehrbuch behandelt alle Aspekte der Software-Entwicklung, besonders aber Methoden und Richtlinien zur Herstellung großer und qualitativ hochwertiger Softwareprodukte. Es vermittelt das zur…

Weitere Zeitschriften

Augenblick mal

Augenblick mal

Die Zeitschrift mit den guten Nachrichten "Augenblick mal" ist eine Zeitschrift, die in aktuellen Berichten, Interviews und Reportagen die biblische Botschaft und den christlichen Glauben ...

cards Karten cartes

cards Karten cartes

Die führende Zeitschrift für Zahlungsverkehr und Payments – international und branchenübergreifend, erscheint seit 1990 monatlich (viermal als Fachmagazin, achtmal als ...

care konkret

care konkret

care konkret ist die Wochenzeitung für Entscheider in der Pflege. Ambulant wie stationär. Sie fasst topaktuelle Informationen und Hintergründe aus der Pflegebranche kompakt und kompetent für Sie ...

dima

dima

Bau und Einsatz von Werkzeugmaschinen für spangebende und spanlose sowie abtragende und umformende Fertigungsverfahren. dima - die maschine - bietet als Fachzeitschrift die Kommunikationsplattform ...

e-commerce magazin

e-commerce magazin

e-commerce magazin Die Redaktion des e-commerce magazin versteht sich als Mittler zwischen Anbietern und Markt und berichtet unabhängig, kompetent und kritisch über ...