Slide 1

Slide 1 text

Jednoduše a rychle @alesroubicek @fczbkk #topmonkscaffe

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

FRONT- END

Slide 5

Slide 5 text

Nástroje, které ztratily svou užitečnost

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

jQuery • Rozdíly v implementaci DOM • Animace • Šablony • Pluginy

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

Čím nahradit jQuery? • Rozdíly v implementaci DOM • browsery rozdíly srovnaly: ACID Test, document.querySelector(), fetch(), addEventListener() • Animace • CSS Animace, AnimationWorklet • Šablony • , lit-html (a spol.) • Pluginy • Web Components

Slide 10

Slide 10 text

Rx • Reaktivní streamy • DSL pro jejich kombinaci pomocí Data fl ow

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

Problémy Rx • Nepoužívá se jako DSL, ale jako common abstrakce přes všechny vrstvy aplikace • Business logika je rozházená do asynchronních kousků a zpětně se blbě rozmotává • Blbě se debuguju • Callstack hell • GC pressure

Slide 13

Slide 13 text

Čím nahradit Rx? • Často stačí await/async a AsyncIterator • Atom (@thi.ng/atom) • Používat jako DSL na UI vrstvě: Data Flow dotazy, které krotí různé async přístupy na jednom místě

Slide 14

Slide 14 text

Angular • Obousměrný data binding • HTML compiler • Service Locator • Abstrakce data layer • J2EE pro Frontend (v2+)

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

Čím nahradit Angular? • Obousměrný data binding • view = f(data) • HTML compiler • HTML5, Web Components • Service Locator • Dependency injection, ESM • Abstrakce data layer • fetch()

Slide 17

Slide 17 text

Ember • Railsy pro frontend

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

React • Umožňuje funkcionální přístup k tvorbě UI view = f(data) • Komponentový model • JSX - skoro jako HTML, relativně snadný vstup pro kodéry, co ho znají • VirtualDOM • Virtuální stroj pro UI (různé cíle tenderu) • Ekosystém komponent

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

Problémy Reactu • Lidé nepoužívají view = f(data) • Stav je rozházený do asynchronních kousků • Nízká kvalita komponent • Nutnost kompilace • Netriviální setup, aby se dalo něco tvořit • Obrovské a pomalé bundly

Slide 22

Slide 22 text

Čím nahradit React? • Umožňuje funkcionální přístup k tvorbě UI view = f(data) • Preact, Web Components (LitElement) • VirtualDOM • Reconciliation na úrovni dat (Persistent Data Structures) • Virtuální stroj pro UI (různé cíle renderu) • PWA, Flutter, SwiftUI

Slide 23

Slide 23 text

Webpack • Bundlování aplikací pro optimální distribuci na HTTP 1.x • Snadný import assetů z JS kódu • Mapy assetů • Hashování pro cache boosting • Vše se dá kon fi gurovat nebo existují pluginy

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

Problémy Webpacku • Superkomplexní kon fi gurace • Máme tu HTTP 3! • Velké bundly • Pomalá kompilace • Enabluje velice špatné přístupy

Slide 26

Slide 26 text

Čím nahradit Webpack? • esbuild • Snowpack • Skypack • Packup (DENO)

Slide 27

Slide 27 text

Jednoduše a rychle • Začněte v browseru v jednom HTML souboru • Refacturujte, Inversion of Control, Micro aplikace • Používejte nativní prvky platformy • Nástroje (a komplikace) přidávejte až když je opravdu potřebujete a užitečnost > náklady • Nere-implementujte browser v browseru

Slide 28

Slide 28 text

No content