Mehr als 30 Jahre OOP-Erfahrung trifft auf moderne Innovation: Taucht mit uns tief in die wichtigsten Themen gegenwärtiger Software-Architektur ein – auf den "Virtual Deep Dives | powered by OOP".
Diese Konferenz versteht sich als Online-Ergänzung zur OOP München und bietet die Möglichkeit, sich intensiv und interaktiv mit den neuesten Trends und Best Practices in der Software-Architektur auseinanderzusetzen. Unsere Expert:innen und Branchenführer werden tiefe Einblicke in ihre Arbeitsweise geben und wertvolles Wissen teilen, das Sie direkt in Ihre Projekte integrieren können.
» Zu den Virtual Deep Dives
Die im Konferenzprogramm der OOP 2024 angegebenen Uhrzeiten entsprechen der Central European Time (CET).
In diesem Vortrag werden wir uns mit NixOS beschäftigen, einem einzigartigen Betriebssystem, das auf deklarativen und funktionalen Prinzipien basiert. NixOS bietet eine innovative und konsistente Methode zur Verwaltung und Bereitstellung von Software in einer Umgebung.
Wir werden uns zunächst einen Überblick über die Grundlagen von NixOS verschaffen und das Konzept der Deklarativität erläutern. Anschließend werden wir auf die Vorteile eingehen, die NixOS gegenüber herkömmlichen Betriebssystemen…
How can a deterministic function possibly give random results? We will find out and learn how to use various random number distributions.
Random numbers haven't changed much since C++11, though new features can make these easier to use. Card games and similar need randomness to be fun and make good teaching examples. We will also discover a way to code ourselves (or blobs at least) out of a paper bag in the process.
Target Audience: intermediate. There will be some code and simulations of blobs…
In this session we will walk through various techniques to significantly reduce the resource consumption of regular Spring Boot applications, including using Spring AOT for regular Spring apps, compiling Spring Boot apps to native images (using GraalVM), and using CRaC for instant startup (for scale-to-zero scenarios). We will compare the different approaches, discuss pros and cons for each technology, and share concrete numbers from real-world applications to give the audience an idea of what…
User-centred design is one of the default modes of teams working with software, but the consequences are often unsustainable in a densely networked world as we privilege users over all other stakeholders and systems. How might teams approach building products, services and organisations from a more sustainable standpoint than 'user-centricity'? This talk looks at how the techniques of game design, community development, platform operations and security practices can support a practice focused on…
Je mehr sich die Arbeit der Menschen vom Taktilen in Richtung digitaler Arbeit verschiebt, desto wichtiger wird das Design der Oberflächen für die Interaktion mit dem Digitalen. Wir haben uns in den vergangenen Jahren gefragt: Wie kann der Designprozess so in agile Software-Entwicklung integrieren, dass ein gut verwendbares System mit einer auf Dauer flexiblen und anpassbaren Software-Architektur entsteht? Wir haben auf verschiedenen Ebenen Antworten gefunden, die wir den Zuhörern in diesem…
In meinem Vortrag analysiere ich Statistiken zum Scheitern agiler Übergänge und enthülle dabei die entscheidenden Erfolgs- oder Misserfolgsfaktoren. Im Zentrum steht das Produkt-Management – der Schlüssel, um diese Transitionen zu meistern. Wir decken nicht nur Hindernisse auf, sondern präsentieren auch praxiserprobte Ansätze, um diese zu umgehen und den Weg zum Erfolg zu ebnen. Erleben Sie eine kompakte Reise durch die Welt der agilen Transitionen, die Ihnen wertvolle Erkenntnisse für die…
In großen Unternehmen entwickeln viele Teams REST APIs. Dabei gibt es einige Aufgaben, die sich wiederholen: z.B. Validierung, Test und Publikation. Der Aufbau einer API Operations Pipeline zur Automatisierung dieser Aufgaben ist aufwändig. Dieser Talk zeigt am Beispiel von Azure DevOps Templates, wie so eine Pipeline als Service angeboten werden kann. So kümmert sich ein spezifisches Team um die Entwicklung und Wartung der Pipeline, während alle anderen sich auf das Design und die Entwicklung…
Programmierer:innen der Mainstream-Programmiersprachen sind schon sehr erstaunt über die Mächtigkeit eines Lisp-Makrosystems. Wir können dadurch Sprachfeatures ganz einfach selbst implementieren und die Programmiersprache auf natürliche Art und Weise erweitern.
Racket, ein besonderer Lisp-Dialekt, geht noch weiter: Nicht nur ist das Makrosystem besonders ausgefeilt (Stichwort Hygienic Macros) – die Sprache ist sogar darauf ausgelegt, Makros zu schreiben, die eigene Subsprachen (DSLs) realisieren…
Microfrontends are a popular concept for development in an enterprise project, where a large number of teams want to work independently.
But what is the cost achieving run-time integration and independent framework versions?
JS frameworks intended to build SPAs have solved many problems like deep-linking between pages without reloading the application.
This talk will give you some real life experience which challenges are to be considered using different integration patterns, using…
Statische Analysetools liefern Security-Findings, aber ihre Wirksamkeit wird durch hohe Fehlalarme beeinträchtigt. Entwickler ignorieren diese, während das Management sie als kritisch betrachtet, sowohl aufgrund möglicher Angriffe als auch im Hinblick auf Security-Audits. Dadurch entstehen unnötige Kosten und Verzögerungen. In unserem Vortrag teilen wir 10 Jahre Erfahrung, präsentieren typische Sicherheitsprobleme und effektive Analyseansätze. Zudem stellen wir bewährte Methoden für…
This technical session aims to unravel the unique facets of Rust's memory management, including Ownership/Borrowing, Stack/Heap allocation, Reference Counting, and Lifetimes. Rainer Stropek aims to provide an in-depth understanding of these core elements and their interplay in providing memory safety, concurrency, and abstraction in Rust. This session, designed for developers with a strong programming background, will provide insight into the mechanisms that help Rust minimize common runtime…
Python befindet sich seit Jahren unter den Top 3 der populärsten Programmiersprachen. Spätestens seit dem anhaltenden Hype um maschinelles Lernen führt selbst für normalsterbliche Entwickler praktisch kein Weg mehr an Python vorbei.
Aber wieso ist die Sprache eigentlich so beliebt – selbst außerhalb von Machine Learning? Welche Eigenschaften zeichnet sie aus? Ist es sinnvoll – und funktioniert das überhaupt –, so einfach von Java, .NET oder C++ auf Python umzusteigen?
Zielpublikum: Erfahrene…
Die Business-Verantwortlichen sind oft unzufrieden mit der Software-Entwicklung: "Wenn die Entwicklungs-Teams nur schneller arbeiten würden, wären wir viel erfolgreicher!" Und obwohl die Teams Feature um Feature ausliefern, will sich der Erfolg nicht einstellen – die Build Trap.
Meist ist in dieser Situation gar nicht klar, welches Ziel das Produkt eigentlich erreichen soll, weil es immer nur um Output geht und kaum Outcome. Ich zeige in dem Vortrag anhand praktischer Beispiele, wie man die…
Für ein modernes Web-Frontend greift man am besten zu Angular, React & Co., oder? - Nicht unbedingt! Auch native Bordmittel, zusammen mit ein paar Libraries, können eine echte, leichtgewichtige Alternative sein. Und man kann sogar schrittweise dorthin migrieren. Basierend auf konkreter Projekterfahrung, möchte ich den Blick für diesen Ansatz schärfen, Vor- und Nachteile aufzeigen und das Ganze anhand von Codebeispielen illustrieren.
Zielpublikum: Architekt:innen, Entwickler:innen
Voraussetzungen…
Many developers evoke technical debt to explain the misfortunes and troubles of their codebase and delivery. While unmanaged technical debt weighs down an architecture and exerts drag on its schedule, it is more often an effect than a cause. In this talk, we will look at what is and is not meant by technical debt with a view to properly attributing the root and recurring cause as technical neglect than technical debt. Without seeing technical neglect for what it is, we will continue to…
Although the term "Cloud Native" in the context of Java has been repeated ad nauseam for years, the JVM as a platform has only recently entered a phase where everything truly aligns with how cloud-native architectures are designed. Let's trace the path Java has already taken in recent years and take a look at what lies ahead in the future. During this presentation, you will learn about projects such as Leyden, CRaC, and GraalVM, and how they can realistically influence the way applications are…
In meiner Präsentation "API Thinking: Ein Paradigmenwechsel im digitalen Zeitalter" erörtere ich die zunehmende Bedeutung von APIs in der modernen Software-Entwicklung. Ich beleuchte, wie durch API Thinking Geschäftsmodelle agil und skalierbar gestaltet werden können, und zeige anhand praxisnaher Beispiele, wie die Integration von APIs zur Optimierung von Prozessen führt. Darüber hinaus diskutiere ich, wie durch API Thinking neue Geschäftschancen entstehen, und gebe Einblicke in mögliche…
Henning (OO to the core) and Mike (ferociously FP) agree on all the fundamentals of software architecture, but when it comes to designing models, they can't seem to find common ground.
OO and FP folks like to congratulate themselves on how well they go together - and how OO languages are accreting one feature after another from the FP world.
Henning and Mike will highlight how OO and FP approaches to design differ, and offer possible approaches to unifying both for mutual gain and insight.
Targe…
Das Sicherstellen der Softwarequalität in Microservice-Architekturen ist eine echte Herausforderung: Unsere bewährten Ansätze skalieren nicht mehr für komplexe Systeme mit zahlreichen Komponenten.
Wir präsentieren unseren Ansatz, der die Softwarequalität in komplexen Microservice-Architekturen beherrschbar macht. Wir sammeln und visualisieren verschiedene Metriken an zentraler Stelle, setzen auf Alerting bei Anomalien und unterstützen damit unsere Teams, frühzeitig zu erkennen, wohin wir unsere…
Most current UI libraries provide great user experience with a vast of components. But when it comes to heavy customization and non-standard scenarios, especially for E-Commerce, they become hard to manage, scale or even slow down performance. How to create a UI library that provides users the most possible freedom in customizing components, while keeping our performance and scalability to the fullest? How much customization freedom is enough? That's what my talk is about.
Target Audience:…
Last year in open source, we saw the compliance threat shift from license violation to contract violation, we saw the rise of the bill of material as a purchasing requirement, and we saw the continued growth of source-available licenses. If you don't know what I'm talking about, you really need to attend, because your business is at risk if you don't understand these changes. In this annual talk, I will review the last year and speculate about what the future may bring.
Target Audience: Product…
During the talk, we'll dive into the historical context of Generative AI and examine their challenges. From legal compliance to fairness, transparency, security, and accountability, we'll discuss strategies for implementing Responsible AI principles.
It's important to note that the landscape for AI-driven products is still evolving, and there are no established best practices. The legislative framework surrounding these models remains uncertain, making it even more vital to engage in discussions…
Are Large Language Models (LLMs) sophisticated pattern matchers ('parrots') without understanding or potential prodigies that eventually surpass human intelligence? Drawing insights from both camps, we attempt to reconcile these perspectives, examines the current state of LLMs, their potential trajectories, and the profound impact these developments have on how we engineer software in the years to come.
Target Audience: Developers and Architects
Prerequisites: A basic understanding of Large…
Artificial Intelligence (AI) has become integral to software development, automating complex tasks and shaping this field's future. However, it also comes with challenges. In this talk, we explore how AI impacts current software development and possibilities for the future. We'll delve into AI language models in programming, discussing pros, cons and challenges. This talk, tailored to both supporters and skeptics of AI in software development, doesn't shy away from discussing the ethical…
Kubernetes ist omnipräsent. Entweder laufen die Anwendungen in Kubernetes oder sollen in Kubernetes laufen. Entwickler mögen sich jetzt denken "Aber was hat die Kubernetes-Infrastruktur mit mir als Entwickler zu tun?"
Dieser Vortrag gibt eine Kurzeinführung, was Kubernetes ist und aus welchen Komponenten es besteht. Beim Durchgehen der Komponenten und Konzepte steht die Sichtweise eines Entwicklers im Vordergrund. Am Ende nehmen die Zuhörer Good Practices anhand von Beispielen mit nach Hause.
Zi…
Warum reden Entwickler und Operator so oft aneinander vorbei?
Warum können sich viele Entwickler gar nicht vorstellen, wie die IT abseits ihrer JVM tickt?
Warum stoßen Entwickler auf Probleme, sobald es hardwarenaher wird?
Warum ist das Anbinden von Hardware für viele Entwickler ein Problem?
Warum versuchen viele Entwickler, alle Fehler mit dem Debugger in ihrer IDE zu finden?
Zielpublikum: Architekt:innen, Entwickler:innen, Projektleiter:innen
Voraussetzungen: Projekterfahrung als Entwickler…
High traffic during business hours, no traffic at night, weekends and vacations, multiple teams, and several staging environments - these characteristics of a typical enterprise application. Pay-as-you-go, "scale-to-zero" and managed services make serverless architectures appealing for enterprise applications.
On-premise, on the other hand, you get the maximum flexibility and full access to machines with less automation and so more plumbing.
I will compare both approaches with focus on…
Die digitale Barrierefreiheit nimmt Fahrt auf und ist ein absolutes Trendthema. Eigentlich ist dazu alles schon gesagt worden, es muss nur noch realisiert werden. Es ist entscheidend, Barrierefreiheit systematisch in Arbeitsabläufe von Designern und Entwicklern zu integrieren. Drei Hauptfragen stehen im Fokus:
Können wir Agilität nutzen, um die UN Sustainable Development Goals (SDGs) zu erreichen? Welche ergänzenden inneren Fähigkeiten können uns dabei helfen?
In dieser Session stellen wir Ideen vor, wie wir zu den SDGs beitragen können: in der Produktentwicklung, mit unseren Teams und Organisationen, aber auch in unserem Privatleben. Wir werfen einen Blick auf die Inner Development Goals (IDGs) und betrachten, wie sie unsere agilen Kompetenzen zur Erreichung nachhaltiger Ziele erweitern können.
Zielp…
Das Serverless-Paradigma existiert seit fast 10 Jahren. Und obwohl es für passende Szenarien extreme Vorteile mit sich bringen kann, trauen sich bisher nur wenige Cloud-Anwendungen, den Schritt Richtung Serverless zu gehen. Zu Recht?
Im Rahmen des Workshops wird ein komplexes Anwendungsszenario Schritt für Schritt aufgebaut und dabei in jedem Schritt ein Serverless-Pattern eingeführt und in seiner Motivation diskutiert. Darüber hinaus wird gezeigt, wie sich eine solche stark verteilte Anwendung…
Fachliche Komponenten in Code auszudrücken ist und bleibt eine fundamentale Herausforderung in Softwareprojekten. Der Workshop zeigt, wie mithilfe von Spring Modulith Java-Applikationen strukturiert werden können und diese Struktur kontinuierlich validiert werden kann. Des Weiteren werden verschiedene Formen der Interaktion zwischen Anwendungsmodulen diskutiert, insbesondere die Kompromisse einzelner Varianten, und wie Module isoliert und in Zusammenarbeit getestet werden können.
Max.…
Seit vielen Jahren ist es möglich, nebenläufig (mit mehreren Threads) zu programmieren. In Bezug auf wichtige konzeptionelle Details von Nebenläufigkeit gibt es bei Programmierern allerdings erhebliche Lücken.
Wer kennt "Out-of-order Updates" und "Spurious Wakeups"?
Was unterscheidet Prozess-Scheduling von Thread-Scheduling?
Am Beispiel von C++ gibt dieses Tutorial einen Überblick über die wichtigsten konzeptionellen Aspekte von Multi-Threading und Concurrency und zeigt, wie man in C++ mit ihnen…