I just did some further review of angular, collecting some github statistics.
I think Angular is safe at this point from a project point of view
with the understanding that google can vanish at any moment and has done this
before on other projects.
Linkedin is using Angular in their stack (MongoDB,ExpressJS,AngularJS,NodeJS)
So consider this a +1 in principle to Angular but I'd like to see more thoughts
about how it will be used.
Do we want to use Angular dependency injection?
Do we want to move away from AMD?
Do we want to limit it's use to views and write models and business logic manually?
Thanks,
Caleb
On 07/28/2014 04:32 PM, vincent(a)massol.net wrote:
Hi caleb,
Interesting. I’ve added this thread to
http://design.xwiki.org/xwiki/bin/view/Proposal/JavaScriptFrameworkEvaluati…
Thanks
-Vincent
On 28 Jul 2014 at 16:56:21, Caleb James DeLisle (cjd(a)cjdns.fr) 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/ighdmehidhipcm…
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_developin…
16:48 < SomeoneWeird> good points in here
_______________________________________________
devs mailing list
devs(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________
devs mailing list
devs(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs