Talks & Slides for the iJS Munich 2019 - reducing global React state and TypeScript for React developers

23 Oct 2019

This fall, I did two talks on the international JavaScript Conference in Munich. One talk was about avoiding global state in React applications (in German), the other talk was an introduction to TypeScript for React developers.

Warum Global State keine eierlegende Wollmilchsau ist – und was wir wirklich nutzen sollten (German)

Abstract (click to expand)

In vielen React-Applikationen hat sich der Trend etabliert, die Global-State-Managementlösung (meist Redux oder MobX) zu verwenden – als Allheilmittel für alles, was auch nur im entferntesten mit State zu tun hat. Aber während der Gedanke insbesondere angesichts unzähliger Tutorials naheliegt: irgendwie fühlt es sich meist unhandlich an. Außerdem arbeiten wir damit “an React vorbei” und machen oft genug React-interne Performanceoptimierungen kaputt.

Zum Glück gibt es für viele Anwendungsfälle inzwischen bessere Lösungen, mit denen wir den Herausforderungen einer modernen React-Applikation beikommen können – am Ende bleibt ein globaler State, den man auch guten Gewissens so nennen kann.

Der Talk stellt verschiedene Arten von State in einer modernen React-Applikation vor und analysiert, welche Spielweisen besser nicht in den globalen State gehören (natürlich auch: wohin denn dann?). Beispiele, wo der globaler State weiterhin eine wichtige Rolle spielt und wie wir ihn klüger nützen können, runden den Vortrag ab.

TypeScript for React developers

Abstract (click to expand)

TypeScript adds static typing to JavaScript – and you can use it when developing applications with React. I will introduce you to the basic concepts of static typing and will show you how to use TypeScript with React. We are going to discuss not only the benefits but also the downsides of this approach. I will also show you how you can benefit from TypeScript when using state management libraries such as Redux.

Abstract by Hans-Christian Otto

(For this talk, I was very spontaneously filling in for Hans-Christian Otto, who originally wanted to give this talk - so I don’t have any slides for it.
The talk was recorded though, so if the recordings become available I’ll link them here.)

Talks & Slides for the iJS London 2019 - The State of React’s State in 2019

14 May 2019

I was over in London to talk about the state of React’s State handling ecosystem in 2019, comparing plain Context, Redux, MobX, MobX State Tree and local State with Apollo.

The State of React’s State in 2019

Abstract (click to expand)

In the past few years, the approach to application state in React has been constantly shifting. Local component state has been complemented with global state management solutions like ‘react-redux’ or ‘mobx-react’. The introduction of GraphQL libraries like Apollo brought new approaches to API caching (at least for GraphQL). With the release of React 16.3, the reworked Context API has been finally declared stable, adding a viable option for small and simple global states.

As a part of the forthcoming React 16.7, hooks will allow for easier use of local state as well as context in function components. Existing libraries are already discussing new hook-compatible APIs that will change the way we are using them. Furthermore, the upcoming ‘suspense’ mechanism is bound to spawn the birth of at least a few new libraries with focus on “perceived local” data fetching and caching.

Unfortunately, there is no “one size fits all” solution when evaluating these approaches. This talk will highlight the different types of state occurring in modern React applications and give recommendations on how to approach them with the tools currently available, with an outlook on the near future.

Talks & Slides for the c't webdev 2019 - Generators and the Evolution of ECMAScript

07 Feb 2019

This week I was giving two talks at the c’t webdev (Köln). If you are looking for the slides of my talks, here are the links:

ECMAScript as an evolving language

Abstract (click to expand)

ECMAScript, better known as JavaScript, is a language that has been evolving radically in the last few years.

Not only are many utility methods that formerly required the use of helper libraries like underscore now direct part of the specification, also DOM manipulation libraries like jquery have become largely obsolete due to W3C Recommendations of the past years.
Besides that, the language has adopted classes as an abstraction layer for it’s prototype-based internal OOP model, introduced arrow, generator and async functions, as well as an official module system.

As there was (and primarily due to IE, still is) a gap between the standards and the actual browser implementations, techniques like polyfilling and transpiling are widespread amongst developers and as we are using them anyways, they enable us to do something quite interesting:
Language features that are mere proposals to the TC39 (like a pipeline or null coalescence operator) can already be used as if they were part of the language.
Additionaly, the routine use of transpilers also allows the use of completely new languages built on ECMAScript, starting from non-intrusive extensions like TypeScript or Flow up to completely different languages like Elm or Reason.

This talk will give you an insight on what has happened so far, the direction everything is going and how you can keep up with this rapidly evolving language.

JavaScript Generators

Abstract (click to expand)

Since ES2015, Generators are a part of JavaScript. But apart from obvious use cases, Generators offer a lot more than meets the eye and can be used for various types of asynchronous external flow control.

This talk will give an introduction to the basics of Generators as well as showcase advanced use cases like early “async/await” implementations and Redux Sagas.

View All 17 Articles →