× {{alert.msg}} Never ask again
Receive New Tutorials

MV* Frameworks Office Hours Q&A: REACT.js, Angular Design Practices, and More

– {{showDate(postTime)}}

This post will talk about which MV* to choose for large apps in terms of code base maintainability, AngularJS design practices to follow, and whether you should consider using REACT.js + Flux + Backbone.js for your project.

The text summary is written by the Codementor team and is based on the Codementor Office Hours hosted by Craig McKeachie, who authored the JavaScript Framework Guide. The summary may vary from the original video and if you see any issues, please let us know!

Due to stricter conventions, is Ember at advantage in the long term for larger applications in terms of code base maintainability?

I think Angular and Ember both have a big advantage over Backbone in terms of larger code bases and maintainability because you’re writing less code, particularly in the case of Ember. However, from an Angular argument—not that Ember’s not testable or anything—but Angular is so testable because of the Inversion of Control (IoC) and dependency injection. Thus, this is a big advantage for Angular if you’re also looking to test that large application. However, you have to be disciplined and for both Angular and Ember, which means following style guides and such.

Do you recommend any design practices to follow for writing a huge Angular app?

John Papa has made a great style guide in terms of writing large AngularJS apps. It will help you structure your files, organize your code, make sure you’re not polluting the global namespace, and more. Basically, this is a fantastic guide to follow which will help you avoid things that will catch up to you in larger apps but not in smaller ones.

What do you think about REACT? A lot of people seem to be using REACT.js + Flux + Backbone.js

For those who don’t know what REACT.js is, it’s a library/framework from Facebook for building user interfaces.

When I first released the JavaScript Framework Guide, I got this question a lot, since REACT has done a lot of catching up. I wrote a blog post that summarized my thoughts on REACT here. However, to be honest I am still learning and trying to understand REACT. Much like how I feel about Backbone, I haven’t quite warmed up to it yet. However, I understand why several developers, particularly those who are doing a lot of mobile development and really care about performance such as DOM-rendering and frames per second, would be okay with writing really low level code. They have those needs, and there are a lot of mobile users with little bandwidth, so I think if I were in that kind of scenario, I’d definitely be looking at REACT as well. However, I feel as though a framework on top of REACT may be the answer.

Another framework that is gaining a lot of ground in the same space is famo.us, which has some real advantages to Angular and Ember in terms of performance, but to me they’re a little too close to the metal to be productive enough for most of the apps I’m building. Thus, personally I have a hard time thinking about using those, but if performance is your concern, you’ll likely find it more acceptable to write more code to achieve better performance.

Which MV* is More Poised to Handle the Object.Observe()?

Angular and Ember are both well-poised to handle Object.Observe() since they both use ECMAScript 6 (ES6) and therefore are better-positioned than Backbone. I don’t know if you’ve noticed, buck although Backbone is still getting some maintenance over the project, there is not a lot of innovation happening. It is what it is good for as a light library, but there aren’t new features coming out, and it shows, since it’s a version behind with ES5. Of course, it’s still a good, stable framework, but if you’re looking for innovation and things moving forward, Angular and Ember are better choices.

 Other posts in this series with Craig McKeachie:

Codementor Craig McKeachie has been a software developer for nearly 20 years, mostly on the Microsoft stack. At one point he was a Microsoft Certified Trainer, though in recent years he has gotten a lot more interested in front-end development (HTML, CSS, and JavaScript), usability and user experience after working as a consultant at a few different digital interactive agencies on projects.

If you’re interested in Craig’s book JavaScript Framework Guide but would prefer speaking to him one-on-one to make your decision, Craig is offering his book & videos (valued at $99) for free if you schedule an hour-long session with him on Codementor. If you schedule 2 hours, he would throw in the next tier package (valued at $249, which includes the ng-book). You’ll get the team package (valued $999) free of charge if you schedule a 4 hour session with him.

Craig McKeachieNeed Craig’s help? Book a 1-on-1 session!

or join us as an expert mentor!

Craig McKeachie
Craig McKeachie
Developer, Author, Trainer at Funny Ant LLC
Hire the Author

Questions about this tutorial?  Get Live 1:1 help from JavaScript experts!
K M Rakibul Islam (Rakib)
K M Rakibul Islam (Rakib)
Top Ruby on Rails Mentor of January - December, 2017 & January - April 2018 (16 months in a row!) at Codementor | Experienced (9+ years) and friendly Ruby on Rails Developer/Mentor (with passion for helping others learn) | 1055+ Sessions
I am the Top Ruby on Rails Mentor of January, February, March, April, May, June, July, August, September, October, November, December 2017 &...
Hire this Expert
Humayun Shabbir
Humayun Shabbir
Expert Visual Basic, C# and JavaScript Developer
I am an expert Visual Basic developer with over 15 years of experience. I am highly talented and skilled in problem solving and understanding...
Hire this Expert
comments powered by Disqus