Novinky z ReactiveConf 2016

Reactive Conf 2016

Ahoj všem,

přináším report z nedávné Reactive Conf 2016.

Prvně — záznam celé konference najdete přímo na stránkách Reactive Conf (https://reactiveconf.com/) anebo na Youtube. Chválím pořadatele za sdílení.

Cypress.io

www.cypress.io/

Jedna z nejzajímavějších přednášek byla o novém testovacím nástroji s názvem Cypress, který mě osobně ohromil. Má ulehčit frontendové testování (prováděné dnes napr. pomocí Selenia) — a to jak jeho prvotní nastavení, tak jeho vykonávání a vyhodnocování testů. Nástroj vypadá skvěle a jedinou nevýhodou tak zatím zůstává fakt, že je pouze v uzavřené betě.

 

 

Next.js

zeit.co/blog/next

Jednoduchý framework zaměřený na server-side-rendered aplikace, postavený nad Reactem a Webpackem. Jeho přednostmi by mělo být jednoduché rozjetí, nastavení a nasazení. Dále důraz na server-side-rendering a kešování stránek (tak aby při výpadku byla appka stále použitelná). Framework také představuje zjednodušené routování stránek a klade důraz na dělení kódu do malých, dobře udržovatelných balíčků.

 

 

Reason ML

facebook.github.io

Funkcionální jazyky jsou nové velké téma, takže jim bylo věnováno několik přednášek. Reason ML je typovaný funkcionální jazyk od Facebooku. Pro web se kompiluje do Javascriptu a pro mobily do nativního kódu iOS a Android.

Společně s Reason ML přichází také “refmt”, což je poměrně silný nástroj na formátování kódu, který umožňuje snadno přepínat mezi různými formáty syntaxe a do jisté míry i refactorovat kód. Každý v týmu tak může mít vlastní code-style a snadno se do něj přepne z jiného.

Unikernels

Během přednášky o Reason ML padla zmínka o Unikernels. Jde o extrémě malé operační systémy, které dokáží nabootovat v řádu milisekund. Dokážou tak nahradit velké web servery — při HTTP dotazu vždy nabootuje nový kernel (http://www.skjegstad.com/blog/2015/08/17/jitsu-v02/). Pokud to chápu dobře, tak taková architektura by měla zvýšit bezpečnost stránek a otevřít možnosti pro lepší optimalizaci a menší náročnost na hardware. Více na wiki: https://en.wikipedia.org/wiki/Unikernel

RethinkDB + Horizon (https://horizon.io/)

Backend pro realtimové aplikace, postavený nad realtime-oriented databízí RethinkDB. RethinkDB umožňuje aplikaci přihlásit se (subscribe) k odběru zpráv, které se generují, když je splněný určitý dotaz (query). Díky tomu se nemusí neustále dotazovat, ale pouze čekají na splnění podmínky. Velice použitelné pro IoT, kolaborativní služby (ala Google Docs) nebo online hry. Horizon sám pak nabízí rychlý vývoj realtimové aplikace. Do nedávna byl komerčním projektem, ale přešel na Open source bázi.

 

 

Router5

router5.github.io

Jako zajímavou alternativou k “react-router” se jeví projekt Router5.

Elm

elm-lang.org

Elm je další z řady funkcionálních jazyků, které začínají být oblíbené pro tvorbu webových frontendů. React mnoho věcí zjednodušil a udělal frontend předvídatelným. Elm v tomto zjednodušování pokračuje a pomáhá tam, kde je React stále složitý. ELm neobsahuje komponenty, je bezestavový a kompiluje se do Javascriptu. Zároveň je výkonnější než ostatní JS frameworky (React, Andgular, Ember). Chyby odhaluje během kompilace a měl by tak předcházet runtimovým chybám. Podle přednášejícího mají projekt, kde za rok a půl nedošlo k runtime vyjímce. Klobouk dolů.

Cycle.JS

cycle.js.org

Funkcionální JS framework, který zjednodušuje pohled na tok dat v aplikaci. Každá komponenta dostáva vstupy a generuje výstupy pomocí čistých funkcí (“pure functions”), tj. funkcí bez vedlejších účninků. Na postranní efekty (volání API) používá tzv. pluginy. Komponenty by měly být jednoduše znovupoužitelné na jiném projektu, lze je jednoduše skládat do větších celků. Tok dat lze zároveň jednoduše vizualizovat v prohlížeči, což usnadňuje ladění aplikace.

Btw, výborná přednáška. Obzvláště pro milovníky lega ;) Najděte si na youtube.

GraphQL

graphql.org/learn

Knihovna pro popis dat, která řeší problémy RESTového přístupu. Může snížit počet dotazů a množství přenášených dat, usnadňuje práci jak na backendu, tak na frontendu. Díky GraphQL může frontend snadno určit strukturu dat, která chce dostat od backendu. Backend umí obsloužit takovéto dotazy, aniž by byla přidána nějaká programová složitost.

ClosureScript

clojurescript.org

Další možností, jak si vyzkoušet tvorbu webu za pomoci funkcionálního programování je použít jazyk Clusure a jeho kompilátor do Javascriptu nazvaný ClosureScript. Tentokráte jde o produkt ze stáje Google.

Angular

angularjs.org

V neposlední řadě bylo fajn, že organizátoři neignorují ani ostatní technologie, takže jedna přednáška byla věnovaná i Angularu a cestě, kterou ušel. Určitě stojí za zkouknutí (byla hned první v prvním dni). Zaujala mě především část o Web Workers a o stále zajímavějších Progressive Web Apps (tj. webové stránky, které do značné míry nahrazují klasické nativní aplikace).

Lightning Talks

Rozhodně doporučuju zkouknout. Byly zábavné i objevné. Dozvíte se o různých přístupech k vývoji v Reactu, o šikovných nastrojích nebo budete jen žasnout, jakou magii někdo dokáže s vytuněným terminálem. Vypíchnul bych React Bluekit (http://bluekit.blueberry.io/) od Blueberry Apps a DraftJS od Facebooku. První je “průzkumník” vašich komponent, který z nich pak udělá hřiště na kterém můžete ladit různé aspkty vašich komponenent. DraftJS je jednoduchý text editor.

Vit Uličný, November 1, 2016