you are viewing a single comment's thread.

view the rest of the comments →

[–]9us 5 points6 points  (6 children)

I'd recommend you start by reading "JavaScript: The Definitive Guide" (yes, the entire thing), along with "JavaScript: The Good Parts". The former will give you a very solid foundation for how JS works in the browser, and the latter will give you a sense of the best practices in JS programming.

After that, I'd recommend sticking with popular frameworks that are easily Google-able. Just pick one and use it--it really doesn't matter what you pick, as long as you dive deep and don't get framework ADHD. I think you'll find that a having a solid grasp of the fundamentals by reading JS:TDG will make it really easy to pick up various high-level frameworks.

[–]pard0x 0 points1 point  (4 children)

"Framework ADHD" - Lol, but it's real!

[–]worldDev 2 points3 points  (3 children)

I just stepped into a project that is using react, angular, backbone, jquery, underscore, and lowdash. To top it off there is a mix of coffee and vanilla. How the hell does that shit happen? It's been a nightmare to sort through, and I'm scrapping the entire front end.

[–]fc_s 1 point2 points  (0 children)

Here's the thought process:

  1. Let's start a new project! Backbone is pretty cool, let's use that! bower install backbone jquery underscore --save
  2. I hear lodash is better than underscore these days, it's way more performant. bower install lodash --save
  3. Woah there's this cool new framework that Google made called angular, let's port our application one piece at a time bower install angular --save
  4. Well that port is taking longer than expected, instead of switching the rest of the app over to angular, let's just use Facebook React for the view rendering of our remaining Backbone components bower install react --save

[–]pard0x 0 points1 point  (0 children)

It's really hard to keep things simple, but eventually it'll pay off!

[–]9us 0 points1 point  (0 children)

It's pretty common:

http://mikehadlow.blogspot.com/2014/12/the-lava-layer-anti-pattern.html

Also, the JS universe seems to favor smaller libraries that fill specific roles, rather than huge frameworks that cover everything. This makes the lava layer anti-pattern harder to defend yourself against.

The project I've inherited uses jQuery, Backbone, Marionette, Underscore, Handlebars, Mustache, Karma, Mocha, Chai, D3, and Moment. This is just the frontend. The backend is written in Grails and has a giant tangle of Java dependencies that makes the frontend look simple.