MVC MVP MVVM para Web

2.396 visualizações

Publicada em

Aprenda um pouco mais sobre as novas tendências para desenvolvimento web e os conceitos utilizados pelos novos frameworks como Knockout, Ember, Angular, Backbone, Spine, etc. Saiba um pouco mais sobre MVC, MVP, e MVVP.

Publicada em: Tecnologia
0 comentários
6 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
2.396
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
6
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

MVC MVP MVVM para Web

  1. 1. MVC MVP MVVM André Faria Gomes @andrefaria
  2. 2. MVC 1979 (Smalltalk) Model-View-ControllerMelhor arquitetura através de separation of concernsIsola os dados (model) das interfaces de usuário (views) Controlers tratam da entrada de usuário e coordenação das views e models
  3. 3. 4 VC ipt M r vaSc Ja Backbone, Ember.js and JavaScriptMVCAjuda a resolver o problema do Js spaghetti estruturando o código
  4. 4. Gerenciar os dados de negócioNão diz respeito a UI, porémquando um modelo muda,geralmente vai notificarobservadores para que asmudanças também ocorram naapresentação. Podendo ter váriosobservadores por modelo. Models
  5. 5. Representações visuais dos modelos em seu estado atualA tarefa de atualizar o modelo (geralmente) é do controllerUsuários interagem com a view, lendo, editando, etc.Views
  6. 6. TemplatesMuitos frameworks usam templates porque é uma má prática (de codificação dee performance) criar longos blocos de strings concatenadas. A aplicação recebe dados em Json e aplica no Template
  7. 7. Intermediários entre models e viewsAtualiza a views quando o model mudaAtualiza o model quando o usuário altera a viewNem sempre explícito, nobackbone a responsabilidadeé divida pelos Routes eView, outros frameworkscomo o Spine já tem oController explícito. Controllers
  8. 8. Separation of Concerns facilita manutençãoDesacoplar model e view facilita a escrita de testesPermite reutilizar lógica em diferentes locais da aplicação Benefícios
  9. 9. 1990 (Smalltalk) MVP Model-View-PresenterO Presenter é um componente que contém a regra de negóciorelacionada a user-interface, invocações da view são delegadaspara o presenter.O presenter fala com a view e com o model, porém esses sãoisoldados entre si. Eles fazem o bind eles a view e o controller. Asviews expõe seeters para que o presenter possam alterar seusdados.Útil quando é preciso reutilizar regras de apresentação. Muitousado em grandes aplicações corporativas.
  10. 10. http://geekswithblogs.net/dlussier/archive/2009/11/21/136454.aspx
  11. 11. MVVM 2005 Microsoft Model View ViewModelBaseado em MVC e MVP procura separar de forma mais clara a regra de negócio da interface de usuário das outras regras ecomportamentos da aplicação através data- bindings declarativos.Isso facilita que UI e desenvolvimento possam ocorrer simultaneamente na mesma base de código. Desenvolvedores de UI escrevembindings no HTML, enquanto desenvolvedores cuidam do resto.
  12. 12. Dados apenas, nada de Comportamento (Tipicamente)Não formatam informação nem fazem aparecer dados na UI, isso égerenciado pelo ViewModel Models
  13. 13. Interação com o usuárioNão é responsável por gerenciar o estadoRepresentam o estado do ViewModelGeralmente é apenas um HTML com bindings declarativos Views
  14. 14. Um tipo de controller especializado que converte dados.Transforma o model e view e passa comandos do views para o model.Representa os dados da Views para o Model.TestávelPode ser exagero para UI’s muito simples Viewmodel
  15. 15. “I must admit that when I first reviewed implementationsof MVVM (e.g KnockoutJS, Knockback), I was surprisedthat any developer would want to return to the days of oldwhere we mixed logic (JavaScript) with our markup andfound it quickly unmaintainable.” Addy Osmani
  16. 16. http://codebrief.com/2012/01/the-top-10-javascript-mvc-frameworks-reviewed/
  17. 17. refshttp://addyosmani.com/blog
  18. 18. @andrefariahttp://blog.andrefaria.com

×