Eventgetriebene Architekturen mit CQRS/ES und Axon
CQRS und Event Sourcing werden oft als Alternative zu klassischen Schichtenarchitekturen propagiert. Oft genannte Vorteile sind beliebige Skalierung durch Trennung von Schreib- und Lesemodellen sowie konstante Entwicklungs-Komplexität und -Aufwand über den Lebenszyklus einer Anwendung hinweg. Außerdem unterstützen die Muster ein agiles Vorgehen, da alle Weiterentwicklungen auf die gesamte Datenhistorie zurückgreifen können.
In der Praxis will man die Mechaniken dieser Konzepte jedoch nicht selbst implementieren, sondern auf ein Framework zurückgreifen, sodass man sich auf die eigentliche Fachlichkeit der Anwendung konzentrieren kann. Im Java Umfeld stellt das Open Source Framework Axon eine leicht integrierbare Implementierung dieser Konzepte bereit.
In unserem Workshop zeigen wir Funktionsweise, Vorteile aber auch Tücken von CQRS und Event Sourcing auf und geben einen praxisorientierten Einstieg in die Softwareentwicklung mit dem Axon Framework und Spring Boot.


Weiterlesen
Fortgeschrittenes Howto: Java & Container
Unterschiedliche Ansätze und Best Practices zur Containerisierung von Java Anwendungen
Ein typischer Workflow in moderner Software Entwicklung beinhaltet oft folgende Schritte: Den Code in eine git Repo, kompilieren, ein Container Image bauen, das Image in eine Registry und Deployment auf einen Kubernetes Cluster.
Jeder Schritt hat seine eigenen Anforderungen und Herausforderungen. Das große gemeinsame Ziel ist es zumeist diese Schritte in eine wiederholbare Pipeline zu bekommen und so den Grad der Automation zu erhöhen.
Gerade in dem Bereich der Container Images scheinen Dockerfiles die Option mit der größten Akzeptanz zu sein. Es gibt jedoch schon bei Dockerfiles sehr viele Potential die Dinge richtig oder falsch zu machen. Dazu gibt es mittlerweile einige Alternativen, die ein paar Stolperfallen vermeiden und diesen Teil des Prozesses noch mehr standardisieren können.
Dieser Workshop gibt tiefere Einblicke in diese Optionen und vergleicht (multi-stage) Dockerfiles mit Cloud-Native Buildpacks, Paketo und Google’s JIB anhand der Kriterien Geschwindigkeit, Größe des Image, Standardisierung, Speicher Management, Robustheit und Sicherheit. Die Beispiele und live Demo haben einen gewissen Fokus auf Java-basierte Frameworks (Spring Boot, Quarkus, Micronaut), aber auch andere Programmiersprachen werden behandelt.
Die Teilnehmer*Innen des Workshops haben die Möglichkeit alle Optionen an einer bereit gestellten Umgebung und geführten Übungen durchzuführen.


Weiterlesen
Machine Learning with a Smile
Ein Werkzeugkasten für die Programmierung eines neuronalen Netzwerks
Es ist immer gut, der Welt mit einem Lächeln zu begegnen! Daher werden wir uns in diesem Workshop genau diesem Lächeln widmen. Gemeinsam entwickeln wir ein einfaches neuronales Netzwerk, das in der Lage ist, Smileys zu erkennen. Zu Beginn werde ich ein wenig auf die Theorie unseres Netzwerks eingehen und den Teilnehmenden Schritt für Schritt den für die Entwicklung notwendigen Werkzeugkoffer näher bringen. Anschließend trainieren wir das Netz. Dabei lernen die Teilnehmenden spielerisch, wie ein neuronales Netz funktioniert und warum die Auswahl der richtigen Trainingsdaten so wichtig für eine gute Trefferrate ist. Ziel des Workshops ist es, allen Teilnehmenden ein kleines “Startset” für die Entwicklung neuronaler Netzwerke mit Python und Tensorflow bereitzustellen. Und nicht zuletzt, dass alle nach 90 Minuten den Workshop mit einem strahlenden Lächeln im Gesicht verlassen. Zur Vorbereitung muss nichts installiert werden, das benötigte Handwerkszeug wird während des Workshops verteilt.w

Weiterlesen
Software Architektur Kata
Software Architektur üben durch das Durchführen einer Architektur Kata
Software-Architektur lernt man am besten beim Entwerfen von Software-Architekturen. Das Problem ist, dass man dazu selten die Gelegenheit hat. Da Fehler in Architekturen richtig teuer sind, ist es wichtig, die Fehler im Voraus zu machen und davon zu lernen.
Dafür sind Architektur-Katas eine exzellente Fingerübung. Die Idee der Kata entspricht der des Coding-Dojos. In einer kontrollierten Umgebung wird das Entwerfen einer Software-Architektur geübt und hinterher der Prozess und das Ergebnis analysiert und diskutiert.
Im Rahmen der Workshops werden wir in Kleingruppen eine Architektur Kata durführen und das Ergebnis analysieren.



Weiterlesen
TestDrivenDevelopment mit JUnit5 und Mockito
TestDrivenDevelopment ist eine Fähigkeit, die man üben muss. Nach einer kurzen theoretischen Einführung erfahren Sie mit dieser praktischen Einführung anhand eines einfachen Beispiels wie es sich an fühlt, ein Programm mit dieser Arbeitsmethode zu entwickeln.

Weiterlesen