Martin Michálek Martin Michálek  – 7. 6. 2023

Ve 45. epizodě podcastu jsme s Liborem, který momentálně působí jako Head of Front-End Development v CDN77, probrali aktuální směřování javascriptových frameworků.

Naše povídání se netočí jen kolem SSR, ale také dalších známých problémů frameworků, jako je hydratace. Jak si s tím pokouší poradit moderní frameworky typu SvelteKit nebo Qwik?

Podcast

Host: Libor Vaněk

Libor Vaněk

Head of Front-End Development v CDN77, kde poskytují infrastrukturu pro globální internet. Fanoušek World Wide Web platformy a rozumného přístupu k web developmentu. Má rád všechny JS frameworky, ale ještě radši je podrobuje kritickému pohledu. Kdysi dělal meetupy Vue.js, dneska migruje většinu věcí z Nextu na SvelteKit. Ve volném čase dělá pro bono projekty, jako např. web a newsletter pro novináře Davida Klimeše a konzultuje architekturu a výkon webových aplikací.

LinkedInTwitter

O čem se bavíme?

  • Robinův tip: 20 let od CSS Zen Garden (0:40)
  • Martinův tip: 6 CSS snippets every front-end developer should know in 2023 (4:30)
  • Představení Libora (7:20)
  • Historický kontext: proč dříve převažoval server, architektura MPA (9:30)
  • Svět webových aplikací, nikoliv webů, a SPA architektura (16:20)
  • Nevýhoda SPA: totální závislost na JS (21:50)
  • Nová generace „client-side“ vývojářů (26:40)
  • Pojďme tam přidat server (SSR, Server-Side Rendering) (31:00)
  • Izomorfní aplikace vs. SSR (45:50)
  • Další problém: hydratace (hydration) na klientovi (47:30)
  • Diskuze o budoucnosti, reflexe v komunitě Reactu (59:00)
  • Odkazujeme na podcast o trendech pro ‘21Hotwire – vracíme se zpět? (1:02:00)
  • Tipy na zdroje: Alex Russell, Rich Harris, Ryan Carniato, Mishko Hevery (1:05:00)

Děkujeme za spolupráci: Honza Michálek (Milíčovská postprodukce).

Odebírejte podcast ze Vzhůru dolů

SpotifyiTunesGoogle PodcastyTuneInAnchorRSS podcastů.

Nápad? Chyba? Připomínka? Pochvala? Pište nám na e-mail [email protected] nebo do komentářů.

Naslyšenou příště!

1 komentář

Vít Heřman Vít Heřman

Dobrý den,

zkusí napsat jednou zase názor, i když v dnešní záplavě názorů všech a na všechno nevím, zda to má ještě smysl. Jedná se o vysoký stupeň nadhledu na základě asi 30 let zkušeností.

Převaha SSP (server side programming) nebo CSP (client side programming) se historicky mění periodicky. Začínal jsem historicky s CGI skripty a můžu říct, že prožíváme již druhou periodu, kdy se právě přichází na to, že dnes SPA poněkud hypertrofují. Po těch dlouhých zkušenostech, kdy jsem implementoval nízkoúrovňově SSR pro React , tak se obávám, že izomorfní aplikace také nejsou ideální cestou. Je totiž inherentně velmi náročné světům klienta i serveru nabídnout unifikované prostředí, přesně tak, jak je v podcastu řečeno. Libor dokonale popisuje, jak je hydratace složitá věc, sám jsem toto programoval nízkoúrovňově několikrát, je to tak křehké, že to podle mě nepřežije jako standard. Jednoho dne se přijde na to, že je lepší se toho zbavit.

Pokud jde o SEO, tak si myslím, že je potřeba stále dělit weby na informační a aplikační. Informační weby je lépe stavět na CMS, které poskytují přímo podkladové HTML, aplikační zase na SPA, a bez SSR se klidně obejít. Bohužel tyto dva světy spojovat až příliš nedělá dobrotu.

Jako dlouholetý React/TypeScript (dále i ASP.NET C#, SQL) vývojář nyní zkouším tvořit z akademických důvodů maximálně efektivní mikro framework bez dalších závislostí, který je postavený na plain JS, plain CSS, není třeba žádných minifikací, bundlingu. A zjišťuji nenápadnou velkou pravdu, že React a TypeScript udělá nejspíš z programátora lepšího programátora a pak není potřeba žádný framework. Vytvořit si podobné patterny, jako má React bylo otázkou asi týdně (neuvěřitelné, samotného mě překvapilo). Místo komplexního reaktivního frameworku pouze pomocí jednoduchého DSL se provede přehledná definice závislostí elementů na nativních událostech a podmínkách pro překreslení. I ty jsou mnohem jednodušší, než by se zdálo. Ale výsledkem je extrémně malý kód JS, který je optimalizován svou jednoduchostí a přehledností, stránka se rychle načte i renderuje. Jen vývojář a to, co umí přímo browser :-) Uznávám, že to vyžaduje vysoký stupeň seniority vývojáře, který ví dobře co dělá a proč.

A poslední věc je, že pro FE vývojáře je lepší umět pracovat se základní technologií, ale mít základy designu, UX, typografie, perfektně umět CSS. A být perfektním programátorem lze být i v Plain JS. Příliš velký důraz se chybně klade na doplňkové technologie. To když se spojí s důrazem na přidanou hodnotu pro zákazníka a zanedbáním zbytečností vede k zábraně hypertrofování technologií.

S pozdravem Vít Heřman

Máte doplnění, komentář nebo jste našli chybu?
Pro přidání názoru se prosím
přihlaste nebo si zřiďte účet.