Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Cover
Titel
Impressum
Inhalt
Vorwort: Axiome infrage stellen
1 Einleitung
Softwarearchitektur definieren
Erwartungen an Architekten
Architekturentscheidungen treffen
Kontinuierliche Analyse der Architektur
Bei aktuellen Trends auf dem Laufenden bleiben
Sicherstellen, dass Entscheidungen eingehalten werden
Vielfältige Kenntnisse und Erfahrungen
Wissen in der Fachdomäne des Problems
Fähigkeiten im zwischenmenschlichen Umgang
Politik verstehen und sich in dieser Sqhäre bewegen können
Überschneidungen von Architektur und …
Engineering-Praktiken
Technischer Betrieb/DevOps
Prozess
Daten
Gesetze der Softwarearchitektur
Teil I Grundlagen
2 Architektonisches Denken
Architektur und Design im Vergleich
Technische Breite
Vor- und Nachteile analysieren
Geschäftliche Faktoren verstehen
Die Balance zwischen Architektur und tatsächlichem Programmieren
3 Modularität
Definition
Modularität messen
Kohäsion
Kopplung
Abstraktheit, Instabilität und Entfernung von der Hauptsequenz
Entfernung von der Hauptsequenz
Konnaszenz
Kopplungs- und Konnaszenzmetriken vereinheitlichen
Von Modulen zu Komponenten
4 Definition architektonischer Eigenschaften
Architektonische Eigenschaften, eine (unvollständige) Liste
Betriebsrelevante architektonische Eigenschaften
Strukturelle architektonische Eigenschaften
Bereichsübergreifende architektonische Eigenschaften
Kompromisse und am wenigsten schlechte Architektur
5 Architektonische Eigenschaften ermitteln
Architektonische Eigenschaften aus domänenspezifischen Anforderungen ableiten
Architektonische Eigenschaften aus funktionalen Anforderungen ableiten
Fallstudie: Silicon Sandwiches
Explizite Eigenschaften
Implizite Eigenschaften
6 Messung und Governance von architektonischen Eigenschaften
Architektonische Eigenschaften messen
Betriebsrelevante Metriken
Strukturelle Metriken
Prozessbasierte Metriken
Governance und Fitnessfunktionen
Governance für architektonische Eigenschaften
Fitnessfunktionen
7 Anwendungsbereich architektonischer Eigenschaften
Kopplung und Konnaszenz
Architektonische Quanten und Granularität
Fallstudie: Going, Going, Gone (»Zum Ersten, zum Zweiten und zum Dritten«)
8 Komponentenbasiertes Denken
Anwendungsbereiche für Komponenten
Die Rolle des Architekten
Architektonische Partitionierung
Fallstudie: Partitionierung für Silicon Sandwiches
Die Rolle des Entwicklers
Arbeitsablauf zur Ermittlung der Komponenten
Anfängliche Komponenten ermitteln
Anforderungen auf Komponenten abbilden
Rollen und Verantwortlichkeiten analysieren
Architektonische Eigenschaften analysieren
Komponenten restrukturieren
Komponentengranularität
Komponentendesign
Sinnvolle Komponentenaufteilung ermitteln
Fallstudie: Going, Going, Gone: Komponenten ermitteln
Rückblick auf das architektonische Quantum: Die Wahl zwischen monolithischen und verteilten Architekturen
Teil II Architekturstile
9 Architekturstile
Grundmuster
Big Ball of Mud (Der »große Matschklumpen«)
Eingliedrige Architektur
Client/Server
Monolithische und verteilte Architekturen
Irrtum Nr. 1: Das Netzwerk ist verlässlich
Irrtum Nr. 2: Die Latenz ist gleich null
Irrtum Nr. 3: Die Bandbreite ist unendlich
Irrtum Nr. 4: Das Netzwerk ist sicher
Irrtum Nr. 5: Die Topologie ändert sich nie
Irrtum Nr. 6: Es gibt nur einen Administrator
Irrtum Nr. 7: Die Transportkosten sind gleich null
Irrtum Nr. 8: Das Netzwerk ist homogen
Weitere Überlegungen zum verteilten Rechnen
10 Der schichtbasierte Architekturstil
Topologie
Voneinander isolierte Schichten
Schichten hinzufügen
Zusätzliche Überlegungen
Gründe für den schichtbasierten Architekturstil
Bewertung der architektonischen Eigenschaften
11 Pipeline-Architekturstil
Topologie
Pipes
Filter
Beispiel
Bewertung der architektonischen Eigenschaften
12 Microkernel-Architekturstil
Topologie
Kernsystem
Plug-in-Komponenten
Registry
Kontrakte
Beispiele und Anwendungsfälle
Bewertung der architektonischen Eigenschaften
13 Servicebasierter Architekturstil
Topologie
Topologische Varianten
Servicedesign und Granularität
Datenbank-Partitionierung
Beispielarchitektur
Bewertung der architektonischen Eigenschaften
Wann man diesen Architekturstil verwenden sollte
14 Eventbasierter Architekturstil
Topologie
Broker-Topologie
Mediator-Topologie
Asynchrone Fähigkeiten
Fehlerbehandlung
Datenverlust verhindern
Broadcast-Fähigkeiten
Request-Reply
Request- oder eventbasiert?
Hybride eventbasierte Architekturen
Bewertung der architektonischen Eigenschaften
15 »Space-based«-Architekturstil
Allgemeine Topologie
Verarbeitungseinheit
Virtualisierte Middleware
Data Pumps
Data Writer
Data Reader
Datenkollisionen
Cloudbasierte und On-Premises-Implementierungen im Vergleich
Repliziertes Caching im Vergleich mit verteiltem Caching
Überlegungen zu Near-Cache
Implementierungsbeispiele
System zum Verkauf von Veranstaltungstickets
Online-Auktionssysteme
Bewertung der architektonischen Eigenschaften
16 Orchestrierter serviceorientierter Architekturstil (SOA)
Geschichte und Philosophie
Topologie
Taxonomie
Dienste für die Geschäftslogik
Unternehmensdienste
Applikationsdienste
Infrastrukturdienste
Orchestrierungs-Engine
Nachrichtenfluss
Wiederverwendbarkeit und Kopplung
Bewertung der architektonische Eigenschaften
17 Microservices-Architekturstil
Geschichte
Topologie
Verteilt
Bounded Context
Granularität
Datenisolation
API-Schicht
Betriebliche Wiederverwendung (Operational Reuse)
Frontends
Kommunikation
Choreografie und Orchestrierung
Transaktionen und Sagas
Bewertung der architektonischen Eigenschaften
Weiterführende Referenzen
18 Den richtigen Architekturstil auswählen
Architekturstile als »Modeerscheinungen«
Entscheidungskriterien
Monolith-Fallstudie: Silicon Sandwiches
Modularer Monolith
Microkernel
Verteilte Architektur, Fallstudie: Going, Going, Gone
Teil III Techniken und Soft Skills
19 Architekturentscheidungen
Antipatterns für Architekturentscheidungen
Antipattern: Covering your Assets
Antipattern: Groundhog Day
Antipattern: Email-Driven Architecture
Architektonisch wichtig
Architecture Decision Records (ADR)
Grundstruktur
ADRs speichern
ADRs als Dokumentation
ADRs für Standards verwenden
Beispiel
20 Architektonische Risiken analysieren
Matrix zur Risikobewertung
Risikobewertung
Risk Storming
Identifizierung
Konsens
Risikoanalyse von Agile Stories
Risk-Storming-Beispiele
Verfügbarkeit
Elastizität
Sicherheit
21 Architektur in Diagrammen und Präsentationen visualisieren
Diagramme
Werkzeuge
Standards für Diagramme: UML, C4 und ArchiMate
Richtlinien für die Erstellung von Diagrammen
Präsentieren
Zeit manipulieren
Inkrementeller Aufbau
Infodecks im Vergleich mit Präsentationen
Folien sind nur die Hälfte des Vortrags
Unsichtbarkeit
22 Effektive Teams schaffen
Teams den richtigen Rahmen vorgeben
Architekten-Persönlichkeiten
Der Kontrollfreak
Der Sofa-Architekt
Der effektive Architekt
Wie viel Kontrolle?
Warnsignale des Teams
Checklisten einsetzen
Entwickler-Checkliste für die Codefertigstellung
Checkliste für Unit- und funktionales Testing
Software-Release-Checkliste
Orientierung bieten
Zusammenfassung
23 Verhandlungsgeschick und Führungsqualitäten
Verhandlung und Moderation
Mit geschäftlichen Entscheidungsträgern verhandeln
Mit anderen Architekten verhandeln
Mit Enwicklern verhandeln
Der Softwarearchitekt als Führungskraft
Die vier Ks der Architektur
Seien Sie pragmatisch, aber visionär
Teams mit gutem Beispiel vorangehen
Abstimmung mit dem Entwicklungsteam
Zusammenfassung
24 Eine berufliche Laufbahn entwickeln
Die 20-Minuten-Regel
Ein persönliches Radar entwickeln
Das ThoughtWorks Technology Radar
Open-Source-Visualisierungen
Soziale Medien verwenden
Rat zum Abschied
A Fragen zur Selbstbeurteilung
Fußnoten
Index
Über die Autoren
Über den Übersetzer
Kolophon
← Prev
Back
Next →
← Prev
Back
Next →