Model-View-Controller

#capture

Terminology


  • Separation of Concerns - each module or layer in an application should only have one job and not do the jobs of others.
  • Model
  • Viewer
  • Controller - A reusable GUI input for interacting with an application. Can be comboboxes, sliders, buttons, switches, or widgets.
  • Widget - a small application meant to be embedded in other applications
  • Layer - Logical gropings of functionality
  • Tiers - runtime environments that layers get deployed to

Libraries and Frameworks


  • Minimal library - provides a handful of objects and methods designed for well organized applications i.e. Backbone.js

Client-side concerns


  1. Module management
  2. Events
  3. Presentation and DOM manipulation
  4. Internationalization
  5. Data maangement and IO
  6. Routing - translating URLs to script actions
  7. Logging
  8. Analytics tracking
  9. Authentication
  10. Feature toggling

References


https://www.oreilly.com/library/view/programming-javascript-applications/9781491950289/ch05.html#:~:text=Separation%20of%20concerns%20is%20the,smaller%20units%20of%20encapsulated%20functionality.