Hi caleb, Interesting. I’ve added this thread to http://design.xwiki.org/xwiki/bin/view/Proposal/JavaScriptFrameworkEvaluation
Thanks -Vincent On 28 Jul 2014 at 16:56:21, Caleb James DeLisle ([email protected]) wrote: Since Marius wrote the FileManager application using AngularJS and there has been some discussion about making increasing use of it in XWiki, I wanted to share a review by someone who uses it in his job as their entire platform. These are advantages and disadvantages which I determined from the chat: + Easy and efficient workflow (when you know it) + Testing is easy and well understood + Debugging is not difficult, thanks to Angular's popularity and integrated software + Separates model and view well (makes angular apps skinable). - Owns your system, if angular dies you die with it - Learning curve - Though it separates your model and view well, you can't test your model and controller without a DOM present (he's not sure of this). Although I think we need to keep investigating, I feel that Angular warrants more investigation. Thanks, Caleb PS: And the actual conversation, including some useful links: 16:31 < cjd> gimme teh infoz 16:32 < SomeoneWeird> well, there's a lot of (maybe too much) magic going on behind the scenes 16:32 < SomeoneWeird> all the DI stuff, scope tracking 16:32 < SomeoneWeird> sticking one broken thing in the digest loop will kill the entire app 16:32 < cjd> /nod 16:32 < SomeoneWeird> but.. once you know how it works, it's great 16:33 < SomeoneWeird> it's entire stdlib is all promises (which I don't care for, but because it's ALL promises, it makes it a breeze to work with) 16:33 < SomeoneWeird> plus, the DI system is awsm 16:33 < cjd> ok 16:34 < SomeoneWeird> scoping it out because you wanna use it? 16:34 < cjd> xwiki is interested in it 16:34 < cjd> do you use it as a system to control your entire app or as a library? 16:34 < SomeoneWeird> it's our entire thing 16:34 < cjd> ok 16:34 < SomeoneWeird> our CMS is built up of multiple angular apps 16:34 < SomeoneWeird> which are nested 16:35 < cjd> how is it for debugging? 16:36 < SomeoneWeird> not terrible, the errors it gives up are sometimes broken (but we're using a slightly outdated version), but there's also batarang, which is a cool ext. so you can view scope contents in your browser 16:36 < SomeoneWeird> https://chrome.google.com/webstore/detail/angularjs-batarang/ighdmehidhipcmcojjgiloacoafjmpfk?hl=en 16:36 < cjd> ok 16:37 < SomeoneWeird> oh, testing 16:37 < SomeoneWeird> is awesome 16:37 < cjd> you can unit test in node ? 16:37 < SomeoneWeird> built in mocking support for everything in build in libraries 16:37 < SomeoneWeird> cjd: probably, using phantom or something 16:38 < cjd> ok, so you need a DOM to test 16:38 < SomeoneWeird> hm 16:38 < SomeoneWeird> i think 16:38 < cjd> ok 16:38 < SomeoneWeird> we're using karma at work 16:39 < cjd> explain? 16:39 < SomeoneWeird> http://karma-runner.github.io/0.12/index.html 16:39 < SomeoneWeird> check the vid 16:39 < cjd> ok 16:39 < SomeoneWeird> it's a test runner for browser tests 16:39 < SomeoneWeird> i think you can do headless stuff with it too 16:39 < cjd> how is the seperation between your models and the views? 16:40 < cjd> (is it skinnable?) 16:40 < SomeoneWeird> skinnable? 16:40 < cjd> could you write a new <fakehtml> view for a widget 16:41 < SomeoneWeird> yes 16:41 < cjd> so put a new skin on that widget 16:41 < SomeoneWeird> directives 16:41 < cjd> ok and you don't need to tinker with your model or controller code to do that? 16:41 < SomeoneWeird> models & views are pretty seperated, html can be completely declarative if you want 16:41 < cjd> ok 16:42 < SomeoneWeird> http://www.sitepoint.com/practical-guide-angularjs-directives/ 16:42 < cjd> so summary: 16:42 < SomeoneWeird> so you can define <hello>, and then bind that to a model etc 16:42 < cjd> + easy and efficient workflow (when you know it) 16:42 < SomeoneWeird> but they're seperate until you do 16:42 < cjd> + testing is easy and well understood 16:43 < cjd> + debugging is not difficult, thanks to angular's popularity and integrated software 16:43 < SomeoneWeird> there is a definite learning curve though 16:44 < cjd> - Owns your system, if angular dies you die with it 16:44 < SomeoneWeird> especially if people are used to using jquery etc 16:44 < cjd> - Learning curve 16:44 < cjd> - Though it seperates your model and view well, you can't test your model and controller without a DOM present. 16:45 < cjd> anything to add? 16:45 < SomeoneWeird> i'm not 100% sure on the last point 16:45 < cjd> ok 16:45 < cjd> can I publish this conversation? 16:46 < SomeoneWeird> i guess, hopefully I'm not wrong about anything >.> 16:46 < cjd> ok :) 16:48 < SomeoneWeird> http://www.reddit.com/r/webdev/comments/1rbz0h/is_angularjs_worth_developing_in/ 16:48 < SomeoneWeird> good points in here _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

