Working Draft

Wöchentlicher Podcast für Frontend Devs, Design Engineers und Web-Entwickler:innen

Unterstützung

Wir optimieren unser Audio mit Auphonic, wo ihr uns Processing-Time kaufen könnt! Alternativ findet Ihr uns auch auf Patreon:

Become a Patron!

Werben bei Working Draft!

Mit zwölfjähriger Geschichte und über 5.000 Downloads pro Folge ist Working Draft der etablierteste Podcast für Webentwickler im deutschsprachigen Raum. Wenn ihr neue Entwicklerkollegen sucht oder ein Produkt für Webentwickler anbietet, schreibt uns unter sponsoring@workingdraft.de.

Revision 670: Neuerungen in WebKit

15. Juli 2025 | Keine Kommentare

In dieser Folge widmen wir uns erneut ganz WebKit – und dem, was sich dort aktuell alles tut und in den letzten Monaten getan hat. Schepp und Peter diskutieren neue Features, (alte) Probleme sowie APIs, die bereits in Safari gelandet sind oder bald landen werden.

Schaunotizen

[00:01:09] Google I/O 2025 & CSS-only Carousels
Zum Einstieg beklagen wir wie themenarm die Google I/O dieses Jahr für uns Frontend-Menschen war. Das einzig wirklich spannende Ding waren die Vorstellung der CSS-Primitiven für den Bau von Karussells. Allerdings steckt in dem Thema noch sehr viel Arbeit an der Barrierefreiheitsfront, wie Sara Soueidan dargelegt hat. Der Rest bestand aus eilig herbei-geprototypeten Demos.
[00:19:34] Multipage View Transitions
Mit nur zwei Zeilen Code aus dem WebKit-Blogpost lassen sich flüssige Seitenübergänge realisieren. Wir berichten von unseren eigenen Versuchen mit View Transitions und verweisen auf die Library ramjet, die ähnliche Effekte wie die View Transitions schon seit zehn Jahren ermöglicht.
[00:25:46] (Root) Line-Height Units: lh/rlh
WebKit führt neue Einheiten für die Zeilenhöhe ein, die konsistentere Text-Layouts erlauben. Wir schweifen an dieser Stelle kurz ab und sprechen darüber, wie das CSS Typed OM funktioniert.
[00:29:24] margin-trim
Mit margin-trim lassen sich über den Rand ragende Margins von Kind-Elementen abschneiden, was bestimmte Layouts gegenüber der :first-child/:last-child-Technik deutlich robuster umsetzbar werden lässt.
[00:33:52] text-wrap: pretty
Das neue Umbruch-Verhalten text-wrap: pretty sorgt für elegantere Zeilenumbrüche und optimierte Worttrennung. Die WebKit-Menschen haben es aber nicht dabei belassen, mit Chrome nachzuziehen, sondern haben noch kräftig „Gold-Plating“ betrieben ‐ mit sehenswertem Ergebnis! Wem das nicht reicht, der kann in Zukunft vielleicht auf Machine-Learning zurückgreifen, um Text nach seinen Vorstellungen zu formatieren, wie es jemand in diesem Video namens „Badness 0“ demonstriert.
[00:35:20] WebKit-Bug bei Ligaturen
So stark WebKit allerdings bei Typografie sonst ist, bei einer Sache verkackt er hart: Bei der Berechnung der Laufweite von Ligaturen. Ligaturen sind eine fantastische Sache und ermöglichen es, Fonts regelrecht zu programmieren. Schrift-Entwicklerin Ulrike Rausch bildet hier die Speerspitze mit ihren „Liebe“-Fonts und dem Font „Liebe Heide“ im Speziellen. Ein wenig in das Thema eingetaucht ist Schepp neulich auch, als er mit Hilfe eines SVG und OpenType.js (master Branch) eine Ligatur in eine Schrift eingebaut hat, welche alle Vorkommen eines bestimmten Wortes im Text-Rendering automatisch durch die SVG-Grafik ersetzt. Diese Grafik läuft allerdings weiter als der damit ersetzte Text. Chrome und Firefox bemerken das und passen den Textfluss entsprechend an. Nur WebKit leider nicht, wo nachfolgender Text rechts in die Grafik ragt oder ohne Abstand an der Grafik klebt. Text Rendering Hates You!
[00:56:35] Neue Farb-Features
Safari kennt nun die (neue) contrast-color()-Funktion, welche automatisch eine kontrastreiche Schriftfarbe basierend auf einer Input-Farbe zurückgibt. Dabei beschränkt sie sich derzeit noch auf die Rückgabe von Weiß oder Schwarz. Wir sprechen über die bewegte Vergangenheit dieser Funktion, die eigentlich mal als color-contrast()-Funktion das Licht der Welt erblicken sollte, und was die Web Accessibility Initiative (WAI) und die Farbkontraste-Berechnung nach APCA mit den aktuellen Limitationen zu tun haben. Das Kontraste-Thema führt uns auch zu Lighthouse und seinen Barrierefreiheits-Checks, die viele Problemfälle nicht erkennen (können). Aus dieser Tatsache hat Manuel Matuzović sogar ein ganzes Projekt gemacht: Building the most inaccessible site possible with a perfect Lighthouse score (hier als Video).

Ebenfalls neu ist ein Upgrade des Color-Inputs, welcher jetzt die HTML-Attribute colorspace sowie das boolsche alpha versteht. Wir finden das gut, allerdings sind wir der Meinung, dass insbesondere die neuen Farbräume mit Bedacht eingesetzt werden sollten, weil eine ganze Kette von Erfordernissen für einen erfolgreichen Einsatz erfüllt sein muss. Hier stößt man aber auf das Problem, dass HTML selbst keine Möglichkeit zum Feature-Testen und des Alternativ-Pfads kennt, anders als JavaScript oder CSS. Das Problem hat man genauso bei dem relativ neuen switch-Attribut bei Checkbox-Inputs. Schepp hat das Problem in der Praxis darüber hinaus auch bei Hauptmenüs, die auf Desktop-Geräten einfache <nav>-Elemente sein sollten, auf Mobile aber <dialog>-Elemente, wenn sie sich UI-mäßig in Offcanvas-Menüs umwandeln. Peter berichtet, wie er Menüs unkompliziert (aber semantisch grenzwertig) mit dem <details>-Element auf- und zuklappen lässt. Für solch einen Ansatz spielt einem auch das neue ::details-content-Pseudo-Element in die Karten.

[01:15:42] Declarative WebPush
Mit der Declarative Web Push API lassen sich Push-Nachrichten in Zukunft ganz ohne (schwer zu handhabende) Service Worker konfigurieren. Juhuuu! Wer dennoch lieber Service Worker verwenden möchte, dem empfehlen wir zumindest den Einsatz der Library Workbox, um es erträglich zu machen.
[01:18:51] SVGs d-Property in CSS
WebKit erlaubt nun endlich als letzter Browser im Bunde, das d-Attribut von SVG-Pfaden direkt via CSS zu verändern. Auf diesen Tag hat Peter sehr lange hingefiebert ‐ und sich anderweitig beholfen! Schepp bringt das auf die Idee, ob die Custom Highlight API nicht auch ein guter Kandidat für Peters Problem hätte sein können.
Transkript

Revision 668: KI im Alltag: Werkzeug, Hype oder Risiko?

1. Juli 2025 | Keine Kommentare

In dieser Folge reden wir mit Jürgen Geuter (Web / Mastodon / LinkedIn), besser bekannt als „Tante“, darüber, wie KI den Alltag von Entwickler:innen verändert – oder eben auch nicht. Zwischen Pragmatismus, Kritik und ein paar Zukunftsfragen schauen wir gemeinsam auf den aktuellen Stand: Was bringt der Einsatz von KI in der Softwareentwicklung tatsächlich, was ist Wunschdenken – und wo wird’s vielleicht sogar gefährlich?

Schaunotizen

[00:004:21] KI in der Praxis: Wo hilft sie – und wo (noch) nicht?
Wir sprechen darüber, was KI für Entwickler:innen heute leisten kann – jenseits aller Visionen. Tante gibt Einblick in seine Erfahrungen mit Tools wie GitH ub Copilot und reflektiert, wie sehr sie wirklich in den Entwicklungsprozess eingreifen. Spoiler: Für viele bleibt KI eher eine Ergänzung als ein Ersatz.
[00:30:11] Der neue Alltag: Produktivität, Frust und neue Abhängigkeiten
Auch wenn manche mit KI produktiver arbeiten: Wir beleuchten, wo sie auch Probleme schafft – etwa durch falsche Sicherheit, fehlerhafte Vorschläge oder ein fragiles Vertrauen in Tools, die sich oft wie Blackboxes verhalten.
[00:00:00] KI als Risikofaktor – von Bias bis Fehlnutzung
Tante erklärt, warum es bei KI nicht nur um Code geht, sondern auch um Verantwortung: Wer trägt die Konsequenzen für Vorschläge, die sich später als falsch herausstellen? Und was passiert, wenn man sie unreflektiert übernimmt?
[00:52:55] Arbeitswelt im Wandel: Was bleibt vom Beruf, wenn KI immer mehr übernimmt?
Wird die Rolle von Entwickler:innen verschwinden – oder nur transformiert? Wir diskutieren, wie sich Erwartungen, Lernwege und Arbeitsabläufe verändern könnten. Und welche Kompetenzen in Zukunft wichtiger werden als Syntaxwissen.

Links

tante.cc
Jürgens Blog mit Essays zu Technologie, Gesellschaft und digitaler Verantwortung.
Transkript

Revision 664: TYPO3-Extensions bauen mit AI

3. Juni 2025 | Keine Kommentare

Extensions für TYPO3 entwickeln – klingt erstmal nach Handarbeit. Aber was passiert, wenn man gängige KI-Tools wie ChatGPT oder Codegenerierungsdienste an den Prozess lässt? Martin Helmich hat’s ausprobiert – und berichtet von den praktischen Herausforderungen, Erfolgen und Fallstricken beim Einsatz von KI im TYPO3-Kontext.

[00:01:36] TYPO3-Extensions bauen mit AI
Martin erklärt, wie er ein KI-gestütztes Projekt aufgesetzt hat, das TYPO3-Extensions auf Basis von Prompts generiert. Ziel war es nicht, produktiven Code zu erzeugen, sondern auszuloten, was mit heutigen Tools bereits möglich ist – und wo man mit durchdachten Prompts tatsächlich Zeit und Struktur gewinnt.

Wir diskutieren, welche Aufgaben sich für KI besonders eignen – z. B. die Generierung von TCA-Definitionen, Sprachdateien oder Konfigurationsklassen – und wie sich generierter Code später weiterverwenden lässt. Dabei wird klar: Ohne ein tiefes Verständnis des TYPO3-Ökosystems bringt die beste KI wenig.

Ein spannender Punkt: Wie lassen sich Prompt-Vorlagen standardisieren? Könnte man daraus ein öffentliches Tool bauen, das TYPO3-Entwicklung beschleunigt – ohne dass es gleich „AI-first“ wird?

Daneben geht’s um die Frage, wie man mit Blackbox-Code umgeht, der nicht aus dem Editor kommt, sondern aus einem Prompt. Und wie viel man einer KI zutrauen will, wenn es nicht nur um technische Korrektheit, sondern auch um konzeptuelle Entscheidungen geht.

Zum Schluss wagen wir noch einen kleinen Ausblick: Wo geht das hin – in TYPO3, aber auch allgemein im Web-Stack? Und was braucht es, damit KI bei der Extension-Entwicklung mehr wird als nur ein Gimmick?

Links

TYPO3 Association
Martin ist dort im Vorstand aktiv
Smart Extension Builder von Mittwald
KI-gestütztes Tool zum Generieren von TYPO3-Extensions
Dify
Tool zum Erstellen eigener KI-Anwendungen – als Backend für Martins Projekt im Einsatz
Rector
Automatisiertes Refactoring-Tool für PHP
WebDev Arena
Plattform zum Vergleichen von KI-Modellen beim Webdesign – man gibt einen Prompt ein und sieht, wie verschiedene Modelle daraus eine Website bauen (erwähnt in Front-End Fire #94).
Transkript

Revision 663: Agentic AI – was kommt nach Prompting?

27. Mai 2025 | Keine Kommentare

Schon wieder eine neue Buzzword-KI? Nicht ganz. In dieser Folge sprechen wir mit Robin Böhm über Agentic AI – ein Konzept, das gerade massiv Fahrt aufnimmt. Statt auf einen Prompt zu warten, werden KI-Agenten selbst aktiv: Sie analysieren Aufgaben, planen Schritte und setzen diese eigenständig um. Was bedeutet das für Entwickler:innen, Tools – und letztlich für uns als Nutzer:innen?

Schaunotizen

[00:01:36] Agentic AI
Robin gibt einen praxisnahen Überblick: Was macht eine KI „agentisch“? Wie wird festgelegt, was ein Agent darf – und was nicht? Wir steigen ein mit einem technischen Abriss der Konzepte, die aktuell unter dem Schlagwort Agentic AI diskutiert werden: Fähigkeiten, Kontrollinstanzen, Kontextverwaltung und mehr.

Dabei geht es auch um Frameworks wie LangChain, den Umgang mit JSON-Kommandostrukturen, und um frühe Ansätze für Protokolle, mit denen Agenten sich gegenseitig über ihre Fähigkeiten austauschen können. Robin vergleicht den aktuellen Stand mit „Super Nintendo-Level“ – was aber nicht heißt, dass das Ganze ungefährlich wäre. Denn die nächste Iteration ist vielleicht nicht weit entfernt.

Wir diskutieren, wie Agentic AI bereits heute in Projekten auftaucht, wo es echte Automatisierungsvorteile gibt – und wo wir dringend Grenzen ziehen müssen. Besonders spannend wird es, wenn Robin beschreibt, wie sich unsere Erwartungen an „Tools“ verändern: Weg vom klassischen Button-Klick, hin zur Zieldefinition – und der Agent übernimmt.

Am Ende steht die Frage: Wie behalten wir als Entwickler:innen die Kontrolle – und wie gestalten wir diese Systeme so, dass sie nicht nur mächtig, sondern auch nachvollziehbar und verantwortungsvoll sind?

Keine Schaunotizen

LangChain
Ein populäres Framework für agentenbasierte KI-Anwendungen – bringt Tools, Speicher und Entscheidungslogik zusammen.
ReAct Prompting
Ein Konzept, das Denk- und Aktionsschritte kombiniert – oft Basis für agentisches Verhalten bei LLMs.
Transkript

Revision 661: SelfHTML wird 30 – ein Web-Urgestein feiert Geburtstag 🥳

13. Mai 2025 | Keine Kommentare

SelfHTML gehört zu den ganz Großen der deutschsprachigen Weblandschaft – und das seit 1995. Wer sich in den Nullerjahren HTML, CSS oder JavaScript beigebracht hat, ist an dieser Seite kaum vorbeigekommen. Grund genug, dieses Jubiläum mit einer eigenen Folge zu feiern!

In dieser Revision spricht Schepp mit Matthias Scharwies – aktiver Maintainer, Mitgestalter der Community und einer der Menschen, die SelfHTML bis heute weiterentwickeln. Wir sprechen über die Geschichte, die Gegenwart und die Zukunft einer der traditionsreichsten Dokumentationen rund ums Web.

Schaunotizen

[00:01:12] SelfHTML wird 30!
Matthias erzählt, wie SelfHTML in den 90ern entstanden ist, wie es zu einem Fixpunkt für Web-Einsteiger:innen wurde und welche Meilensteine das Projekt seitdem erlebt hat. Vom klassischen HTML-Handbuch bis zum heutigen Community-Wiki – vieles hat sich verändert, aber der Geist ist geblieben.

Wir reden darüber, wie sich das Projekt über die Jahre hinweg geöffnet hat, wie Beiträge organisiert sind, wie man selbst mitmachen kann – und warum das Forum nach wie vor ein guter Ort ist, um Fragen zu stellen. Auch spannende Randgeschichten aus der Redaktion kommen zur Sprache.

Ein Highlight im Jubiläumsjahr ist das SelfHTML-Treffen 2025 in Mannheim, das als Unconference stattfindet. Matthias gibt einen Ausblick darauf, was dort geplant ist, warum sich ein Besuch lohnt – und wie viel Motivation und Energie aus solchen persönlichen Begegnungen entstehen kann.

Natürlich schauen wir auch nach vorn: Was fehlt aktuell? Wie lassen sich neue Webstandards wie „Open UI“ einbauen? Und wie bleibt man bei einem so gewachsenen Projekt überhaupt handlungsfähig? Matthias gibt Einblicke in Tools, Arbeitsweisen und den pragmatischen Umgang mit Legacy-Strukturen.

Links

SelfHTML Wiki
Die aktuelle Community-gepflegte Version der SelfHTML-Dokumentation – mit allem, was man über HTML, CSS und JavaScript wissen sollte.
Das SelfHTML Forum
Der Diskussionsbereich für alle, die Fragen haben oder mitdiskutieren wollen – seit Jahren aktiv und gut moderiert.
SelfHTML-Treffen 2025 in Mannheim
Das Community-Event zum 30. Jubiläum: eine Unconference, bei der sich die Szene trifft, diskutiert, plant – und feiert.
Can I use
Ein beliebtes Tool, das in der Folge erwähnt wird – hilfreich, um herauszufinden, welche Webfeatures in welchen Browsern funktionieren.
Open UI
Ein Community-Projekt zur Standardisierung von UI-Komponenten im Web.
Transkript

Revision 660: PHP im Jahr 2025 – Ökosystem zwischen Kontinuität und Wandel

7. Mai 2025 | Keine Kommentare

PHP ist eine dieser Sprachen, die man leicht unterschätzt – und die trotzdem nicht weggeht. Im Gegenteil: Sie hat sich über Jahrzehnte hinweg weiterentwickelt und ist heute das Fundament unzähliger produktiver Anwendungen. Grund genug für uns, einen genaueren Blick auf den Status quo und die Entwicklung dahinter zu werfen.

Für diese Revision haben wir uns einen der zentralen Köpfe der PHP-Welt eingeladen: Sebastian Bergmann, Erfinder von PHPUnit, langjähriger Open-Source-Maintainer und pragmatischer Beobachter des Ökosystems (Web / LinkedIn / Mastodon). Gemeinsam mit Schepp und Hans spricht er über Technologie, Verantwortung und das Leben als jemand, der seit Jahrzehnten mit und an PHP arbeitet.

Schaunotizen

[00:01:03] PHP im Jahr 2025
Wir starten mit Sebastians Weg in die PHP-Welt: Wie kam es zur Entstehung von PHPUnit? Was war der Stand der Dinge damals – und warum hat sich Sebastian überhaupt entschlossen, ein eigenes Test-Framework zu bauen? Wir sprechen über die Anfangsjahre von PHP, über JUnit als Vorbild und den wilden Westen früher PHP-Projekte.

Danach werfen wir einen Blick auf das Jetzt: Wie steht es um das Vertrauen in PHP als Sprache? Welche Rolle spielen moderne Tools wie Composer, Frameworks wie Symfony oder Laravel – und was macht eigentlich die PHP Foundation genau? Sebastian schildert, wie sich das Ökosystem professionalisiert hat, aber an vielen Stellen trotzdem auf Freiwilligenarbeit beruht.

Natürlich reden wir auch über Tests: Was bedeutet gutes Testing im Jahr 2025? Wie sieht das Zusammenspiel mit Tools wie PHPStan oder Psalm aus? Und wie geht man mit Legacy-Code um, der eigentlich nie für Tests gedacht war? Sebastian teilt Einblicke aus seiner Beratungsarbeit mit Teams und erklärt, wie man pragmatisch Qualität sichert.

Ein wichtiger Teil des Gesprächs dreht sich um Open Source im Dauerbetrieb: Was bedeutet es, ein Projekt wie PHPUnit über Jahrzehnte hinweg zu pflegen? Wie hält man durch? Welche Erwartungen kommen von außen – und was kann die Community beitragen, damit das Ganze nicht auf Einzelpersonen lastet?

Zum Schluss schauen wir nach vorn: Welche Entwicklungen im PHP-Core lohnen sich im Auge zu behalten? Was fehlt der Sprache noch? Und was wünscht sich Sebastian von der nächsten Generation an Entwickler:innen, die vielleicht bald ihre ersten Pull Requests schreiben?

Links

PHPUnit
Das führende Test-Framework für PHP – entwickelt und gepflegt von Sebastian Bergmann seit über 25 Jahren.
PHP Foundation
Die Stiftung hinter der aktiven Weiterentwicklung der Sprache. Hier arbeiten festangestellte Entwickler:innen am PHP-Core.
Composer
Das Dependency-Management-Tool der Wahl für PHP – unerlässlich für moderne Projektstrukturen.
Symfony
Ein weitverbreitetes PHP-Framework mit Fokus auf Wiederverwendbarkeit, Konventionen und Skalierbarkeit.
Laravel
Ein modernes Full-Stack-Framework für PHP mit einem großen Ökosystem und starker Community.
PHPStan
Ein statischer Code-Analyzer, der potenzielle Fehler in PHP-Projekten schon zur Entwicklungszeit erkennt.
Psalm
Ein weiteres beliebtes Tool zur statischen Analyse von PHP-Code – mit Fokus auf Type Safety.
Transkript

Revision 659: Meetings, Memos, Mindset: Büro-Lifehacks für Webdevs

29. April 2025 | Keine Kommentare

In dieser Revision ist Melanie Patrick zu Gast – und bringt Skills mit, die man im Webdev-Alltag gerne mal unterschätzt: Organisation, Struktur, Planung und Kommunikation. Kurz: Life Hacks aus dem Büroalltag, die jede:r gebrauchen kann!

Schaunotizen

[00:01:14] Meetings, Memos, Mindset: Büro-Lifehacks für Webdevs
Wir sprechen über Tools und Tricks, die das Chaos im Kopf und auf dem Desktop minimieren – von einfachen Backups bis hin zu cleveren Ablagesystemen. Melanie erzählt, wie man sich in stressigen Situationen selbst austrickst, wie man Meetings effizient gestaltet und warum man auch als Entwickler:in etwas von der „Sekretärinnen-Schule“ lernen kann.

Nebenbei geht’s um klassische Software-Fails, digitale To-do-Listen, Passwort-Strategien und wie man durch gute Vorbereitung im Team einfach mehr Ruhe reinbringt. Ein Gespräch über Verantwortung, Vertrauen, Teamplay – und warum gute Organisation nichts mit Kontrollzwang zu tun hat.

Transkript

Revision 657: Resumable Uploads

15. April 2025 | Keine Kommentare

In dieser Revision sprechen wir mit Marius Kleidl (Web / LinkedIn / Mastodon / GitHub), Webentwickler bei Transloadit und Mitwirkender am Open-Source-Projekt TUS, über das Thema Resumable Uploads – also Datei-Uploads, die fortgesetzt werden können, wenn zwischendurch mal die Verbindung abraucht oder das Tab versehentlich geschlossen wird.

Schaunotizen

[00:01:13] Resumable Uploads
Wir starten mit der Frage, warum klassische Upload-Methoden im Web oft unzuverlässig sind – vor allem bei großen Dateien wie Videos. Gerade bei instabilen Verbindungen oder auf Mobilgeräten ist Frust vorprogrammiert: Einmal abbrechen heißt meistens von vorne anfangen. Mit Resumable Uploads gehört das der Vergangenheit an. Stattdessen kann der Upload pausieren, später fortgesetzt werden – ganz ohne Datenverlust.

Im Zentrum der Folge steht TUS, ein Open-Source-Protokoll für Resumable Uploads, das Marius mitentwickelt. Wir reden über die Entstehung des Projekts, die technischen Grundlagen und wie man TUS in eigene Anwendungen integriert – sei es in Node.js, Go oder mit vorhandenen Client-Libraries. Besonders spannend: Die Spezifikation wird derzeit mit der IETF abgestimmt, mit dem Ziel, Resumable Uploads langfristig als offiziellen HTTP-Standard zu etablieren.

Marius gibt uns außerdem einen Einblick in die Community-Arbeit hinter TUS, den Beitrag anderer Open-Source-Projekte und wie Entwickler:innen durch eigene Implementierungen zur Verbesserung beitragen können. Wir streifen Themen wie Caching, Storage-Backends und was eigentlich alles im Hintergrund passieren muss, damit so ein Upload wirklich „resumable“ ist.

Natürlich kommen auch die praktischen Fragen nicht zu kurz: Was muss man beachten, wenn man Resumable Uploads in ein bestehendes Projekt integriert? Wie sieht die Kommunikation zwischen Client und Server aus? Und wie viel Aufwand steckt wirklich dahinter?

Links

TUS-Projekt
Die offizielle Webseite des TUS-Projekts, welches Resumable Uploads ermöglicht.
Transloadit
Der Dienstleister für File-Processing, der Resumable Uploads unterstützt und individuelle Lösungen anbietet.
Uppy
Ein Open-Source-Projekt, das eine flexible API für den Datei-Upload aus verschiedenen Quellen bereitstellt.
Transkript

Revision 654: TypeScript 5.8 – in Zukunft nur noch smarter Linter?

29. März 2025 | Kommentare deaktiviert für Revision 654: TypeScript 5.8 – in Zukunft nur noch smarter Linter?

Wusstet ihr, dass man mit der richtigen TypeScript-Config plötzlich wieder Lust auf JavaScript bekommt? Kein Witz – wir haben’s ausprobiert!

Schaunotizen

[00:01:08] TypeScript 5.8
Wir steigen ein mit einem TypeScript-Feature, das Stefan so begeistert hat, dass er direkt eine ganze Revision darüber machen wollte: die „Erasable Syntax Only“-Option. Wir diskutieren, warum diese Einstellung TypeScript endlich wieder zu einem erfreulichen Tool macht – besonders in Verbindung mit einer besseren Developer Experience und weniger magischem Code.

Danach nehmen wir TypeScript in Node-Projekten auseinander, sprechen über das Für und Wider von Linting vs. Type-Checking zur Laufzeit und streifen dabei auch Themen wie Build-Systeme, tsc vs. esbuild und warum man manchmal doch wieder Bock auf „einfaches JavaScript“ bekommt.

Zum Ende hin geht’s noch kurz um die Realität in Teams, in denen nicht alle TypeScript gleich intensiv nutzen – und um die Frage, ob TypeScript bald nur noch Linter mit Typen sein sollte.

Transkript

Revision 652: Automatisiertes Testing mit Playwright

11. März 2025 | Kommentare deaktiviert für Revision 652: Automatisiertes Testing mit Playwright

In dieser Episode sprechen wir mit Stefan Judis über Playwright. Stefan ist Entwickler, Blogger, Autor des „Web Weekly“-Newsletters und Speaker mit einer Leidenschaft für Web-Technologien, insbesondere für Web-Performance, neue Features in modernen Browsern und Barrierefreiheit.

Schaunotizen

[00:02:09] Playwright
Playwright ist ein ein leistungsfähiges End-to-End-Testing-Framework von Microsoft und darauf ausgelegt, stabile und zuverlässige Tests für Webanwendungen zu ermöglichen. Im Gegensatz zu älteren Test-Frameworks wie Selenium unterstützt Playwright moderne Features wie automatische Wartezeiten, Testisolierung und die Möglichkeit, mit mehreren Browser-Kontexten gleichzeitig zu arbeiten. Entwickler können Tests für Chromium (Chrome und Edge), WebKit (Safari) und Firefox schreiben – und das mit nur einer einzigen API.

Ein zentrales Feature ist die Fähigkeit, Tests parallel auszuführen, was die Laufzeit von Test-Suites erheblich reduziert und die Continuous-Integration-Pipelines beschleunigt. Besonders für Teams, die viele Tests automatisieren, bietet Playwright hier große Vorteile.

Ein wichtiger Aspekt, über den wir sprechen, ist die Art und Weise, wie Playwright UI-Tests durchführt. Die Auswahl von Elementen ist dabei besonders robust gelöst: Playwright nutzt sogenannte „Auto-Waits“, das heißt, es wartet automatisch, bis ein Element im DOM vorhanden, sichtbar und interaktiv ist, bevor eine Interaktion stattfindet. Das reduziert eine der größten Frustquellen beim End-to-End-Testing – nämlich Tests, die aufgrund von Timing-Problemen fehlschlagen.

Zusätzlich erlaubt Playwright komplexe Selektoren, darunter CSS-, XPath- und Text-Selektoren, aber auch speziellere Methoden wie getByRole, um barrierefreie Elemente gezielt zu testen. Besonders praktisch ist auch, dass Playwright Shadow DOM und iFrames unterstützt, womit es sich besonders gut für moderne Webanwendungen eignet, die diese Techniken intensiv nutzen.

Ein weiteres Thema sind Race Conditions. Da Playwright nicht nur die UI testet, sondern auch Interaktionen mit dem DOM und asynchrone Prozesse genau beobachten kann, hilft es, Probleme aufzudecken, die durch nicht deterministisches Verhalten entstehen. Gerade bei Single-Page-Applications oder Anwendungen mit vielen dynamischen Inhalten kann Playwright dazu beitragen, Bugs zu finden, die sonst nur schwer zu reproduzieren sind.

Wir sprechen außerdem über die Möglichkeiten von visuellem Regressiontesting mit Playwright. Theoretisch lassen sich Screenshots und sogar Videoaufnahmen von Testläufen erstellen, um Änderungen in der Benutzeroberfläche zu erkennen und zu überprüfen. Allerdings haben wir selbst diese Funktionalität noch nicht ausprobiert – deshalb interessiert uns: Nutzt ihr visuelles Regressiontesting mit Playwright? Welche Erfahrungen habt ihr damit gemacht?

Stefan gibt außerdem Tipps, wie sich Playwright in bestehende Continuous-Integration/Continuous-Deployment-Pipelines einbinden lässt. Besonders für Teams, die bereits mit CI/CD arbeiten, ist es wichtig, dass Test-Frameworks sich reibungslos in bestehende Workflows einfügen. Playwright bietet hier viele Optionen, darunter die Integration mit GitHub Actions, Jenkins und anderen CI-Systemen.

Ein weiteres Highlight ist die Playwright Trace Viewer-Funktion. Damit lassen sich Tests detailliert analysieren, indem sämtliche Interaktionen, DOM-Änderungen und Konsolen-Ausgaben einer Testausführung gespeichert und später Schritt für Schritt durchgegangen werden können. Das erleichtert die Fehlersuche nach einem gescheiterten Pipeline-Durchlauf erheblich.

Links

Playwright
Die Hauptseite von Playwright mit Dokumentation und Ressourcen.
Playwright GitHub Repository
Das offizielle GitHub-Repository von Playwright mit Quellcode und Beitragsrichtlinien.
Playwright Tutorial auf LambdaTest
Ein ausführliches Tutorial zur Nutzung von Playwright für automatisierte Tests.
Playwright Tutorial auf BrowserStack
Ein Leitfaden zur Verwendung von Playwright für Testautomatisierung.
Playwright Trace Viewer
Ein Tool zur detaillierten Analyse von Testläufen, um Fehler besser nachzuvollziehen.
Parallelisierung in Playwright
Eine Dokumentation zur effizienten Nutzung der Parallelisierungs-Funktionen von Playwright.
Element-Selektoren in Playwright
Übersicht über die verschiedenen Selektoren und deren Nutzung.
Web Weekly Newsletter
Stefan Judis‘ wöchentlicher Newsletter mit aktuellen Themen rund um Webentwicklung.
Unterstütze Stefan auf Patreon
Hilf Stefan dabei, weiterhin großartige Inhalte zu erstellen, indem du ihn auf Patreon unterstützt!
Playwright Tips
Stefans Playlist für Checkly mit Videos zu Playwright.
Transkript