Přejít k navigační liště

Zdroják » JavaScript » Jaká byla Nordic.js 2022

Jaká byla Nordic.js 2022

Články JavaScript

Trvalo to tři dlouhé roky, než se mohla odehrát další iterace populárního cyklu severských frontendových konferencí Nordic.js a Nordic.design. Přinášíme reportáž přímo z místa!

Delší pauzu od minulé konference způsobil samozřejmě COVID-19, kvůli kterému došlo hned dvakrát k odložení napřesrok. Designérská varianta byla dokonce odložena i v roce 2022, takže letos proběhla jen JavaScriptová část. Prodej vstupenek probíhal již od podzimu 2019, což organizátorům značně zkomplikovalo rozpočet (příjmy z roku 2019 těžko pokryjí náklady z roku 2022). Úspory se drobně projevily v absenci jakéhokoliv zdarma vydávaného oficiálního merche, ale naštěstí nikoliv v kvalitě přednášek.

Úsvit nového JavaScriptu, konferenční budova skladiště na konci mola, zhruba uprostřed obrázku

Kdy, kde, jak…

Veškeré atributy konference zůstaly téměř identické jako v roce 2019. Dva dny, jeden track, Magasin 9 ve Stockholmu, chill-out zóna s přepravními kontejnery a pestrý výběr volnočasových/odpočinkových aktivit. Uvádění speakerů zůstalo v režii populární dvojice moderátorek Unn & Olga, v porovnání s minulou iterací ale odpadl Twitchový stream a doprovodné televizní studio s reportážemi a rozhovory.

Kontejnerová chillout zóna, stánky sponzorů, pamlsky a káva

Primární náplní tak zůstala desítka přednášek každý den, doprovázená několika doplňkovými lightning talky (jejichž náplň zpravidla nestojí za zmínku, neboť se jich často účastní zástupci sponzorů a fakticky tak jde o reklamní sdělení). Z těchto dvaceti přednášek jsem zhlédl třináct a celkově musím organizátory pochválit za pestrý výběr témat z širokého spektra frontendového vývoje a za volbu zkušených speakerů s perfektní angličtinou. Následuje jejich výčet a přehled informací, které publiku předali.

Přednášky, které jsem absolvoval

Celou konferenci zahájil Christophe Porteneuve s přednáškou o novinkách v ES2022 a dále. Účastníky seznámil se standardizačním procesem TC39, připomenul přírůstky posledních několika let a představil ta rozšíření jazyka, která mají největší šanci dostat se do nejbližší nové verze. Dobrý výčet je k vidění ve slajdech odkazovaných výše, nicméně obecně lze novoty dělit do dvou kategorií: rozšiřování standardní knihovny (findLast, Temporal, další modifikátory pro RegExpy) a přejímání nápadů z jiných jazyků (dekorátory, immutable data, pattern matching).

Tři roky čekali na další várku JavaScriptu, konečně se dočkali

O spolupráci mezi populárním modelovacím programem Blender a zobrazením na webu mluvila Sara Vieira v přednášce From Blender to the Web – the Journey of a 3D Model (slajdy nejsou). Ukázala, že 3D model lze z Blenderu přiměřeně snadno exportovat do formátu (glTF), který je následně zobrazitelný na webu pomocí Three.js (konkrétně pomocí React knihovny react-three-fiber). Výhoda zde tkví ve vhodné granularitě, kdy autor webové stránky nemusí znát a rozumět struktuře exportovaných dat, ale zároveň mu zůstavá možnost ovlivňovat jednotlivé komponenty modelu a měnit tak třeba jejich vizuální atributy v rámci interaktivity stránky.

Ujjwal Sharma se věnoval otázce paralelismu v JavaScriptu, jak pohledem tradičního jednovláknového event loopu (Promises, async/await), tak i optikou opravdových vícevláknových API (SharedArrayBuffer, Atomics). Konstatoval, že TC39 plánuje rozvíjet oba dva přístupy a předvedl několik plánovaných novinek v této oblasti (Module Blocks, Shared Disjoint Heaps, Structs) .

Pomníček nástroji na stahování webových prohlížečů

O testovacím nástroji Playwright mluvila Debbie O’Brien. Slajdy ani záznam zatím nejsou k dispozici, ale náplní šlo víceméně o tuto starší přednášku. Playwright je nástroj pro end-to-end testy a určitě stojí za vyzkoušení, s ohledem na:

  • snadnost pouštění UI testů na Chrome/Firefoxu/Safari, vizuálně i headless
  • triviální generování testů komponentou Codegen
  • detailní záznam průbehu testů, použitelný k zpětnému dohledání problému

Emma Twersky mluvila o atributech ARIA v přednášce An aria of ARIA. Kromě známého zlatého pravidla nejlepší je, když je nepotřebujete si účastníci vyslechli řadu doporučení o AIRA atributech pro často používané komponenty a také o hierarchii jednotlivých ARIA rolí, která definuje, jaké atributy jsou pro které komponenty relevantní.

Ohňostroj metr od první řady publika, aby nás v Klubu pompézních zážitků nepomluvili

Poslední přednáška prvního dne konference byla Let me show you how React applications get hacked in the real-world (Liran Tal) a jednalo se o obvyklý výčet míst, kde je prostor pro XSS v Reactové aplikaci. Důvěryhodnosti speakera zcela nepřidalo, když konstatoval, že React neescapuje hodnoty HTML atributů (escapuje), nicméně zbytek přednášky už se nesl v korektnějším duchu a za zmínku stojí představený nástroj Snyk, který mimo jiné provádí skenování různých Open-source knihoven za účelem nalezení potenciálních XSS vektorů.

Druhý den konference zahájil Colin Ihrig s přednáškou The State of Deno 2022. Pokud jste o Deno ještě neslyšeli, nebo zatím nenašli čas či kuráž jej vyzkoušet, určitě to mohu doporučit. (Viz článek Ryan stvořil Deno a bylo to dobré.) Colin v kostce připomenul klíčové atributy runtime Deno, tradičně v kontrastu s Node.js (vůči kterému se Deno zejména vymezuje). Ukázal nedávno přidanou nativní podporu pro import NPM modulů (v rámci kompatibility s existujícím NPM ekosystémem) a zmínil, že Deno Deploy (hosting Deno-based webových aplikací) snad v roce 2023 přejde do ostrého provozu.

Poetika severských frontendových konferencí: oheň, vířivky, sauna, plnovousy

Krokem stranou byla Simple JStures can go a long way od Charlie Gerard. Téma IoT bývá na JavaScriptových konferencích velmi populární a tato přednáška nebyla výjimkou. Jednalo se o spolupráci mikrocontrolleru Arduino Nano 33 BLE (gyro, akcelerometr, BLE) a TensorFlow Lite (strojové učení na embedded zařízeních). Podstata představeného projektu byla v generování modelu pomocí Tiny Motion Trainer (TF běží v prohlížeči a učí se z dat posílaných mikrocontrollerem), jeho následném přenosu do zařízení a použití přímo v rámci Arduino sketche.

Další přednáška od Matthiase Le Bruna se jmenovala Leveraging (algebraic data) types to make your UI rock solid a ukazovala výhody použití algebraických typů (v TypeScriptu) pro lepší správu stavu UI komponent. Jak se dalo očekávat, přednáška byla zakončena zveřejněním knihovny Boxed, která fanouškům funkcionálního programování poskytne definice právě těch zmiňovaných algebraických typů.

Snídáte monády, obědváte Curry a večeříte silné názory? Jsme tu pro vás.

Tadeu Zagallo v přednášce JavaScript VMs 101 představil základní komponenty současných JavaScriptových implementací. Tadeu se nejvíce vyzná v útrobách JavaScriptCore (JS VM pohánějící WebKit) a jeho přednáška tak představovala velmi svěží pohled z druhé strany – v posledních letech se totiž v rámci výkonového soutěžení většina pozornosti přesouvá ke Google V8, takže informace přicházející od ostatních enginů rozhodně stojí za zmínku. Já osobně si z přednášky odnáším informaci o článku Adaptive optimization for Self, který zmiňuje relativně nadčasové tipy k jazyku Self, na jehož základech kdysi vznikl JavaScript.

Přednáška What’s Really Going on Inside Your Node_Modules Folder (odkaz vede na článek, ze kterého přednáška vycházela) od Ferosse Aboukhadijeha posluchačům představila riziko supply chain útoků, zejména v kontextu projektů stojících na NPM knihovnách. Statistiky v této věci bohužel ukazují, že se jedná o velmi reálný a jen obtížně řešitelný problém. Krom zcela alternativních přístupů (Deno?) může jistý posun představovat služba Socket, která se snaží podobným útokům proaktivně předcházet auditováním veřejných modulů.

Letos žádná trička, čepice ani večeře. Ale jsou věci, na kterých se šetřit nemůže.

Rozporuplné myšlenky jsem si odnesl z přednášky Tobiase Ahlina, nazvané An Animated Journey through the new Page Transition API. Představená funkcionalita má velké ambice: nabídnout snadné a elegantní plynulé vizální změny stavu webové aplikace, a to dokonce i při top-level navigaci. Silně experimentální API mi ale zatím přijde dost složité a ne zcela intuitivní.

Celou konferenci uzavřel Vitaly Friedman s přednáškou Boosting Web Performance in 2022. Vitaly je oblíbený a zábavný speaker a publikum rozhodně nenudil, nicméně obsahově šlo o poměrně nesourodý mix tipů přicházejících nekoordinovaně ze všech stran a aspektů frontendového vývoje. Vyslechli jsme si proto:

  • nářek nad webovými frameworky a jejich zrychlovacími (hydration atp.) technikami, které vrství jednu abstraci nad druhou;
  • výčet obrazových formátů (WebP dobrý a podporovaný všude, AVIF ještě lepší a podporovaný méně, JPEG XL nejvíc nejlepší a podporovaný nikde);
  • celou řadu super-komplikovaných přístupů k načítání webových fontů;
  • značné množství trojpísmenných zkratek relevantních pro metriky z rodiny Web Vitals;
  • kritiku tradičního postupu vývoje aplikací, tvořených pro top-tier zařízení managementu a následně mizerně provozovaných na low-end telefonech většiny populace;
  • … a další.
Soutěž Code in the Dark

Závěrem

Je fajn, že po několika letech nucených online-only akcí je zase možnost vidět a slyšet jednotlivé speakery naživo. Dle mého názoru je to jediná rozumná forma přednášek a tak věřím a doufám, že se na Nordic.js – nebo na nějakou jinou JS konferenci – budu moci zase zajet podívat.

Update: Videa z konference najdete online na Youtube.

Komentáře

Subscribe
Upozornit na
guest
0 Komentářů
Inline Feedbacks
View all comments

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.