W-JAX | 4. - 8. November 2019, München

ArchUnit: Architektur und Design automatisiert prüfen

Session
Dieser Talk stammt aus dem Archiv. zum AKTUELLEN Programm
Bis 27. Juni: ✓ PlayStation Classic ✓ Kollegenrabatt ✓ Bis zu 347€ sparen Jetzt anmelden
Infos
Mittwoch, 8. Mai 2019
11:45 - 12:45

In den meisten Projekten gibt es irgendwo eine Dokumentation der Architektur und der Code-Conventions. Die Frage ist nur: Wo? Und sind die Beschreibungen aktuell? Hält sich der Code wirklich daran? In der Praxis ist solche Dokumentation leider allzu häufig "write-only" und hat mit der Realität nur noch entfernt zu tun. Viel schöner wäre es doch, wenn die Vorgaben automatisiert geprüft werden könnten. Beispielsweise in Form von Unit-Tests, die von den Entwicklern zusammen mit der Anwendung gepflegt und angepasst werden, als Teil einer "Living Documentation". 

Mit ArchUnit können die typischen Architekturvorgaben mit einer Fluent-API als Regeln definiert und z. B. in JUnit getestet werden. Dazu gehören Schichten und fachliche Schnitte, deren erlaubte und verbotene Abhängigkeiten sowie Zyklenfreiheit. Außerdem können Code-Conventions wie Namen von Elementen, die Zuordnung von Klassen zu Packages und die Verwendung von Annotationen und Exceptions geprüft werden. Bestehende Regeln können so nicht nur mit Unit-Tests festgezurrt, es können auch Ausnahmen definiert werden. Vorhandener Code kann so nach und nach an die Vorgaben angepasst werden, z. B. als Vorbereitung einer Modularisierung – und das auch mit älteren Java-Versionen. Neben der allgemeinen Vorstellung von ArchUnit bietet dieser Vortrag Tipps aus der Praxis – inkl. Live-Coding.

Alle News der Java-Welt:
Alle News der Java-Welt:

Behind the Tracks of W-JAX 2019

Agile & Culture
Teamwork & Methoden

Data Access & Machine Learning
Speicherung, Processing & mehr

Clouds, Kubernets & Serverless
Alles rund um Cloud

Core Java & JVM Languages
Ausblicke & Best Practices

DevOps & Continuous Delivery
Deployment, Docker & mehr

Microservices
Strukturen & Frameworks

Web Development & JavaScript
JS & Webtechnologien

Performance & Security
Sichere Webanwendungen

Serverside Java
Spring, JDK & mehr

Digital Transformation & Innovation
Technologien & Vorgehensweisen

Software-Architektur
Best Practices