React.js, + a - rubrika: Programování: JavaScript

8 Občan
položil/-a 18.7.2015

Přestože React.js stack se šíří, jako lavina a zvláště jeho funckionální čistota je mě velice blízká. Avšak při otázce, zda se vyplatí opravdu k němu přejít od jiných alternativ, třeba od čistého JQuery, tak se seknu na tom, že je naročnější v něm aplikaci rozpracovat, ale krásně a rychle se pak udržuje a odkazuji na Daniela Steigerwalda. Jako zápory uvádím, že po delší době psaní v Reactu mě chybí ten fofr různých komplexních pluginů a nasazení v drobných aplikací.

Jaké by jste měli argumenty pro tuto architekturu. Zvláště by mě zajímali vlastně i argumenty proti.

odkaz
5 VojtechMiksu
odpověděl/-a 19.7.2015
 
upravil/-a 19.7.2015

Napíšu jen o těch mínusech, protože o plusech jsem už napsal spousty článků.

Verzování. React zatím nepoužívá sémantické verzování, neexistuje verze 1.x.x, každá minor verze obsahuje BC.

Context. Je to skryté (nezdokumentované) API, které existuje v Reactu "pro experimenty" a rychlejší vývoj, nicméně na něm závisí i důležité knihovny (react-router). Samozřejmě se v něm odehrávají masivní BC a doteď nevím, co si o tom myslet. Je třeba možné, že z toho časem vznikne preferovaný nástroj, jak si skrz aplikaci předávat immutable globální stav, kdo ví.

Hektičnost. Je to i výhoda, ale děje se toho teď kolem Reactu až moc. Velmi rychle se střídají a vynalézají lepší architektury, nové způsoby, jak do sebe šikovněji skládat komponenty. Do toho přibyl React Native pro iOS, Canvas, terminal, Android a do roka bude React i v ledničce. Každý týden vzniknou minimálně 3 super knihovny, které musíte prozkoumat, 5 článků, které si musíte přečíst, hodiny videií z React konferencí, které musíte shlédnout. Je docela těžké najít nějaký balanc mezi tím "učit se" a "něco dělat". Ten vlak jede hodně rychle a málokdy uvidíte na jeho špičku. Samozřejmě není nutné ten šrumec kolem sledovat, proto abyste naprogramovali dnes aplikaci. Jde o to občas krotit vlastní zvědavost. :-)

NPM závislosti. Každý projekt bude mít dříve či později 50 až 100 různých závislostí (npm balíčků) a každá z nich žije vlastním životem. Přicházejí rychlé aktualizace a i BC. Buď každé 2 týdny strávíte půl hoďky s jejich začleňováním (prolítnete si changelogy u minor a major updatů) a budete doufat, že se nic nerozbije. Nebo nebudete aktualizovat vůbec, ale pak se vystavujete bezpečnostním chybám a po roce bude aplikace zralá na rozsáhlejší přepis.

Komentáře

  • Občan : Dík za reakci. Takže vlastně body Verzování, Context, NPM akumuluje defacto package.json. Mohu potvrdit, že když nějaká knihovna vyžaduje vyšší verzi Reactu, tak první, co musím dělat je ověření součinosti s react-routerem ... a pravidelně si číst na Githubu issues, což nemusí všem vyhovovat. S tou hektičností jsi mě vlastně sepsal spíše hezký seznam plusů :) Třeba ohledně arch.: Historicky jsem zaznamenal velký zlom v js applikacích příchodem Angularu k čistotě architektury a team Reactu udělam zlom fantastický. Což v tak průžným prostředí jako je js, kde se něco, jako SOLID potkává zřídka, osobně oceňuji. React Native mě příjde, jako naprostá pecka. :) 19.7.2015
  • arron : Já si pořád myslím, že React nám změnil celý bussines jak webových aplikacích a i v mobilních aplikacích. Jenom si to ještě spoustu lidí neuvědomuje. 19.7.2015
  • VojtechMiksu : React nám změnil celý bussines definování uživatelských rozhraní (komponent). Dává tak smysl napříč všemi aplikacemi - DOM, Canvas, iOS, Android, Terminál... 20.7.2015
  • diverman : Jde vubec React pouzivat bez npm? Nechci, resp nemohu do systemu zavadet dalsi package manager. 3.8.2015
  • bazo : jasne ze ide, kludne ti staci bower alebo hocico ine 3.8.2015
  • skliblatik : @diverman Ano jde. V nejjednodušším případě si do stránky nalinkuješ react a svoje komponenty (samozřejmě přeložené z jsx syntaxe). 3.8.2015
  • Občan : teoreticky jde, prakticky bych do toho nešel. viz bod NPM, jak píše @VojtechMiksu. Přesně tak to je, člověk, musí sledovat issues a commity u knihovem na githubu, dle toho opatrně updatovat a ne všechno má bower verzi. 3.8.2015

Pro zobrazení všech 4 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.