Skip to content

Instantly share code, notes, and snippets.

@sebworks
Last active September 4, 2016 00:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sebworks/e55ee8a22b616f73edc32550da9268a3 to your computer and use it in GitHub Desktop.
Save sebworks/e55ee8a22b616f73edc32550da9268a3 to your computer and use it in GitHub Desktop.
Notes on Frameworks

#Notes on Frameworks

We opted not to use any frameworks; the application isn't a SPA (single page application) and we didn't think it's level of complexity warranted using one. This might be a mistake and it's worth revisiting this decision, now that we have migrated to Atomic design.

The pros / cons of that decision are as follows:

Pros:
- Smaller builds and minimal markup ( JS, CSS, HTML). Many frameworks are bloated and 
  applications only use a small portion of their functionality / features.

- Learning curve is drastically reduced by not requiring people to learn a new framework.

- Easier for developers to architect / debug the application by requiring a better understanding
  of DOM, JS modules, and CSS.

- Some frameworks have ventured off the pure JS path, making them inadequate tools for new 
  developers learning JS (React with Redux, Angular 2 via Typescript). 

Cons:

- Development time is increased by not relying upon existing frameworks and components.

- Not having a standard way to build components can lead to confusion and non-uniform code.

- Forces developers to really understand DOM manipulation and it's impact on performance 
  ( reflows / repaints ).  React, Angular, and Amp all manage DOM interactions for you through 
  virtual dom and buffering reads / writes. There are very, very few devs that are good at 
  doing this without a framework or library.

The decision to use a framework should be made on a project-by-project basis. It should be driven by the team make-up, project goals, and scope. The only framework I would recommend avoiding at this time is Angular.

The Angular project is in a state of flux and I would wait until Angular 2 is a bit more mature.

Excellent article and talk on frameworks: https://aerotwist.com/blog/the-cost-of-frameworks/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment