Track: Back to Basics of Design, Architecture, and Programming
- Dienstag
04.02. - Mittwoch
05.02.
How to structure your program right? This has been a central question since the beginning of software development. This talk takes a look into the history of software architecture to understand why we are building software the way we are. We start with foundations like information hiding, modularity, separation of concerns, loose coupling. We move on to principles like layering and design patterns. We conclude with an outlook to modern ideas like hexagonal architecture, onion architecture,…
Die Entwicklung typischer aktueller Webanwendungen kann einen erschlagen: Umfangreiche, komplexe JavaScript-Frameworks, Client-Side-Rendering/Server-Side-Rendering, (De-)Hydration, komplizierte Buildprozesse und und und
Die unterliegenden Technologien, Protokolle und Architekturmuster wie HTTP(2/3), HTML/CSS, Web Components, Representational State Transfer (REST) u. a. geraten dabei manchmal völlig aus dem Blick. Für die Entwicklung von Webanwendungen, die nachhaltig und skalierbar sein sollen,…
We make decisions all the time in software – our architectures are the sum of them; both conscious and unconscious.
Yet we have so little awareness about *what* decisions are and *how* we decide. This is not only the source of great friction and waste, it is leading to terrible outcomes for our software.
In this talk I’ll describe what architectural decisions are, and the different ways that we approach them (individually and collectively) making clear the pros and cons of each. I’ll then…
In den letzten Jahren hat das Strategische Design aus DDD einen enormen Zuspruch gewonnen, was auf jeden Fall gut und wichtig ist. Aber das bedeutet nicht, dass wir das Taktische Design von DDD vernachlässigen sollten.
Für diesen Vortrag beginnen wir mit einer starren und fragilen Codebase, wie sie häufig im Laufe der Jahre entsteht. Wir führen Schritt für Schritt Refactorings durch, wobei wir den Supple Design Strategien (supple: englisch für “geschmeidig”) aus DDD sowie anderen bekannten…
Schwer zu ändernde Codebasen haben zwei Probleme: fehlende Ausrichtung an Domänengrenzen und fehlender Ausdruck architektonischer Ideen im Code. Entwickler:innen verwenden Separation-of-Concerns-Architekturen wie Onion-, Clean- und Hexagonal-Architektur, um dieses Problem anzugehen. Diese Ansätze erzielen jedoch gemischte Ergebnisse, da sie sich hauptsächlich auf die Trennung von technischem und Business-Code konzentrieren, ohne strukturelle Aspekte der Domäne zu berücksichtigen.
In der…
Consider for example, this line of C++ code:
std::pmr::vector<std::variant<int,double,std::pmr::string>> values;
Are you aware that this line of code contains at least five Gang-of-Four (GoF) design patterns? If not, then this talk is definitely for you! It will help you realize that design patterns are everywhere. They are the key to managing dependencies between software entities. They help us to structure our software, to separate concerns, and to communicate our intentions. Even better, they…
BDD is not new, but is very useful. If you have never used it before, or have tried and it didn't work, this session will give a good grounding to using BDD successfully. We'll cover the basics, working through some examples and discuss how to succeed.
We will focus on the process, learning how to write scenarios and have a brief glimpse at what happens under the hood. We'll also think about helping everyone engage with testing.
If you want more people to get involved in testing and need ideas,…
Die Architekturmodelle Clean, Onion und Hexagonal Architecture basieren auf dem Dependency Inversion Principle (DIP). Damit bspw. Domänenlogik nicht von der Datenbank abhängig ist, wird ein Interface dazwischen gestellt. Die Anwendung des DIP ist so allgegenwärtig, dass wir uns an die damit verbundenen Umstände wie Tests mit Attrappen gewöhnt haben.
Mit der Integration Operation Data API Architecture (IODA) gibt es eine Alternative: Durch das Herauslösen der Integration als eigene…
Was haben wir nach 30 Jahren Systementwicklung eigentlich alles gelernt? Im Kern stoßen wir immer wieder auf die gleichen Grundprinzipien, die in überraschend vielfältiger Form auftreten. So unterschiedlich Systeme sind, die Hauptprobleme lassen sich tatsächlich häufig auf die gleichen Ursachen zurückführen.
In dieser Session beleuchten wir unsere wichtigsten „üblichen Verdächtigen“ und zeigen auf, wie man sie adressieren kann. Gewürzt mit zahlreichen Anekdoten, plaudern Jutta und Nico aus ihrem…