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

Reply via email to