Jaký zvolit JS framework rubrika: Programování: JavaScript

6 SpaceAngel
položil/-a 7.4.2015

Ahoj kolegove:)

Zacinam vytvaret novy projekt, a stojim pred volbou, jaky zvolit js framework pro klientskou cast.

Par info o aplikaci:

  • PHP, framework nepodstatny
  • vetsina aplikace bude ajaxova, je to spis "aplikace" nez "webstranka", tzn ze tam bude spousta ruznych drag&drop apod
  • build pomoci antu. ale neni problem pouzit pro klientskou cast treba grunt...
  • podpora hlavne modernich prohlizecu, nema cenu zas tak zpatky do minulosti jit...

Mam realne zkusenosti s jQuery, proto je zatim muj favorit, s duvodu dle me snadne manipulace s domem...

Povazuju se spis za backaendistu nez frontendistu, proto prosim o vase nazory...

Jaky framework byste zvolili vy, a proc? A naopak, jaky byste nezvolili a proc?

Diky...

Komentáře

  • jankuca : jQuery není framework, je to pouhá knihovna helperů pro manipulaci DOMu. Osobně bych na této úrovni (tj. knihovny pro views) zvolil React.js nebo Google Closure Library (+ kompilaci přes Closure Compiler). Framework, který tyto věci obaluje jsem si potom vždy psal sám. Jako základ používám https://github.com/jankuca/ian 10.4.2015
  • Občan : React pouze pokrývá view, JQuery jenom těch základních oblastí bude, jak prstů na ruce. 10.4.2015
odkaz
5 Milan Lempera
odpověděl/-a 17.4.2015
 
upravil/-a 18.4.2015

Moje zkušenost je, že backend programátorům vyhovuje Angular - je na něm vidět, že lidi kteří ho vyvíjeli nebyly primárně frontendisty.
DI, service, factory,... tlak na testovatelnost - to jsou věci, které přišly z backendu.
Navíc je to framework, máš tam všechno co potřebuješ, od šablon, možnosti tvorby vlastních elementů (directivy), po služby pro ajax. požadavky, promise, routing,... a obrovskou komunitu.

React je dneska hype a angular je u nás (hlavně díky Danovi) strašně potlačovanej, ale je potřeba si uvědomi že react je jenom "šablonovací" vrstva, není to framework, takže ho budeš používat s dalšími knihovnami, které si můžeš buď poskládat sám (což budeš dělat dlooooouho, pokud JS svět moc nesleduješ), nebo můžeš použít nějaký připravený stack, třeba od Dana (https://github.com/Steida/este)

Pokud chceš opravdu psát SPA aplikaci, která je celá v JS, běží u klienta a ze serveru si tahá jen data přes REST, tak na jQuery zapomeň.

Ať použiješ angular, nebo React + další knihovny, nebo jakýkoli jiný framework, věnuj nějaký čas studiu, abys věděl jak tvůj framework funguje, co jsou jeho silní a slabé stránky, protože když někdo přejde z backendu na frontend, vezme první knihovnu co se mu líbí a bez jakékoli přípravy začne bušit aplikaci, výsledkem je většinou hrozná prasárna (to je imho jeden z nejčastějších příčin nadávání na angular, lidi to použijí blbě a pak nadávají. A ano, zprasenou aplikaci v reactu už jsem taky viděl)

edit - verze:

asi před půl rokem na konferenci ng-europe byla oznámena verze 2.0, s tím, že bude hodně jiná oproti verzi 1. To vyvolalo poměrně velkou sérii reakcí typu kašlete na angular, všechno bude stejně jinak, nebude to kompatibilní. Po nějakém čase (a hlavně po ng-conf v březnu letošního roku) se ukazuje, že původní vlna byla přehnaná. Ano, verze 2 bude jiná, některé věci se zruší, jiné se zjednoduší, nebo rozdělí (např. directivy).

Tím nejdůležitějším sdělením je, že angular tým počítá se souběhem obou verzí, např. vzniká router, který bude umět obsluhovat komponenty verze 1 i 2, takže můžete mít aplikaci, v níž starší části budou v1, novější v2, případně můžete přejít postupně.
Navíc se dá očekávat, že jakmile bude 2 venku, začnou se objevovat postupy a nástroje na snadný převod kódu. Teď samozřejmě nic takového neexistuje, protože neexistuje finální verze 2.

Vývoj jedničkové větve se rozhodně nezastavil (zanedlouho vyjde verze 1.4, dále je plánovaná 1.5, zároveň s 1.4 by měl být vydán také výše zmíněný router) a čekat na verzi 2, když aktálně exitují jen Alpha Preview mi přijde hodně předčasné. Angular 1 je framework, který obsahuje vše co potřebujete a je dobře použitelný. Na druhou stranu je zatížen dobou svého vzniku a to je jeden z důvodů proč je 2 hodně jiná. Nicméně to už tak u software bývá a u aktuálních novinek to za pár let bude taky.

Komentáře

  • VirtualSkiper : Souhlasim, ze jsme extreme maly trh a bohuzel to svadi k tomu ze jedna silna osobnost tady vsechny dokaze strhnout do veci, ktere ve finale muze byt suboptimalni (viz Nette). Jinak to muzu cele podepsat, jen s poznamkou, ze najit chybu ve zmrsenem Reactu musi byt PEKLO. Jak se da v React-u delat v nejakem vetsim tymu, respektive co se stane az jednou bude mit nekdo sahnout do ciziho Reactiho kodu to ukaze az cas. 17.4.2015
  • skliblatik : @VirtualSkiper mělo by to být větší peklo než ve zmršeném angularu? 17.4.2015
  • VojtechMiksu : Jenom bych upozornil na to, ze zacit se soucasnym Angularem 1.x neni dobry napad, protoze se ho Angular tym rozhodl uplne zahodit a kompletne prepsat (az tak spatny byl). A verze 2.x (na kterou nejde z verze 1.x prejit) jeste neni hotova. Nicmene, pokud se stane takoveto zemetreseni, tak je to velky problem, protoze "mas tam všechno co potřebuješ, od šablon, možnosti tvorby vlastních elementů (directivy), po služby pro ajax. požadavky, promise, routing"... a tak si to vsechno musis pekne prepsat. 17.4.2015
  • VojtechMiksu : "Angular je u nás (hlavně díky Danovi) strašně potlačovanej" - Pokud vim, tak ho Dan v CR jeden cas i skolil a prosazoval. :-) 17.4.2015
  • skliblatik : @VojtechMiksu to je dobrá poznámka, s těma verzema. @Milan Lempera - angular.cz: chtělo by to možná doplnit, o jaké verzi angularu je řeč. 17.4.2015
  • Milan Lempera : doplnil jsem do příspěvku 18.4.2015
  • Milan Lempera : @VojtechMiksu ano, Dan se jeden čas zmiňoval o angularu pozitivně, ale jen do doby než vyšel react, o tom že by ho školil nevím. 18.4.2015
  • Martinex : Srovnávat Dana s Grudlem? Grudl = one man show. Dan = ani řádka vlastního kódu. Navíc Dan to nikomu nenutí, jen říká "já to dělám takto". Samotný odstavec "Techniques" na hxxps://github.com/steida/este je poklad, který ušetří moře času! 28.4.2015
  • jiri.knesl : Martinex: "nikomu nenutí, já to dělám takto" A co dělá David Grudl? On snad někoho nutí používat Nette? David Grudl napsal framework, který má desetitisíce řádek ukázkového kódu. Dan dal dohromady 47(!!!) knihoven, z nichž řada není ani ve verzi 1. Každý se může snadno podívat, jak programuje D.G. na desetitisících řádek. No jo, jak by ty dva mohl někdo srovnávat? 28.4.2015
  • skliblatik : @jiri.knesl zajímavé já pochopil komentář od Marginex jinak: neviděl jsem tam nařčení, že by David Grudl něco nutil. Pochopil jsem to jako 2 samostatné věci: 1) reakce na VirtualSkiperovo "viz Nette", kde mu nevyvrací suboptimálnost Nette, ale analogii David - Dan 2) reakce na "angular je u nás (hlavně díky Danovi) strašně potlačovanej" z příspěvku. Tak jsem zvědav, jak to bylo doopravdy myšleno. 28.4.2015

Pro zobrazení všech 18 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.