Back to Basics of Design, Architecture, and Programming

Die OOP versteht sich als Vorreiter und Vermittler neuer Trends und Tools für Design, Architektur und Programmierung von Software. Über viele Jahre werden immer wieder Features präsentiert, die die bestehenden Prinzipien von guter Software-Entwicklung erweitern und abrunden. Neue Teilnehmer der Konferenz haben aber mitunter das Problem, dass sie nicht richtig abgeholt werden, weil viel zu viel Prinzipien und Techniken vorausgesetzt werden. Dieser Track konzentriert sich deshalb auf die Basics von System-Design, Architektur und -Programmierung.
» Alle Vorträge des Tracks im Überblick
» Zu den Tutorials & Nightschools

Gestaltet von: Nicolai Josuttis

Nicolai Josuttis ist seit 30 Jahren als Entwickler, Autor und Trainer und in der Software Entwicklung tätig. Sein Schwerpunkt liegt dabei auf C++, über das er etliche Bücher geschrieben hat und bei dem er seit Jahren an der Standardisierung beteiligt ist.

Einige Highlights des Tracks

HISTORY AND FOUNDATIONS OF SOFTWARE ARCHITECTURE

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, SOLID, and the software architecture hamburger.


Dienstag | Mit Henning Schwentner

DAS 1X1 DER WEB-ARCHITEKTUR

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, ist die Kenntnis dieser grundlegenden Prinzipien aber unerlässlich. Ansonsten droht die Gefahr, in einer ewigen Spirale dem gerade gehypten Framework, Architektur-/ Entwicklungsansatz fürs Web nachzulaufen. Dieser Vortrag versucht, den Blick wieder auf diese grundlegenden Prinzipien zu richten.

Dienstag | Mit Christoph Iserlohn

HOW WE DECIDE

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 compare them all, describing the ideal characteristics of a decision-process for modern software development. As a consequence, not only will you be able to decide better as an individual, you will also be able to diagnose failings in your group decision processes and resolve them.

Dienstag | Mit Andrew Harmel-Law

DIE STARRE ÜBERWINDEN – REFACTORING HIN ZU GESCHMEIDIGEM CODE

Wir beginnen mit einer starren und fragilen Codebase, die häufig über Jahre entstehen. Wir führen Schritt für Schritt Refactorings durch, wobei wir den Supple-Design-Strategien aus DDD sowie anderen bekannten Refactoring-Patterns folgen. Dabei führen wir Value Objects, Entities und weitere Elemente des Taktischen Designs nach und nach ein. Dies erlaubt es uns, die Codebase klar zu strukturieren, sodass Änderungen schnell und leicht möglich sind und das Arbeiten mit dem Code wieder Freude bereitet. Sie lernen, in welchen Schritten die Strategien anwendbar sind. Die einzelnen Schritte sind einfach und klar verständlich.

Dienstag | Nicole Rauch, Martin Günther