Working Draft

Wöchentlicher News-Podcast für Webdesigner und -entwickler

Spenden für Soundqualität!

Unsere Aufnahmen werden optimiert mit Auphonic.
Dort könnt Ihr uns Processing-Time kaufen.

Alternativ findet Ihr uns jetzt auch auf Patreon:

Become a Patron!

Ihr sucht neue Kollegen? 🤔 Wir suchen Sponsoren!

Als Podcast versuchen wir die Qualität der Aufnahmen hoch zu halten. Dafür verwenden wir Equipment und Tools, die nicht kostenlos sind. Und jede Folge kostet Zeit: Aufnehmen, Schneiden und Shownotes schreiben, Gäste und Termine koordinieren.

Mit rund 15.000 Downloads pro Folge im Schnitt haben wir auch Herausforderungen im Hosting zu bewältigen.

Um diese Kosten decken zu können, suchen wir Sponsoren. Wir glauben, dass unser Podcast eine gute Plattform ist, um darüber gleichgesinnte Programmierkollegen als Verstärkung für Euer Team zu finden. Wenn Ihr das auch so seht, dann sprecht doch mal mit Euren Chefs. Bei Interesse, kontaktiert uns per E-Mail: sponsoring@workingdraft.de.

Revision 388: React Native und Expo

10. Juni 2019 | 1 Kommentar

Hans und Peter fragten Rodney zu React Native aus!

Schaunotizen

[00:00:50] React Native und Expo
React Native ist ein (ehemaliges) FB-Projekt um mit JavaScript UIs für Android und iOS zu bauen. Es bildet eine Abstraktion über die UI-Komponenten, trotzdem gibt es Unterschiede zwischen iOS- und Android-UI-Widgets, mit denen man sich auseinandersetzen muss. Rodney vergleicht daher React Native mit jQuery oder Raphael. Für mehr Spaß am Gerät setzt Rodney (nachdem sich NativeBase nicht bewährte) Expo ein, „das Developer-Experience-Paket für React Native“. Trotz aller Tools bleibt React Native aber knifflig. Für Vektorgrafiken gibt es gar keine befriedigende Lösung und Testing (mit Jest und Enzyme) ist zwar machbar, aber nicht trivial. Im Vergleich zwischen Native, Web und react-native-web gibt es keinen klaren Gewinner. Gerade wenn nicht nur unterschiedliche Betriebssysteme, sondern ganz unterschiedliche Geräteklassen zum Einsatz kommen (Hallo React Native für Windows) wird es wohl nie möglich sein, ein UI zu bauen um sie alle zu knechten.

Flattr this!

Revision 387: Resize Observer

2. Juni 2019 | Keine Kommentare

Auch ohne Gast können wir uns einem Thema intensiv widmen: Schepp und Hans reden über den Resize Observer. Aber hört selbst…

Schaunotizen

[00:01:00] Resize Observer
Der Resize Observer lässt Nutzer auf Größenänderungen eines Elements reagieren. Mit dem Resize Observer lassen sich die vielgenannten Container Queries in JavaScript abbilden. Wie das alles genau funktioniert erklärt Schepp. Wir sprechen über Anwendungsbeispiele und erwähnen einige Tools, die hilfreich sein können.
Hier die Links dazu:

Flattr this!

Revision 386: Web-Architekturen, ROCA, SPA, REST

27. Mai 2019 | 3 Kommentare

Nach Revision 382 meldet sich Stefan Tilkov zu Wort um ein paar andere Ansichten zum Thema Web-Architekturen zu liefern.

Schaunotizen

[00:02:20] Webarchitekturen
Groß ausschweifend sprechen wir über REST und was es denn eigentlich ist, die URL als Pfeiler guter Web-Architekturen, und die Geissel der modernen Web-Anwendungen: Die Single Page Applications. Es treffen traditionelle Architekturen und Ansichten auf moderne Frameworks, und wir versuchen einen Konsens zwischen dem was war, dem was ist, und dem was sein könnte zu treffen. Themen die wir dabei besprechen: SPA vs ROCA, HTML und HatEoAS, GraphQL, Web Components und natürlich viel Kultur, Organisation und allerlei. Viel Spaß!

Links zum Thema:

Flattr this!

Revision 385: React Hooks

12. Mai 2019 | Keine Kommentare

Schepp, Hans und Stefan in einer flotten Diskussion über ein neues React Feature, das die klassische klassenbasierte Komponenten-Bibliothek ein wenig auf den Kopf stellt.

Schaunotizen

[00:01:08] Hooks
React kündigte im November 2018 mit Hooks ein neuartiges, beinah revolutionär wirkendes Konzept zur funktionalen Komponenten-Entwicklung an. State-Management ohne Schmerzen. Wir sind interessiert! Wir sehen uns an, was nun wirklich dahintersteckt, wie es mit Custom Hooks aussieht, und machen den Praxis-Test. Das ganze funktioniert natürlich auch mit TypeScript! Stefan entschuldigt sich auch gleich mal für die vielen Male, wo das Lag die anderen Leute nicht ausreden hat lassen und erwähnt nicht, dass Hans ihn anschließend als Professor bezeichnet hat.

Flattr this!

Revision 384: Micro-Frontends

8. Mai 2019 | Keine Kommentare

Komplexe Web-Applikationen und -Seiten werden oft in unterschiedliche Domänen geteilt. Frontend wird klassisch als eine eigene Domäne angesehen. Doch was passiert, wenn man den Micro-Service-Gedanken auch ins Frontend überträgt und die Zuständigkeiten des Frontend-Codes auch an die korrekten Business-Domänen anpasst? Das klären wir gemeinsam mit Mark Lubkowitz der uns einen Einblick in seine Erfahrungen mit Micro-Frontends gibt.

Schaunotizen

[00:04:50] Micro-Frontends
Nach einer Einführung in das Thema und das Beleuchten der Vor- und Nachteile von Micro-Frontends, beschäftigen wir uns mit den Erfahrungen auf dem Gebiet. Neben Mark, spricht auch Hans über seine Arbeit bei einem großen Online-Shop, bei dem der Gedanke der Micro-Frontends verfolgt wurde.

Einige Links:

[01:09:52] Keine Schaunotizen

Developer Week
Die Konferenz findet vom 24. bis 27. Juni in Nürnberg statt. Mark wird vor Ort sein und einen Vortrag halten.
UI & CSS Day
Am 13. & 14. Juni 2019 findet wieder der CSS Day in Amsterdam statt. Dieses Mal mit UI-Special.

Flattr this!

Revision 383: TypeScript im Backend

23. April 2019 | 1 Kommentar

Tim Schumacher, seines Zeichens Backend-Entwickler in Jena und großer TypeScript-Fan, fand sich mit Hans und Peter zusammen, um genüsslich eine Runde über TypeScript allgemein und TS im Backend im Speziellen zu plauschen.

Schaunotizen

[00:02:18] TypeScript im Backend
Es hat sich viel getan, seitdem wir TypeScript zuerst in Working Draft erwähnten (damals ganz am Rande der Revision 90)! Neben den altbekannten Typ-Annotationen und Generics gibt es mittlerweile auch auf Decorators basierende Späße wie den Class Validator und vor allem Tools wie ts-node. Die mit ts-node einhergehenden Performacenachteile könnten in deno (Node mit nativem TypeScript-Support) nicht mehr ins Gewicht fallen und wenn alls Stricke reißen ist auch das gute alte nodemon noch da und unterstützt ebenfalls TypeScript. Weitere Tools im Alltagseinsatz sind noch immer TSLint (demnächst dank ESLint überflüsig) in Kombination mit Husky und der typescript-formatter. An Backend-Libraries kommen neben TypeORM und Sequelize der praktische class-transformer und routing-controllers für Express und Koa.

Flattr this!

Revision 382: REST vs. GraphQL

6. April 2019 | 2 Kommentare

Die Revision 382 beschäftigt sich mit modernen Austauschformaten zwischen Software System. Wir sprechen mit Dr. Ralf Engelschall zu den Themen REST und GraphQL und lassen uns über die Vor- und Nachteile aufklären.

Schaunotizen

[00:03:52] REST
REST ist als Programmierparadigma stark verbreitet. Viele Schnittstellen folgen dem Standard, der sich in den vergangenen Jahren stark verbreitet hat. REST bietet einige Vorteile, die Ralf mit uns durch geht. Wir sprechen aber auch darüber, dass Themen wie Stateless oder das Caching mit REST zum Problem werden können.
[00:23:18] GraphQL
Eine mögliche Lösung für diese Probleme ist das bereits in einigen Revisionen, zuletzt Revision 292 angesprochene GraphQL, eine graph-artige Anfragestruktur für Daten. Ralf gibt uns einen Einstieg in GraphQL, wie es technisch funktioniert und was das spannende an GraphQL ist. Anhand eines Beispiels aus seiner täglichen Arbeit lassen sich die Vor- und Nachteile gut erkennen.
[00:54:23] GraphQL-IO
Nacktes GraphQL ist manchmal zu wenig für Anwendungen aus Frontend und Backend. Um die beiden Teile zusammen zu bringen, hat Ralf eine All-in-One Lösung gebaut, mit der die Implementierung von GraphQL für Entwickler wesentlich vereinfacht wird.

Flattr this!

Revision 381: Layered APIs und der Stand der Dinge bei HTTP/2

24. März 2019 | Kommentare deaktiviert für Revision 381: Layered APIs und der Stand der Dinge bei HTTP/2

In kleiner und gemütlicher Runde besprachen Stefan und Schepp, was es mit dem Konzept der Layered APIs auf sich hat und wie es derzeit so um HTTP/2 steht.

Schaunotizen

[00:01:20] Layered APIs
Bei den Layered APIs handelt es sich um sowas wie eine im Browser mitgelieferte Standard-Bibliothek, welche neuen syntaktischen API-Zucker bereitstellt, ohne dazu auf neue API-Primitive zurückgreifen zu müssen. Die Idee dabei ist, den Entwicklern an den Standardgremien vorbei schneller bessere Werkzeuge zu liefern, die Sie zudem auch nur bei Bedarf hochfahren/laden können. Das hält die Browser schlanker. Da die neue APIs rein per JavaScript geschrieben sind und auf längst bestehenden APIs aufsetzen, können Browser, die diese Layered APIs nicht eingebaut mitbringen, diese Bibliotheken einfach aus dem Netz nachladen. Analog zu einem Polyfill. Dafür gibt es eine spezielle, neue und rückwärtskompatible Modul-Syntax. Der erste Kandidat für eine Layered API ist der KV Storage, den man jetzt per Origin Trial Verfahren auf seine Besucher loslassen kann.
[00:26:18] The Right Way to Bundle Your Assets for Faster Sites over HTTP/2
Unser zweites Thema befasste sich nach längerer Zeit mal wieder mit HTTP/2. Anlass war der oben verlinkte Artikel, in dem getestet wurde, inwiefern veränderte Bundling-Strategien zu besserer Performance führen, und wo Dinge sich ins Negative verkehren. Das ist insofern relevant, als dass mittlerweile gut 50% aller Webseiten mit dem Prototoll ausgeliefert werden. Wir fanden außerdem beiläufig heraus, dass rund 75% aller Webseiten auf HTTPS laufen.

[00:54:50] Keine Schaunotizen

swc
swc, der „speedy web compiler“, ist ein in Rust geschriebener, besonders schneller JavaScript-Transpiler, der laut eigener Aussage Feature-technisch mit Babel gleichauf liegt.
sucrase
sucrase ist ein Babel-Fork und verfolgt ähnliche Ziele. Diese werden in diesem Fall dadurch erreicht, dass verlangsamende, aber auch kaum benötigte Features aus Babel wegfallen. Darunter das Rückkompilieren zu älteren ES-Versionen. Dadurch wird sucrase also eher zu einem Metasprache-nach-Current-ES-Compiler.
Feature Policy Playground
Der Feature Policy Playground möchte eine Art „Can I Use“ für Feature Policy Features sein. Es geht zum einen um den aktuellen Browser-Support, als auch darum, auf die entsprechenden Explainer-Dokumente zu verlinken.

Flattr this!

Revision 380: Chrome-Devtools-Extension-Entwicklung

20. März 2019 | Kommentare deaktiviert für Revision 380: Chrome-Devtools-Extension-Entwicklung

Eine Rarität! Das komplette Podcast-Kernteam vereint in einer Revision. Keine ganz so große Rarität: der Löwenanteil der Sprechzeit entfällt auf Peter, der einen Einblick in die Entwicklung einer Chrome-Devtools-Extension gibt.

Schaunotizen

[00:02:40] Chrome-Devtools-Development
Für Warhol, ein Joint Venture von Peter und Hans, entsteht eine Browser-Extension, von deren Entwicklung Peter lang und breit berichtet. Zu den Herausforderungen zählt die Verteilung der einzelnen Extension-Bauteile über viele verschiedene Browsing Contexts, die Verwendung von TypeScript (@types/chrome hilft) und die nicht besonders strukturierte API-Dokumentation (für Extensions allgemein und für Devtools im Besonderen), in deren Angesicht Stack Overflow Gold wert ist.

[01:09:02] Keine Schaunotizen

Mask Compositing: The Crash Course
Die CSS-Magierin Ana Tudor führt in die Geheimnisse von Mask Composition ein.
Cache-Control for Civilians
Cache-Control Header so erklärt, dass man es auch als Nicht-Performance-Nerd versteht.
@pika/web
JavaScript-Pakete ohne Buildprozesse und sonstigen Overhead im Browser benutzen! Ganz wie früher!
Baldower
Aus der Rubrik „Shameless Plug“: die Musik von Tobi Lessnow

Flattr this!

Revision 379: Requirements Engineering, Agilität und Wasserfälle

17. März 2019 | Kommentare deaktiviert für Revision 379: Requirements Engineering, Agilität und Wasserfälle

Für diese Revision holten sich Schepp, Peter und Rodney Unterstützung von Yara Meyer (Principal Consultant bei , auf Twitter @whythecode) in Studio, um die Untiefen der Projektplanung zu erforschen.

Schaunotizen

[00:01:28] Requirements Engineering, Agilität und Wasserfälle
Yara hat im Rahmen ihres Schaffens als Consultant schon so manches mehr oder weniger erfolgreiches Projekt begleitet und quatscht mit uns über Requirements Engineering, Agilität und alles, was in der Softwareentwicklung so schief läuft. Als ein großes Problem ist die Planung von Software durch Nicht-Software-Firmen zu nennen, die sich besser Requirements Engineering von einem extern Dienstleister eingekauft hätten. Das ist aber gar nicht mal so leicht zu verkaufen. Agilität (vor allem innerhalb von Legacy-Strukturen und großen Konzernen), Deadlines, Features und Milestones sind genau so Thema wie Berichte über ein paar Worst Cases vom Planeten Wasserfall.

Flattr this!