Poznámky z Reactive 2015. Ochutnávka budoucnosti, včera bylo pozdě a použití teď a tady

Před několika týdny se Bratislavě konala konference Reactive2015. A bylo o co stát.

Autor článku pořádá školení JavaScriptu, Reactu a vývoje univerzálních aplikací. Objednat si je můžete na Javascript-skoleni.cz.

Když mi Samuel někdy v létě říkal, že se chystá v Bratislavě pořádat dvoudenní konferenci pro vývojáře v Reactu, jen jsem zíral. Nemáš zkušenosti, bude to stát hromadu prachů, nikdo nepřijede, neprodáš dost lístků, jsem si pomyslel, ale neřekl. Nechtěl jsem bejt party pooper, třeba si to rozmyslí.

Za dva měsíce telefon: „Počúvaj Dan, nemohol by si sa opýtať niekoho z Facebooku, či by neprišiel do Blavy prednášať?“ Tak jsem napsal Sebastianovi, a on že jo, víme tady o tom, jen řešíme kdo by jel, těch konferencí je teď tak moc, že to nestíháme. Na konec z Facebooku dorazil Martin Koníček, který se podílel na React Native pro Android, i se svojí hardcore přednáškou jak RN pro Android funguje. A o tom konference jsou. Přečíst si Getting Started zvládne skoro každý, ale mít možnost vyzpovídat člověka, o to běží. A těch lidí, které jste mohli vyzpovídat osobně, bylo hafo.

Jaké to bylo

Takže, dva dny přednášek, které se skoro všechny točily kolem Reactu. Jak ho používá ten či onen, srovnání a zajímavé související technologie. První den kolem oběda to už bylo jasné, pokud ve své přednášce nezmíníte immutability, easy to reason about a funkcionální programování, něco je asi špatně :-) Všechny přednášky jsou dostupné na youtube, já jen stručně shrnu, o čem která byla a pokusím se ji zasadit do kontextu.

ABSTRACTING JUST ENOUGH James Long — Mozilla

Letem Reaktím světem. Nutné intro pro toho, kdo React zrovna objevil. James má skvělý blog o edge technologiích, třeba o CSP v JS.

BIND TO THE CLOUD WITH FALCOR Paul Taylor — Netflix

Aby bylo jasno, React odstínil programátora od škaredého imperativního DOM API, a tím zrušil celou obří rodinu problémů. To sice již dříve udělal Angular, ten ale bohužel celou novou rodinu problémů stvořil. Zpět k Reactu, manipulace s DOM je vyřešená. Co ale komplikuje programátorům asi nejvíc práci teď, je manipulace s daty. Aplikace si vesele žije v prohlížeči, ale data jsou na serveru. Naivní ajax či XHR není v principu o nic lepší, než appendChild. Potřebujeme data persisovat, transportovat, syncovat v podmínkách pomalého nestabilního připojení. Na ultimátní řešení typu vítěz bere vše (jako vyhrál React), se teprve čeká. Velmi slibný je Facebook Relay, nebo právě Netflix Falcor, o kterém byla přednáška. Já svého favorita ještě nemám, zatím spokojeně používám Redux s Firebase, což pokryje 80 % mých potřeb.

FUNCTIONAL PROGRAMMING IN JAVASCRIPT. WHAT, WHY, AND HOW. Daniel Steigerwald — VacuumLabs

Další přednáška byla moje. Snažil jsem se vysvětlit, že funkcionální programování není hype jak si mnozí myslí, ale jasná věc k použití tady a teď. Včera bylo pozdě. Jelikož mluvím jen o tom, co používám v produkci (podobně jako Facebook, který open sourcuje pouze to, co sám používá v produkci, na rozdíl o jiných), mohl jsem vše demonstrovat na svém dev stacku Este.js.

HOW IMMUTABILITY, FUNCTIONAL PROGRAMMING, DATABASES AND REACTIVITY CHANGE FRONT-END Nikita Prokopov — Datascript

Tohle je ochutnávka budoucnosti. Takhle bude jednou vypadat skoro každá datová vrstva a databáze. Ještě tam nejsme, ale budeme. Pokud někdo dnes ještě žasne nad hot reloadem, zkuste si představit time traveling nad databází. Krása.

THE CASE FOR CSS MODULES Mark Dalgleish — SEEK

Naprosto profesionální řečník i přednáška. CSS saje, je to v podstatě obří side effect pro vaší aplikaci. Jedna deklarace může přepsat druhou, uhlídat velkou aplikaci je peklo. CSS Moduly jsou jedním z možných řešení, já v ně ale moc nevěřím. V Este díky webpacku lze použít import i na styly, a stačí jednoduchá konvence, a CSS moduly nepotřebuji. Přednáška byla skvělá, ale trochu jsem měl pocit, že řeší problém, který já nemám. Mám ale jiný. Este.js je univerzální dev stack, což mimojiné znamená, že bych rád sdílel styly mezi prohlížečem i nativní iOS / Android aplikací. A jsme u toho, v React Native jsou pouze inliny styly. Pracuje se s nimi skvěle. Místo textového stylopisu mám JS objekt. Jak to sloučit? Zatím díky pohodlnosti mixuji klasické styly s těmi inline. Ale cítím, že to není správné řešení. Správné ideální řešení, je mít všechny styly v JavaScriptu (nebo Elm, více později), a jestli se vyrenderují inline nebo bokem, je implementační detail. Řešení kupodivu existuje, a ne jedno, ale mnoho. Proto čekám, až se situace usadí, a pak učiním rozhodnutí. Do té doby platí to, co mám v Este.js Nicméně, někteří z Este komunity už inline styly používají všude, a nestěžují si. Uvidíme.

VICTORY.JS – A POWERFUL DATA VISUALIZATION LIBRARY FOR REACTJS Colin Megill —Formidable Labs

Nic překvapivého, jen příjemná evoluce. React je totiž a především funkcionální kompozice. Virtual DOM a podobné, to jsou pouze implementační detaily. Takže vytvořit wrapper pro D3 grafy dává veliký smysl. Podobně třeba animuji SVG v React Native, kde se konkrétní vykreslení stará React Art.

WHAT DO REACTIVE APPS REACT TO? Victor Grishchenko — Swarm.js

Vynikající speaker, a i když mu skoro nebylo rozumět, jeho ruštino-angličtina byla okouzlující. Swarm je velice ambiciózní projekt, snaží se řešit problém, který časem budou mít všichni, kdo tvoří netriviální offline first distribuované aplikace. Doporučuji.

RXJS EVOLVED Paul Taylor — Netflix

Kam kráčí RXJS? Každý by měl znát, i když to třeba ještě nepotřebuje ve své app. Jen poznámka, občas se někdo vyjádří, že Flux je překonaný, protože všechno jde řešit pomocí reaktivních extenzí. Myslím, že jde o slučování dvou různých věcí. Flux / Redux, je synchronní stavový automat pro aplikaci. Má tunu nástrojů a extenzí, to chceš. Ale je především synchronní, kdežto reaktivní extenze jsou asynchronní. Flux říká, side effects a async patří do akcí, tím se chaos a zlo izoluje od zbytku aplikace. Akce vnitřně může použít RX, CSP, promise, cokoliv. Výsledkem je ale vždy synchronní akce, immutable fakt o tom, co se v appce děje.  Klidně můžeš mít krásnou appku bez Fluxu i Reduxu, jenže přijdeš o explicitní kontrolu změny stavu. To už pak klidně můžeš všechno provázat callbackama. Asi bych o tom měl napsat článek.

UNIVERSAL REACT + FLUX AT SCALE Rajiv Tirumalareddy — Yahoo

Nic zajímavého. Yahoo mělo první izomorfní Flux, nicméně, objektový. Este.js mělo týden poté také izomorfní Flux, ale funcionální. Z něj se inspiroval Dan Abramov, a udělal Redux. Yahoo řešení je už překonané.

INTEGRATING REACT WITH REACTIVE DATABASES Tomas Kulich — VacuumLabs

Firebase je super databáze pro reaktivní aplikace. Napsal jsem s tím copycat Slacku. Projekt teď udržuje VacuumLabs, a z něj vznikla tato přednáška. Některé věci z přednášky už neplatí. Není třeba implementovat vlastní transakce, Firebase už umí multi nested update. Mám jeden open source produkt, https://github.com/steida/songary, ale dneska už bych to napsal trochu jinak. A použil bych https://github.com/casetext/fireproof, což je obálka, která callbacky nahrazuje Promises.

EFFECTS AS DATA Richard Feldman — NoRedInk

Krutopřísný úvod do Elmu. Pokud vás zajímá, co budu doporučovat za pár let, tak je to Elm. Krásný jazyk, krásná přednáška.

FORM VALIDATION MADE SIMPLE WITH REACT Marcela Hrda — VacuumLabs

Marcelka je skvělá, ale imho validace do view nepatří. Vždy to selže na nějakých komplexních business pravidlech. V Este.js validuji v akci, v té mám přístup k celému app state, validovat můžu cokoliv a jakkoliv, a jediné co potřebuji, je jednoduchý rozšiřitelný sync/async wrapper nad github.com/chriso/validator.js.

CYCLE.JS AND FUNCTIONAL REACTIVE USER INTERFACES Andre Staltz — Futurice

Velmi zábavná přednáška okopávající React. Dobré shlédnout, ale je to experiment. Z mnoha praktickách důvodů zůstávám u Reactu. Neomezuje mne. Pamatujte, abyste sesadili vítěze, protože ten bere vše, musíte hrát na jiném poli, nebo být alespoň 10x lepší. Cycle není ani jedno.

LIGHTNING TALKS

Určitě mrkněte, některé jsou zajímavé. Třeba Game of Live naprogramovaná za pět minut. Další mind fuck byly styly psané v Elmu. Tohle jednou bude dokonalost. Představte si, že se deset kodérů vyřádí na stylech, a kompiler vám pak zaručí, že nikde nic nechybí. Paráda.

Závěr

Ostatní přednášky byly také zajímavé, nebo něčím poutavé, avšak to už je na vás. Konference byla skvěle zorganizovaná, super levná, dobří řečníci, a videa okamžitě dostupná online, což ocenili zejména ti, kteří na hotelu dospávali party nebo jet lag. Myslím, že se VacuumLabs podařilo stvořit konferenci, která byla ozdobou Bratislavy.

Související

Independent software gardener, libertarian, web applications consultant and trainer. Google Developer Expert since 2012.

Věděli jste, že nám můžete zasílat zprávičky? (Jen pro přihlášené.)

Komentáře: 3

Přehled komentářů

Tomáš Procházka CerebralJS
Tomáš Procházka Re: CerebralJS
Pavel V Překlep
Zdroj: https://www.zdrojak.cz/?p=16570