O que é MVC?
Um padrão mais antigo que o próprio Rails
A web: requisição-resposta percorreu todo o caminho de uma requisição Rails: Puma, middleware, router, controller, model, view. Este curso olha para algo mais estreito: o MVC em si, como padrão de design, e não como encanamento do Rails.
Trygve Reenskaug criou o Model-View-Controller em 1979 na Xerox PARC, anos antes de "padrão de design" ser um termo comum. Depois ele virou a arquitetura da interface gráfica do Smalltalk-80, uma das primeiras GUIs, muito antes do Rails ou da web. O Rails não inventou o MVC; adotou um padrão que já tinha se provado por duas décadas.
Três papéis, um trabalho cada
O MVC divide uma aplicação em três tipos de responsabilidade:
Model → dados e regras de negócio: o que É verdade, o que PODE acontecer
View → apresentação: como algo é EXIBIDO
Controller → orquestração: qual Model consultar, qual View mostrar
Cada papel tem um trabalho que os outros dois não fazem. Um Model nunca decide como algo aparece na tela. Uma View nunca decide se uma regra de negócio passa. Um Controller não guarda lógica de negócio; ele dirige o tráfego entre os outros dois.
Por que dividir qualquer coisa?
Sem a divisão, um arquivo só poderia guardar "checar se o usuário pode fazer isso", "calcular o total" e "gerar o HTML", tudo embaralhado. O MVC trata isso como três tipos de trabalho. Mantê-los em três lugares torna cada um mais fácil de achar, testar e mudar sem quebrar os outros.
Pontos-chave
- O MVC é décadas mais velho que o Rails: Trygve Reenskaug, Xerox PARC, 1979, depois a arquitetura da GUI do Smalltalk-80.
- O Model cuida de dados e regras de negócio, a View da apresentação, e o Controller coordena os dois.
- Cada papel fica fora do trabalho dos outros dois; essa separação é o objetivo.
- Lugares separados tornam cada tipo de trabalho mais fácil de achar, testar e mudar.
Continue com a aula 2
O model possui dados e regras
Mostra que validações e fatos derivados como published? ficam no Model, e que gerar HTML não fica.
Com uma conta grátis você também tem os quizzes, seu progresso e suas anotações, e a discussão.