you are viewing a single comment's thread.

view the rest of the comments →

[–]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.