Wenn wir im Web entwickeln, dann werden wir mit höchster Wahrscheinlichkeit mit JavaScript (JS) konfrontiert. W3Techs stellte JS mit 97,9% als verbreitetste Client-Side Sprache für Websites fest. Um eine positive Benutzererfahrung zu erzielen, sollte die Website möglichst flüssig daher kommen, während externe Inhalte geladen und Berechnungen durchgeführt werden, der Nutzer mit der Seite interagiert und Aufgaben im Hintergrund laufen. Um das zu erreichen bedient man sich dem Konzept der Nebenläufigkeit in Verbindung zu Asynchronität. In diesem Workshop werden wir uns mit Nebenläufigkeit in JavScript auseinandersetzen. Dazu werden wir uns anschauen, wie ein Internetbrowser archtiekturell aufgebaut ist und welche Rolle JS darin spielt. Folgend werden wir uns mit konkreten Methoden zur Nebenläufigkeit auseinandersetzen und uns dabei Callbacks und Promises anschauen und uns mit den Fallstricken (Pifalls) und Best Practices beschäftigen. Der Workshop ist in mehrere praktische und theoretische Teile eingeteilt, versteht sich aber stets offen für Diskussionen.
Grundsätzlich sind für den Workshop nur grundlegende Kenntnisse in JavaScript (ES6) notwendig. Wir werden die Grundlagen gemeinsam aufarbeiten und uns mit den verschiedenen Techniken zur Nebenläufigkeit in JavaScript auseinandersetzen. Erfahrungen mit Callbacks und Promises sind von Vorteil, aber nicht zwingend erforderlich – Jeder mit einem einigermaßen sicheren Code-Verständnis kann mitmachen.
Mindestens Node.js 14.x oder 16.x (der Workshop wurde auf 16.13.1 konzipiert, sollte aber mit den gängigen Versionen kompatibel sein). Idealerweise hierzu VSCode und die Erweiterung Code Runner - ein anderer Editor und die Kommandozeile tun es aber auch.
Alternativ Docker, VSCode mit den Erweiterungen Remote Development und Remote Containers installiert haben – es wird ein Devcontainer bereitgestellt.
Die wichtigsten Referenzen: