Frontendové zvesti #4
Dnešných noviniek je veľa a z rôznych oblastí. Dostanete tipy na nové nástroje, dokumentárne filmy o histórii technológií. Nevyhneme sa ani umelej inteligencii a na koniec sa chvíľu pobavíme aj o prepise naozaj veľkej hry (EVE Online) do Python-u 3.
Bol vydaný Vitest vo verzii 5.0
-
Zámerom tohto vydania bol hlavne vylepšený výkon. Môžete očakávať, že vaše testy budú bežat rýchlejšie aspoň o zopár percent (8% - 53% podľa ich benchmarkov).
-
Máme k dispozícii novú pomocnú metódu
vi.when, ktorú vyuzijeme v situáciách kde potrebujeme, aby namockovaná funkcia vracala hodnoty na základe daných argumentov.const findById = vi.fn();vi.when(findById).calledWith(1).thenResolve({ id: 1, name: "Ella" }).calledWith(2).thenResolve({ id: 2, name: "Gracie" }).calledWith(expect.any(Number)).thenReject(new Error("not found")); -
chyby pochádzajúce z neschopnosti nájsť element budú odteraz vypisovať strom s použitím ARIA rolí a názvov. Mali by sme to zobrať ako príležitosť sa ich naučiť a používať lepšie.
-
falošné časovače po novom mockujú aj
TemporalAPI, nie ibaDate -
nastavenie
clearMocksje teraz predvolene zapnuté (true). Predchádzajúce verzie to mali vypnuté (false).
SVG, React a <defs>
Vykresľujete na jednej stránke viacero kópií rovnakého SVG obrázku a radi by ste používali <defs>, aby ste sa zbavili duplicitného markupu, ale nemôžete, lebo vám v tom bráni fungovanie React-u? Nuž, tak si prečítajte tieto dva články a naučíte sa, aké máte možnosti:
- https://julesblom.com/writing/colocated-svg-defs
- https://julesblom.com/writing/hoistable-svg-defs-ii
Ako vy osobne môžete ovplyvniť a zmeniť JavaScript?
Kratučké video o tom, ako sa aj vy môžete stať súčasťou vývoja jazyka a jeho špecifikácie:
https://www.youtube.com/watch?v=OkuNJo9tTtg
Opäť ďalšie riešenie na tvorbu natívnych aplikácií v JavaScript-e
Ľudia stojaci za editorom Zed vytvorili svoj vlastný v Rust-e napísaný GPU akcelerovaný UI framework nazvaný GPUI. Poskytujú k nemu aj binding-y pre React pod názvom GPUIX. Znamená to, že môžeme písať aplikácie pre počítače, ktoré môžu využívať silu grafických kariet pre vykreslovanie (napriamo cez Metal, DirectX alebo Vulkan) použitím jazyka (JavaScript/TypeScript) a UI frameworku (React), ktoré dobre poznáme.
- GPUIX: https://gpuix.dev/
- GPUI (UI framework): https://github.com/zed-industries/zed/tree/main/crates/gpui
- Zed editor: https://zed.dev/
Umelá inteligencia
S AI pre nás môže byť lepšie použiť primitívy namiesto abstraktných knižníc
Žijeme v historických časoch (niekto múdry kedysi povedal, že je oveľa lepšie žiť v pokojných a nudných časoch), kedy musíme prehodnocovať aj dlho-platiace pravdy, zákonitosti a paradigmy okolo programovania.
Robin Wieruch nedávno napísal článok o svojej skúsenosti z jedného projektu. Uvedomil si, že programovanie pomocou AI agentov zmenilo "ekonomiku" výberu medzi použitím knižnice tretej strany poskytujúcej abstrakciu problému (spolu s názormi a pravidlami) na jednej strane. Alebo na druhej strane, vytvorením vlastného riešenia na zelenej lúke pomocou "primitív".
Mne Robinove vysvetlenia dávajú zmysel a jeho argumentáciu si môžete prečítať v nasledovnom článku:
Apokalyptický pohľad na vývoj AI od bývalého zamestnance Anthropic-u a OpenAI
Nie som si istý, čo k tomuto dodať a čo si o tom myslieť. Je to síce krátke, ale veľmi smutné čítanie.
Kopec dokumentárnych filmov o technológiách, ktoré používame a máme radi
Z nasledovnej štvorice filmov som zatiaľ videl iba ten prvý o Visual Studio Code a môžem ho s kľudným srdcom odporučiť. Hneď zo začiatku ma prekvapilo, že za vývoj VS Code je zodpovedný Erich Gamma, čo je jeden zo štvorice autorov, ktorý spísali knihu o návrhových vzoroch.
The Story of VS Code
https://www.youtube.com/watch?v=kHL3XzjpT5w
The Java Story
https://www.youtube.com/watch?v=ZqGSg4b_cZA
Vite: The Documentary
https://www.youtube.com/watch?v=bmWQqAKLgT4
Node.js: The Documentary | An origin story
https://www.youtube.com/watch?v=LB8KwiiUGy0
Vytvorte svoje vlastné SSR riešenia s použitím Vite
Mám rád jednoduché riešenie a takisto ráď zisťujem, ako veci fungujú. Pokiaľ ste v tomto na tom podobne a chceli by ste vedieť, ako si nastaviť server-side rendering pre vašu React stránku s použitím Vite, tak nasledovný článok je pre vás. Ale upozorňujem, v titulku a najmä v druhej polovici článku autor používa termín SSG (Static Site Generation, generovanie statických html stránok), ale v skutočnosti ukazuje SSR (Server-side rendering).
Okrem iných vecí, autor v článku odkazuje aj na plugin vite-react-ssg, čo mne z neznámych príčin
pripomenulo niekdajší plugin zvaný vite-plugin-ssr. Po nejakú dobu som ho spokojne používal.
Medzičasom sa tento plugin vyvinul v plnohodnotný framework pod názvom Vike. Ak by ste chceli mať
pod kontrolou úplne všetko vo vašej aplikácii, tak Vike je presne pre vás.
Zatkli dvoch členov skupiny TeamPCP zodpovednej za niektoré zo Shai-Hulud útokov
Predpokladám, že si pamätáte nekonečné vlny útokov na supply-chain infraštruktúru z pred pár mesiacov, ktoré sme skrátene volali Shai-Hulud. Už som dnes písal, že žijeme v historických časoch a zdá sa, že s príchodom LLM majú aj script-kiddies k dispozícii oveľa mocnejšie nástroje. Z prvých dojmov sa mi zdá, že TeamPCP nie sú typickými aktérmi s nejakým plánom, agendou (alebo štátom za chrbtom), ale iba zopár mladíkov, ktorí sa chytili príležitosti. To však neznamená, že nie sú nebezpeční. A nielen pre IT infraštruktúru, ale aj fyzicky nebezpeční. Ak chcete vedieť viac, prečítajte si nasledovný článok, ktorý napísal bezpečnostný výskumník Charlie Eriksen:
EVE Online migruje na Python 3
Táto novinka sa netýka frontendu, ani JavaScriptu. Vyzerá to tak, že s pomocou AI agentov je dnes veľmi jednoduché portovať projekt z jedného frameworku do druhého. Dokonca aj z jedného jazyka do druhého. Ako príklady sme nedávno videli TypeScript alebo Bun. Kedysi nám zvyklo zabrať mesiace a roky vymeniť niečo takéto alebo zorganizovat masívny refaktoring. Dnes sa z toho stáva záležitosť na týždne, dni a občas dokonca hodiny.
Ale stále existujú projekty a firmy, ktoré si zvolili inú cestu a stále vo veľkom spoliehajú na ručný prepis aspoň v kriticky dôležitých častiach ich aplikácie.
Jednou z takých spoločností je Fenris Creations a projekt nie je nič menšie ako EVE Online. Najväčšia online MMORPG hra odohrávajúca sa v jednom sharde (svete). Áno, sú aj väčšie MORPG hry, ale tie majú zväčša množstvo shardov (svetov), v ktorých sa pohybujú ich hráči. V EVE Online hráči zdieľajú jeden svet už vyše 25 rokov. A je to v skutku svet sám o sebe.
Táto hra nie je ľahká (poznáte inú hru, ktoré má oficiálny plugin do MS Office?), ani lacná má vlastnú vyspelú ekonomiku. Čokoľvek v hre viete priamo prerátať na peniaze skutočného sveta. Takže pre tvorcov je veľmi dôležité, aby všetky výpočty prebiehali správne, nech robia akúkoľvek zmenu. Nieto ešte, keď robia kompletný prepis z jedného jazyka do druhého.
A to je presne to, čo práve robia. Prechádzajú z používania Python 2 (už niekoľko rokov sa nevyvíja) na Python 3. Ak vás zaujíma, ako si to naplánovali, aké výzvy musia prekonávať, tak mám pre vás dva zdroje. Jeden článok so všeobecnými informáciami a potom video z konferencie, ktoré ide viac do detailov:
- https://www.eveonline.com/news/view/the-move-to-python-3-begins
- https://www.youtube.com/watch?v=4uaEhx7LNAc
Ak ste EVE Online nepoznali a chcete vedieť viac:
- Zhrnutie na Wikipédii: https://en.wikipedia.org/wiki/Eve_Online
- Jeden z mnohých trailerov (tento má 17 rokov): https://www.youtube.com/watch?v=08hmqyejCYU
- Dokumentárny film "The Making of EVE Online": https://www.youtube.com/watch?v=vnUvuV1QFKk (toto naozaj odporúčam)
Let tak pre zábavu
Niekto vytvoril Hľadanie mín len v 247 bajtoch JS kódu
Niekedy len žasnem nad tým, čo niektorí ľudia dokážu a aká je úroveň ich znalostí:
Koniec softvérového vývoja 🤣

Zdroj obrázku: https://www.reddit.com/r/ProgrammerHumor/comments/1wangyc/thelastoreillyjustdropped/