Architektur-Entscheidungen kann man aufteilen in eine Makro-Architektur-Ebene, die alle Module betrifft, und eine Mikro-Architektur-Ebene mit Entscheidungen, die pro Modul anders sein können. Die durch eine Mikro-Architektur gewonnene Flexibilität hat beispielsweise Vorteile bei der mit einer Vielzahl an Teams, gleichzeitig ermöglicht eine Makro-Architektur einen produktiven Umgang mit der Flexibilität bei Microservices. Die Präsentation zeigt verschiedene Ansätze für…
Copy & Paste-Programmierung ist seit Jahrzehnten als Code-Smell verschrien. Das hat nicht verhindert, dass in allen größeren Systemen viele Klone vorkommen. Das schafft Probleme.
Clone Detection - die automatisierte Erkennung solcher Duplikate - ist inzwischen in einigen IDEs enthalten. Allerdings nützt es niemandem, eine Liste mit 100.000 Klonen zu erzeugen. Die Herausforderung ist der sinnvolle Umgang mit bestehenden Klonen. Welcher das ist, hängt vom eigenen Kontext…
Der Vortrag stellt aktuelle Ansätze für die Sicherheitsbewertung auf Architekturebene vor. Häufig verwendete Muster für Architekturen werden auf ihre Sicherheitseigenschaften analysiert und grundlegen Prinzipien für sicheres Design vorgestellt. Ein vorgestellter Leitfaden gibt Hinweise für ein systematisches Vorgehen zur Erstellung sicherer Softwarearchitekturen. Als Werkzeuge zum praktischen Einsatz in der Sicherheitsanalyse von Architekturen kommen u.a. SonarQube und…
Die Geschichte Deines Projekts ist erzählt, die Domänen und Subdomänen stehen, die Schnitte sind angesetzt. Auf dem Weg zu funktionierender Software wirst Du allerdings noch Modelle erstellen. Du kannst Dich dabei dicht an der Domäne orientieren, bekommst aber ein Modell, das nur wenige tiefe Einsichten bietet und spröde auf Veränderungen reagiert. Du kannst auch Techniken aus der funktionalen Programmierung benutzen - die fördern tiefe Einsichten zutage, sind aber oft…
Eigentlich weiß jeder um die "Kraft der Bilder", und dennoch scheuen sich viele Leute, sie auch einzusetzen, wenn es um die Vermittlung von Ideen und Gedanken geht. Dabei gewinnen grade die oft abstrakten Konzepte in der IT an Begreifbarkeit, wenn man sie visualisiert. "Ich kann doch nicht malen" ist die häufigste Sorge. Aber das ist auch nicht nötig, denn es geht vielmehr um einfache Symbolik und eine Unterstützung statt Ersetzung des geschriebenen Wortes. Die Session…
Machine Learning ist eine spezielle Form der Software-Entwicklung und hat als solche viele Gemeinsamkeiten, aber auch einige Unterschiede zur traditionellen Software-Entwicklung. Während traditionell Software-Entwickler Code von Hand schreiben wird im Machine Learning ein Modell anhand von bestimmten Daten, einer Modell-Architektur und einem Trainings-Script erzeugt.
Anhand eines durchgängigen Beispiels bewegen wir uns in diesem Workshop durch die unterschiedlichen…
Microservices. APIs. Cloud native. Always on. Near-realtime. And so on. Today's IT landscapes are highly interconnected, massively distributed and need to be responsive 24x7. Downtimes are not an option. Long response times are not an option, either. Thus, time to learn resilient software design.
In this workshop, we will first discuss why we need resilient software design. Then we will build a little essential patterns toolbox for handling timeouts, failures, overload…
CQRS und Event Sourcing werden schon länger als Alternative zu klassischen Schichtenarchitekturen propagiert. Jedoch gab es lange keine Frameworks, die eine umfassende Lösung bieten um diese Patterns auch in der Praxis anwenden zu können. Das Open Source Framework Axon schließt diese Lücke.
Durch die Nutzung des Frameworks wird es für Entwickler ein leichtes, von den Vorteilen von CQRS/ES zu profitieren: Beliebige Skalierung durch Trennung von Schreib- und Lesemodellen…