A framework is a collection of code used to solve a set of related use cases. Most frameworks focus on developer productivity at the expense of precise control.
- Are well documented
- Solve several closely related use cases.
- Are actively maintained
- Are extensible
- Don't change their interface often.
When deciding between using a framework or a library, ask:
- How much control do we have to give up? Is that OK for our current context?
- Which parts of the framework will we be using? A small sliver or most of it?
- How large of a surface area does the framework have?
- How much will we need to learn to be effective?
Some popular frameworks are:
- Ruby on Rails - A server side web application framework for interacting with databases and building web pages.
- jQuery - A front-end framework for manipulating web pages and interacting with web APIs