Grails beschleunigt die Entwicklung durch Konventionen. In größeren Anwendungen reichen Konventionen allein jedoch nicht aus: Fachliche Grenzen, Transaktionsverantwortung und Integrationsschnittstellen müssen ausdrücklich gestaltet werden.
Das Seminar entwickelt aus einer gewachsenen Beispielanwendung eine tragfähige Zielarchitektur. Dabei werden Muster nicht als Selbstzweck eingesetzt, sondern nach Nutzen, Komplexität und langfristiger Wartbarkeit bewertet.
Inhaltsverzeichnis
- Zielgruppe
- Voraussetzungen
- Lernziele
- Modul 1: Framework, Laufzeit und Projektökosystem einordnen
- Modul 2: Schichten, Module und fachliche Grenzen
- Modul 3: Enterprise-Patterns für Grails-Anwendungen
- Modul 4: Modularisierung und gemeinsame Komponenten
- Modul 5: Geschäftstransaktionen und Konsistenzmuster
- Modul 6: HTTP-Integration und robuste Clients
- Modul 7: Messaging, Ereignisse und Entkopplung
- Modul 8: Resilienz bei gestörten Abhängigkeiten
- Praxisprojekt und Übungen
- Arbeitsweise
Zielgruppe
Softwarearchitekten, technische Leiter, erfahrene Grails-, Groovy-, Java- oder Spring-Entwickler.
Voraussetzungen
Sichere Kenntnisse in objektorientierter Entwicklung sowie praktische Erfahrung mit Webanwendungen, Services und Persistenz. Grails-Grundkenntnisse sind erforderlich.
Lernziele
- Fachliche und technische Verantwortlichkeiten eindeutig trennen.
- Abhängigkeitsrichtungen und Modulgrenzen verbindlich definieren.
- Transaktionen und Integrationen an fachlichen Abläufen ausrichten.
- Resilienz- und Fehlermuster für externe Abhängigkeiten planen.
- Architekturentscheidungen mit Tests und nachvollziehbaren Kriterien absichern.
Modul 1: Framework, Laufzeit und Projektökosystem einordnen
Das Zusammenspiel von Apache Grails, Groovy, Spring Boot, Gradle, GORM und den zentralen Grails-Plugins wird als technische Gesamtarchitektur betrachtet.
- Schritt 1: Die Aufgaben von Framework, Laufzeit, Buildsystem und Persistenzschicht voneinander abgrenzen.
- Schritt 2: Anwendungsprofile, Konventionen und Erweiterungspunkte einer Grails-Anwendung zuordnen.
- Schritt 3: Die Abhängigkeiten zwischen Java-Version, Grails-Version, Groovy, Spring Boot und GORM erfassen.
- Schritt 4: Für ein Beispielprojekt eine belastbare Technologie- und Versionsmatrix erstellen.
Modul 2: Schichten, Module und fachliche Grenzen
Die Anwendung wird nach fachlichen Verantwortlichkeiten statt nach zufälligen technischen Paketen gegliedert.
- Schritt 1: Anwendungsfälle, Domänenbereiche und Abhängigkeiten erfassen.
- Schritt 2: Controller, Services, Domäne und Infrastruktur klar abgrenzen.
- Schritt 3: Zulässige Abhängigkeitsrichtungen und öffentliche Schnittstellen festlegen.
- Schritt 4: Architekturregeln mit Tests oder Buildprüfungen dauerhaft absichern.
Modul 3: Enterprise-Patterns für Grails-Anwendungen
Bewährte Muster werden nur dort eingesetzt, wo sie Komplexität reduzieren und Verantwortlichkeiten sichtbar machen.
- Schritt 1: DTOs, Fassaden, Repositories und Adapter anhand konkreter Probleme bewerten.
- Schritt 2: Synchrone und ereignisbasierte Anwendungsfälle unterscheiden.
- Schritt 3: Idempotenz, Auditierung und Fehlergrenzen entwerfen.
- Schritt 4: Überarchitektur erkennen und auf die tatsächlich benötigten Muster reduzieren.
Modul 4: Modularisierung und gemeinsame Komponenten
Wachsende Anwendungen werden in klar versionierbare Module oder Plugins mit kontrollierten Schnittstellen zerlegt.
- Schritt 1: Kohäsive Funktionsbereiche und gemeinsame Querschnittskomponenten bestimmen.
- Schritt 2: Abhängigkeiten und Initialisierungsreihenfolge zwischen Modulen festlegen.
- Schritt 3: Interne APIs und Erweiterungspunkte dokumentieren.
- Schritt 4: Getrennte Tests und Veröffentlichungszyklen praktisch erproben.
Modul 5: Geschäftstransaktionen und Konsistenzmuster
Komplexe Abläufe werden in robuste, nachvollziehbare Transaktionen und Kompensationsschritte zerlegt.
- Schritt 1: Atomare und verteilte fachliche Operationen unterscheiden.
- Schritt 2: Idempotenz und Wiederholbarkeit für kritische Methoden herstellen.
- Schritt 3: Nebenwirkungen über Ereignisse oder Outbox-ähnliche Muster entkoppeln.
- Schritt 4: Fehlerfälle und Teilabbrüche mit gezielten Tests durchspielen.
Modul 6: HTTP-Integration und robuste Clients
Externe Dienste werden mit expliziten Verträgen, Zeitgrenzen und kontrollierter Fehlerbehandlung angebunden.
- Schritt 1: Client-Schnittstelle und Transportmodell von der Fachlogik trennen.
- Schritt 2: Timeouts, Authentifizierung und Verbindungsverwaltung konfigurieren.
- Schritt 3: Fehlercodes und unvollständige Antworten in fachliche Ergebnisse übersetzen.
- Schritt 4: Integrationen mit Stubs und realitätsnahen Integrationstests absichern.
Modul 7: Messaging, Ereignisse und Entkopplung
Asynchrone Kommunikation wird mit eindeutiger Zuständigkeit, Nachrichtenschema und Fehlerpfad gestaltet.
- Schritt 1: Ereignis, Befehl und Nachricht fachlich voneinander unterscheiden.
- Schritt 2: Produktion und Verarbeitung von Nachrichten in Services kapseln.
- Schritt 3: Idempotenz, Reihenfolge und doppelte Zustellung berücksichtigen.
- Schritt 4: Fehlerwarteschlange, Wiederholung und manuelle Nachbearbeitung vorsehen.
Modul 8: Resilienz bei gestörten Abhängigkeiten
Die Anwendung reagiert auf Zeitüberschreitungen und Teilausfälle mit definiertem Verhalten statt mit Kettenfehlern.
- Schritt 1: Zeitgrenzen und Fehlerbudgets je Abhängigkeit festlegen.
- Schritt 2: Wiederholungen nur für idempotente und geeignete Fehler konfigurieren.
- Schritt 3: Circuit-Breaker-, Fallback- oder Warteschlangenstrategie bewerten.
- Schritt 4: Störungen gezielt simulieren und Betriebsreaktionen prüfen.
Praxisprojekt und Übungen
Eine monolithische Beispielanwendung wird analysiert, in fachliche Bereiche gegliedert und schrittweise verbessert. Ergebnis sind ein Komponentenbild, definierte Schnittstellen, Architekturregeln und eine priorisierte Umsetzungsroadmap.
Arbeitsweise
Kurze fachliche Einführungen wechseln mit Demonstrationen, angeleiteten Implementierungsschritten, selbstständigen Übungen und gemeinsamer Auswertung. Entscheidungen werden im Code, in Tests und in einer knappen technischen Dokumentation nachvollziehbar festgehalten.
Fachbereichsleiter / Leiter der Trainer / Ihre Ansprechpartner
-

Lucas Beich
Telefon: + 49 (221) 74740055
E-Mail: lucas.beich@seminar-experts.de -

Paul Goldschmidt
Telefon: + 49 (221) 74740055
E-Mail: paul.goldschmidt@seminar-experts.de
Seminardetails
| Dauer: | 3 Tage ca. 6 h/Tag, Beginn 1. Tag: 10:00 Uhr, weitere Tage 09:00 Uhr |
| Preis: |
Öffentlich oder Live Stream: € 1.797 zzgl. MwSt. Inhaus: € 5.100 zzgl. MwSt. |
| Teilnehmeranzahl: | min. 2 - max. 8 |
| Teilnehmer: | Softwarearchitekten, technische Leiter, erfahrene Grails-, Groovy-, Java- oder Spring-Entwickler. |
| Voraussetzungen: | Sichere Kenntnisse in objektorientierter Entwicklung sowie praktische Erfahrung mit Webanwendungen, Services und Persistenz. Grails-Grundkenntnisse sind erforderlich. |
| Standorte: | Stream Live, Inhaus/Firmenseminar, Berlin, Bremen, Darmstadt, Dresden, Erfurt, Essen, Flensburg, Frankfurt, Freiburg, Friedrichshafen, Hamburg, Hamm, Hannover, Jena, Kassel, Köln, Konstanz, Leipzig, Luxemburg, Magdeburg, Mainz, München, Münster, Nürnberg, Paderborn, Potsdam, Regensburg, Rostock, Stuttgart, Trier, Ulm, Wuppertal, Würzburg |
| Methoden: | Vortrag, Demonstrationen, praktische Übungen am System |
| Seminararten: | Öffentlich, Webinar, Inhaus, Workshop - Alle Seminare mit Trainer vor Ort, Webinar nur wenn ausdrücklich gewünscht |
| Durchführungsgarantie: | ja, ab 2 Teilnehmern |
| Sprache: | Deutsch - bei Firmenseminaren ist auch Englisch möglich |
| Seminarunterlage: | Dokumentation auf Datenträger oder als Download |
| Teilnahmezertifikat: | ja, selbstverständlich |
| Verpflegung: | Kalt- / Warmgetränke, Mittagessen (wahlweise vegetarisch) |
| Support: | 3 Anrufe im Seminarpreis enthalten |
| Barrierefreier Zugang: | an den meisten Standorten verfügbar |
| Weitere Informationen unter + 49 (221) 74740055 |
Seminartermine
Die Ergebnissliste kann durch Anklicken der Überschrift neu sortiert werden.
