Modularität mit Spring
Modularität ist eines der wichtigsten Konzepte in unserem Softwareentwickler-Werkzeugkoffer. Sie ist DAS Werkzeug gegen Komplexität, denn sie ermöglicht es uns, das Gesamtproblem in immer kleinere Probleme aufzuteilen. Wir lösen das Hauptproblem dann durch das Lösen der einfacheren modularen Probleme. Modularität bringt Testbarkeit, Skalierbarkeit, Separation of Concerns, Kohäsion, Lose Kopplung und vieles mehr.
Viele Unternehmen greifen zu Microservices, um Modularität zu implementieren. Der Hauptgrund ist oft, dass mehrere Teams gleichzeitig an der Software arbeiten sollen und die Grenzen zwischen den Teams so klarer definiert sind. Microservices erhöhen allerdings die technische Komplexität enorm.
Wie kann man stattdessen Modularität in einer monolithischen Codebase implementieren, sodass man die Vorteile der Modularität ohne die Nachteile der technischen Komplexität von Microservices bekommt?
Das möchten wir in diesem Talk im Kontext von Java und Spring besprechen.
Lernziele
Architekturbewertung Microservices vs. Monolith