Kwastie schreef op maandag 24 november 2014 @ 21:18:
--
Zijn er mensen die ervaring hebben met het ReactJS in combinatie met Flux(of afgeleiden)?
Ik heb er nog weinig mee gewerkt maar veel concepten spreken mij aan:
Wat mij aanspreekt:
- Alles is een element/component (vergelijkbaar met Angular directives)
- Virtual DOM => Update alleen wat gewijzigd is (== betere performance)
- Duidelijke flow van data
Wat minder:
- Testbaarheid is niet duidelijk
- Kleine (maar groeiende) community
Sinds kort ben ik met ReactJS begonnen als een proef-project voor een nieuw platform. Het proefproject heb ik op github staan, zie:
https://github.com/WRidder/react-spa.
Met betrekking tot de testbaarheid: Zolang je je componenten goed opdeelt zijn alle delen die geen DOM-interactie uitstekend te testen met b.v. Jasmine/Qunit. Zodra er DOM intereactie is is dit wel testbaar, alleen een stuk lastiger al (vaak met iets als PhantomJS). Echter ga je dan al vrij snel van unit testing naar integratie tests (b.v. Selenium). Testing in javascript is wel een gebied die nog jong is, maar bijna alles is gemakkelijk testbaar.
Gezien de hele discussie kom ik blijkbaar uit een andere hoek dan de meesten hier. Ik ben begonnen met C++ (robotica), PHP (magento, joomla, wordpress) en vooral bezig geweest met javascript (bestel applicaties, data visualisatie e.d.). Later ben ik SPA's gaan ontwikkelen met o.a. Backbone, MarionetteJS.
Wat ik zelf erg prettig vind is de scheiding tussen backend en frontend d.m.v. een REST api. Dit werkt goed met een grotere groep developers.
Op dit moment ben ik dus bezig met ReactJS en Reflux voor een sociaal platform. De uitdagingen zijn inderdaad SEO (uitstekend op te lossen met React ivm server-side rendering, zie demo), snelheid (memory management / rendering) en schaalbaarheid en compatibiliteit. Daarentegen is de ontwikkeltijd voor een platform, voor mij althans, een stuk korter. NodeJS in combinatie met b.v. Mongo is erg sterk en snel qua backend.
Vanuit mijn perspectief ben ik het er niet mee eens dat javascript te langzaam zou zijn voor de client. Intendeel zelfs, het kan gigantisch snel zijn. Bijkomend scheelt het een hoop resources op de server. Het is echter wel zo dat je goed moet weten wat je doet, zeker voor de grotere applicaties. Het overgrote deel van de javascript projecten en ontwikkelaars zijn van een laag/gemiddeld niveau, deels vanwege de lage instapdrempel. Dit zorgt ook voor het langzamere imago van JS denk ik.
Javascript op de client als semi-standalone-app is wellicht vrij jong, maar heeft wat mij betreft zeker toekomst. De community is inderdaad klein, maar groeit snel. De tools daarentegen worden razendsnel ontwikkelt en zijn van hoge kwaliteit zoals b.v. Node (npm) en Bower (dependency managers), Jasmine/Jest (testing framework), Webstorm (ide), Grunt/Gulp (task runners + een berg aan tools zoals minify, css prefixers etc), Webpack/RequireJS/CommonJS (module en file loaders) en ga zo maar door.
Als ik een beetje rondkijk op GoT lijkt frontend en backend javascript hier nog niet echt te leven, zonde. Daarom interessante discussie!
[
Voor 17% gewijzigd door
IFASS op 08-01-2015 01:20
]