Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Entendendo MVC

Entendendo MVC

Talk apresentado no dia 14/11 no Living Lab (Campo Grande - MS)

Antoniel Cardoso Martins

November 14, 2017
Tweet

More Decks by Antoniel Cardoso Martins

Other Decks in Programming

Transcript

  1. MVC - Padrão de arquitetura de software - Descrito em

    1979 por Trygve Reenskaug - Model, view and controller - Foco em reutilização e segregação de contextos - MVC ≠ Arquitetura em Camadas
  2. Model - Gerencia os dados e o estado da aplicação

    - Não interage com a interface - Muitas vezes (ou quase sempre) persiste os dados em algum lugar - O mesmo modelo deve ser reutilizado e inalterado em diferentes interfaces
  3. Padrões de persistência - Persistir no controller - Persistir no

    controller base - Active Record - Repository Pattern - DAO (Data access object)
  4. View - Apresentar o modelo ao usuário através de uma

    interface - Permite ao usuário interagir com a aplicação e manipular dados - Não armazena nenhum dado (exceto cache) - Facilmente reutilizável e configurável para exibir dados diferentes e de diferentes maneiras
  5. Controller - Intermediário entre Model & View - Atualiza a

    exibição quando o modelo muda - Atualiza o modelo quando o usuário manipula a visão - “Toma as decisões” da aplicação
  6. É permitido: - Usuário interagir com uma View - Views

    interagirem com Controllers - Controllers interagirem com Views - Controllers se comunicarem com outros Controllers - Controllers se comunicarem com o Model - Usuário interagir diretamente com os Controllers - Usuário interagir diretamente com o Model - Views interagirem diretamente com outras Views - Views interagirem diretamente com o Model - Models interagirem com outros Models* Não é permitido:
  7. Benefícios - Contextos segregados (Model - View) - CRUD -

    Views de vários tipos (respondendo PDF, XLS, específica para mobile) - Fácil manutenção - Testes ❤
  8. Como utilizar? - Ruby on Rails - ASP.NET - Django

    - Spring Framework - Composer/Laravel/Code Igniter/CakePHP - Express e Sails.js