📘
Notes
  • Welcome
  • Domain Name System (DNS)
  • Developer Road Maps
  • App Security
  • Terminal Shortcuts/Commands
  • Technical Vocab
  • Kubernetes
  • Database Migrations
  • How to Write UML Diagrams
  • Linux
  • Testing in Software
  • Front-end / UI / UX
    • Redux
    • Notes on Design
    • HTML
    • CSS
    • React
  • Backend / Infrastructure
    • Terraform
    • Content Delivery Network (CDN)
    • Elasticsearch
    • npm
      • how to fix npm vulnerabilities
    • AWS Serverless Computing
    • Databases
      • Object Relational Mapper (ORM)
      • Database Migration
      • Relational Database Management System
    • TCP/IP
    • Web Servers
      • Go
      • HyperText Transfer Protocol (HTTP)
        • Request / Response
          • REST API
          • GraphQL / Apollo
        • Postman
    • Docker / Containers
    • Caches
      • Redis
    • MVC (Model-View-Controller)
  • General Career Advice
    • Software Engineering @Google
  • Technical Books
    • Designing Data-Intensive Systems
    • 30 Days of React
    • The Art of Game Design: A Book of Lenses
  • Data Structures / Algorithms
    • Sorting
    • Tries
  • Courses
    • Full Stack Open
    • iOS App Dev
Powered by GitBook
On this page
  1. Backend / Infrastructure

MVC (Model-View-Controller)

PreviousRedisNextSoftware Engineering @Google

Last updated 1 year ago

A software design pattern usually used when designing user interfaces.

Model

The central component of the pattern. It is the application's dynamic data structure, independent of the user interface. It directly manages the data, logic and rules of the application.

View

Any representation of information such as a chart, diagram or table. Multiple views of the same information are possible, such as a bar chart for management and a tabular view for accountants.

Controller

Accepts input and converts it to commands for the model or view.

In addition to dividing the application into these components, the model–view–controller design defines the interactions between them.

  • The model is responsible for managing the data of the application. It receives user input from the controller.

  • The view renders presentation of the model in a particular format.

  • The controller responds to the user input and performs interactions on the data model objects. The controller receives the input, optionally validates it and then passes the input to the model.

As with other software patterns, MVC expresses the "core of the solution" to a problem while allowing it to be adapted for each system. Particular MVC designs can vary significantly from the traditional description here.

[10]
[11]
[12]
[13]
[14]