Weaving the Web

Schwerpunkt im Medieninformatik Master

Nebenläufigkeit in JavaScript


Coach
Tobias Hund
Termin
Dienstag, 26. April 2022, 13:00 Uhr
Dauer
ca. 150 Minuten
Raum
https://th-koeln.zoom.us/j/83055835045 (Zugangscode webtech)

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.

Vorraussetzungen

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.

Vorbereitungen

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.

Material

Die wichtigsten Referenzen: