Impressionen aus der Praxis: Funktionale Ansätze in JavaScript
Das Thema “Funktionale Programmierung” ist umfangreich und nur schwer in einem Talk abzudecken. Allerdings lässt sich eines machen: in praktischen Auszügen aus echten Projekten zeigt Oliver, was er mithilfe funktionaler Ideen besonders effizient umsetzen konnte. Es gibt übersichtlich gestaltete Algorithmen, hilfreiche Laufzeittypisierung für wiederverwendbare Bibliotheken und selektive Einbettung von Rescript-Code. Achtung: es besteht die Gefahr, dass Sie als Zuschauer Interesse an funktionaler Programmierung entwickeln und manche objektorientierte Praxis als nutzlos erkennen. Sagen Sie nicht, wir hätten Sie nicht gewarnt!
Next, Nest, Nuxt… Nust?
By the time this talk is over, someone will have invented a new JS framework. Thankfully it’s probably not gained much popularity yet. In the meantime, Express.js is no longer the framework with the highest satisfaction rate, Next.js and frameworks recently took the top spots in the latest StateOfJS survey.
In this session we’ll compare the big frameworks of today, check out their features, what they are missing and consider their different use-cases. By the end of the talk, there might be a new framework, but at least you’ll know when and where to use the existing ones.
Reflection in TypeScript
Typen sind zur Laufzeit weg. Das lernen wir schon von Tag 1 an, wenn wir uns mit TypeScript beschäftigen. Je nach Hintergrund ist diese Einschränkung sehr schmerzhaft, gerade wenn wir aus Ökosystemen wie der C# oder der Java-Welt kommen, wo Bibliotheken, die auf Reflection basieren gang und gäbe sind.
Im Laufe der Zeit hat die TypeScript-Community dennoch viele Wege gefunden, wie wir Konstrukte zwischen der Typ- und der Werte-Welt hin und her transportieren können. Begleitet mich auf einer Reise durch die Zeit und lernt mit mir, wozu TypeScript noch alles fähig sein kann.
Zero-dependency Web Components
Web Components sind als wiederverwertbare UI-Komponenten in aller Munde, doch wie wiederverwertbar, stabil und wartungsfreundlich ist etwas, dessen innerer Aufbau von Frameworks und Libraries abhängt? Genau gar nicht!
Die Gute Nachricht lautet: Es geht auch – wenn nicht gar besser – ohne Frameworks und Libraries! Dieser Workshop weist Ihnen den Weg heraus aus dem Dependency-Gulasch moderner Webentwicklung und hin zu Zero-Dependency Web Components, gebaut mit puren Webstandards.
Neben argumentativem Rüstzeug gegen den Dependency-Wahn versorgt sie dieser Workshop mit dem theoretischen und praktischen Wissen rund um Standard-basiertes Web-Component-Design. Lernen Sie nicht nur alle relevanten Browser-APIs rund um Web Components kennen, sondern erfahren Sie auch, wie Sie Komponenten gestalten können, die in Sachen API und Robustheit nativen HTML-Elementen in nichts nachstehen. Von API-Basics bis zu HTML-Element-Design-Philosophie bleibt kein Aspekt von Zero-Dependency Web Components unbeleuchtet.
Type-Level Fizzbuzz
Ein neuer Tag, ein neues Bewerbungsgespräch und mal wieder die selbe Aufgabe: Implementieren Sie FizzBuzz!
Anstatt in einer typischen Programmiersprache die Regeln rund um Zahlen, Schleifen, Bedingungen und Modulo-Operationen zu implementieren, können wir uns auch einfach mal ein Späßchen gönnen: Wie würde euer Gegenüber wohl reagieren, wenn ihr FizzBuzz nur mit TypeScript-Generics, also komplett auf Typ-Ebene implementiert?
Was zunächst als Spaß beginnt, wird schnell zur fortgeschrittenen Übung rund um das mächtige Typsystem von TypeScript, bei der wir Funktionen wie bedingte Typen, rekursive Typen, Tupel-Typen und viele weitere geschickt kombinieren müssen.
TypeScript-Typannotationen als Programmiersprache
TypeScript-Typannotationen sind eine eigene Programmiersprache! Typen sind Werte, Generics sind Funktionsparameter und TypeScript als Ganzes ist nicht nur ein wenig zusätzliche Syntax, sondern eine komplette in JavaScript eingebettete DSL, die zu verstehen sich lohnt. TypeScript-Typen nicht nur zu schreiben, sondern richtiggehend zu programmieren ist eine Superkraft, in die dieser Talk Sie einweiht! Mit nur wenig Umdenken und ein paar eher unbekannten TypeScript-Features können auch Sie komplexe Typ-Beziehungsgeflechte aus wenigen basalen Regeln herleiten. Dieser Talk führt durch die Programmierung eines Message-Bus-Systems und verwendet dabei fortgeschrittene TypeScript-Features wie Mapped Types, Discriminated Unions und Conditional Types, um den Message Bus mit wenigen, aber smarten Typ-Definitionen typesafe zu machen. Dabei lernen wir Typannotationen als eigene Programmiersprache kennen und bekommen eine gänzliche neue Perspektive auf den Umgang mit TypeScript-Typen eröffnet.
UI5 + wdi5 – Framework Entwicklung im Spannungsfeld “Enterprise”, Open Source und Zukunftstechnologien
UI5 (https://openui5.org) ist bei SAP strategisch gesetzt zur Erstellung von Webanwendungen, wdi5 (https://js-soft.github.io/wdi5/) als zugehöriges Tool entsprechend für end-to-end Tests.
Beide müssen sowohl SAP Standards genügen (Stichworte z.B. Rückwärtskompatibilität und Barrierefreiheit), aber auch technologisch auf Trends und (Browser-) Entwicklungen reagieren. Die Zusammenarbeit mit der Community in Form von Erstellung und Wartung von Open Source Software Komponenten ist hierfür ein Schlüssel.
Der Vortrag zeigt Techniken, Tools und Maßnahmen, derer sich UI5 und wdi5 bedienen, um mit Ansprüchen an Geschäftssoftware umzugehen, aber gleichzeitig Offenheit gegenüber der Entwicklercommunity zu wahren. Sodass die Kooperation vorteilhaft für sowohl SAP, wie auch die Community, bleibt.
Extrahieren von Micro-Frontends aus einer monolithischen Frontend-Anwendung
Das Konzept von Microservice-Architekturen in der Softwareentwicklung gewinnt zunehmend an Aufmerksamkeit. Diese Architekturen entstehen oft aus dem Refactoring monolithischer Anwendungen. Viele Microservice-Architekturen kümmern sich wenig um das Frontend beziehungsweise um die Benutzeroberfläche. Oft führt die Zerschlagung zu vielen kleinen, lose gekoppelten Diensten, die in einem weiterhin monolithischen Frontend zusammengefasst sind. Mit einer Micro-Frontend-Architektur können diese lose gekoppelten Systeme systematisch/dynamisch in einer Benutzeroberfläche zusammengeführt werden. Ich gebe in diesem Vortrag einen Überblick über verschiedene Migrationsansätze zu Micro-Frontend-Architekturen und zeige einen Migrationsansatz am Beispiel des Software-Visualisierungsprogramms ExplorViz.
Ab Jetzt deine Anwendung testen: Einführung in Angular Unit-Testing Techniken
Beim Erstellen von erfolgreiche Angular Anwendungen, spielt das Testen eine sehr wichtige Rolle.
Mit den Werkzeugen, die das Framework bietet können wichtige Codeabdeckungen erreicht werden.
In diesem Workshop erfährst du über die Motivation und Gründe für das Testen. Zudem wird einen
tiefen Einblick in das Unit-Testing von Angular An gegeben sowie Framework-agnostische Teststrategien vorgestellt. Die Kombination aus Theorie und praktische Übungen helfen dabei
verschiedene praxisnahe Szenarien zu testen.
Nx Monorepo: Frontend-Architekturen effizienter entwickeln und visualisieren
Die Art des Projekts, an dem man arbeitet, wirkt sich auf die Projekt Entscheidungen aus.
Komplizierter wird es, wenn man an mehreren zusammenhängenden Projekten arbeitet.
Wie verändert dies die Verzeichnisstrukturen des Projektes? Wie sollte der Code zwischen Projekten geteilt werden? Nx ist ein Tool, das darauf abzielt, diese Probleme zu lösen. Wir gehen in diesem Vortrag die Kernfunktionalitäten von Nx durch, sowie die Vorteile und Herausforderungen die sich aus dem Einsatz von Monorepos im allgemeinen und Nx im besonderen ergeben können.