Workshop: Schools of Test-Driven-Development
Not all TDD is the same. Over the years, developers have developed different styles and approaches. Some of them have a name and are described in detail, such as London or Chicago — the schools of test-driven development.
Here we consider seven different schools of TDD, which differ fundamentally in their methodology. Nevertheless, they are not mutually exclusive. In this workshop, you will have the opportunity to learn about the different schools and which approach is best suited in which context.
After a short introduction, we will try out the different approaches together in pair or mob programming. This way you will not only get to know the theoretical basics, but also practice the practical application.
From Vision to Code: Functional Domain Modelling
Modern collaborative methods such as EventStorming help to bring together subject matter experts and developers. Domain Modeling goes one step further and enables joint work directly on the code. In this live coding event you can watch and even participate directly on a practical example.
Our PO brings along the results of an EventStorming. You will get a short overview so you can pretend that you have been involved during the storming. The PO will than explain the requirements to the developer/modelling expert who models the domain according to your suggestions.
The result will be a model of the domain using a type system. We will demonstrate this using TypeScript, but the same approach can be applied using any language with a suitable type system.
Even non-programmers, such as our product owner, will be able to verify the model and provide feedback directly to the developer. The final model, which provides a clear understanding of the invariants and behavior of the system, can be used directly to begin actual implementation by developers. This is the power of functional domain modeling!
Progressive Enhancement with HTMX – working websites in the absence of JavaScript
What will happen if our users do not have working JavaScript in their browser? Many modern web applications would stop working properly, leaving non-technical users with no way to accomplish what they are trying to do.
Progressive enhancement presents itself as a pattern for gracefully degrading UX features in the absence of JavaScript, and delivering the full capabilities of modern websites when we have working JavaScript in our users’ browsers. Using HTMX as a framework with server-side rendering (SSR), and taking advantage of current HTML and CSS features, we create a fully functional, interactive application that works for all users in all situations. In addition, we will explore the integration of React or similar frameworks and modern web components with this approach. We will also look at other advantages, such as page rendering speed and size, compared to other solutions.
Sustainable web development — The what, why and how
Although we don’t see any dark fumes coming out of our computers, the use of IT comes at a significant environmental cost. The share of global IT greenhouse gas emissions was already equal to that of the aviation industry — even before the AI hype.
This talk will introduce you to the core concepts of sustainability in web development — what are the main drivers of emissions, how can emissions be measured and, of course, how to reduce them.
And even if you are not primarily interested in sustainability, you may be interested in the positive side effects of Green IT, for example on your provider bill or your website success.
Fluid typography (and its role in design systems)
Using a fun metaphor, Richard will take the audience on a journey from static to responsive web design through to fluid typography. You will learn what fluid typography means and he’ll show why its combination of type and spacing is so important to readers and users. You will see that fluid typography can be implemented easily in CSS, provided you have the right mindset. Most importantly you will learn how a fluid approach encourages designers and developers to share a common language, reduce design debt and simplify workflows. Finally he’ll show how fluid typography can be used and documented in a design system using real world examples.
Best of the worst – the top 5 most terrible JavaScript features
Browser, Browser an der Wand, wer hat die schlimmsten Features im ganzen Land? JavaScript natürlich!
Diese Session durchforstet die JavaScript- und DOM-Spezifikationen nach den schlimmsten Features aus JavaScripts langer Geschichte. Erfahren Sie, welche verkrustete Legacy-Features aus der Kreidezeit der Webstandards auch noch in der modernsten Chrome-Beta verfügbar sind, welche versteinerten Syntax-Unfälle weiterhin in alltäglichen Datenstrukturen lauern und mit welchen absurden Hacks sowohl angegraute Browserkrieg-Veteranen als auch die React-Kids von der Bleeding Edge zu Werke gingen und gehen.
Denn die JavaScript-Features aus der Hölle haben nicht nur reichlich Gruselfaktor zu bieten, sondern sind auch lehrreich, wissenswert und manchmal der einzige Weg zur Problemlösung. Erfahren Sie, welche Fehlgriffe aus der Ursuppe noch heute Cargo-Cult-Patterns zur Folge haben, warum React Promises statt Exceptions durch die Gegend wirft und sehen Sie sich eine ganze Menge Code an, den sie (hoffentlich) so nirgends anders zu sehen bekommen.
4 Critical Antipatterns in React/TypeScript Development (And How We Overcame Them)
In this talk, I will delve into four critical antipatterns that we encountered in our React/TypeScript development process. Each section will outline a specific bad practice, the problems it caused, and the strategies we employed to address it. We’ll discuss the pitfalls of overly flexible props, the misuse of objects in dependency arrays, the drawbacks of using array indices as keys, and the unnecessary overuse of useEffect. This presentation aims to shed light on these common but often overlooked mistakes, providing real-world solutions to enhance the performance and maintainability of your applications.
Write once, use anywhere: Framework agnostic Design Systems with Web Components
Es gibt sie da draußen zu Hauf. Nein die Rede ist nicht von Frontend-Frameworks, sondern vorgefertigten Component Libraries wie „Angular Material“, „Ionic“, „MUI“, „TUI“, „MudBlazor“ uvm. Sie alle versuchen uns das Leben als Entwickler einfacher zu machen und uns wiederverwendbare Komponenten zu liefern. Je nach Library sind sie Framework ab- oder unabhängig, mal besser, mal schlechter zu customizen. Deshalb ist es im Enterprise-Umfeld nicht selten, dass sich Firmen dazu entscheiden eigene Libraries nach ihren Bedürfnissen zu kreieren. Sollen dann auch noch unterschiedliche Frontend-Frameworks oder CMS Systeme damit bedient werden können, kommt man nicht um sie herum. Web Components. Sascha Lehmann von Thinktecture zeigt Ihnen in dieser Session wie Sie mit Hilfe von „Lit“ hochgradig anpassbare und leichtgewichtige Web Components bauen können, auf welche Fallstricke Sie bei der Architektur der Library achten müssen, wie Sie dabei von etablierten Libraries lernen können und die höchstmögliche Kompatibilität erreichen indem Sie die API’s nutzen die der Browser uns gibt.
View Transition API and scroll-driven animations: game changers for hybrid app development
Durch die rasend schnelle Weiterentwicklung von Web-APIs (Stichwort Projekt Fugu) konnte die Lücke, die zwischen Progressive Web Apps (PWA) oder hybriden Entwicklungsansätzen und den nativen Apps bestand, mehr und mehr geschlossen werden. Auch visuell sind sie kaum noch von nativen Apps unterscheidbar. Jedoch wenn es um das Thema Animationen geht, waren native Apps durch die Verfügbarkeit nativer Animations-APIs immer einen Schritt voraus. Komplexe Animationen wie Container Transforms waren bisher ohne immensen Aufwand in Web-Apps praktisch nicht zu realisieren.
Richtig. Sie WAREN es.
Auch diese Lücke kann nun dank der neuen View Transition API und der Scroll-Driven Animations geschlossen werden. Und das beste daran: Alles fast ausschließlich per CSS.
Neugierig geworden? Dann gibt ihnen Sascha Lehmann von Thinktecture einen Überblick über die neuen APIs, wie Sie sie effektiv in ihrem Projekt einsetzen und wo ihre Grenzen liegen.
Reimagining Data Presentation: Leveraging Browser Capabilities for Digital Twins
From a simple electronic device to a production line and even a building, everything can be digitally represented. The world is full of these digital twins, and this opens up enormous opportunities for us. Let’s dive together into the digitization of the real world. In this talk, we will explore the world of data and take a look at how we can process and present it. Often, people think of data grids in this context, but that doesn’t have to be the case. The browser offers many more possibilities: SVG and the canvas element with its 2D and 3D contexts. Using the concrete example of a digital twin for a building, we will examine the various ways we can present data and how we can provide our users with the opportunity to interact. Libraries like D3.js or Three.js will be used for this purpose.