MVC

1.705 visualizações

Publicada em

Módulo 2 - Padrão arquitetural Model-View-Controller.

Publicada em: Tecnologia, Educação

MVC

  1. 1. Lato Sensu em Sistemas Orientados a Objetos Módulo 2 Arquitetura Model View Controller Tuesday, August 11, 2009
  2. 2. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Tuesday, August 11, 2009
  3. 3. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões O que faz um bom músico ser bom ? Tuesday, August 11, 2009
  4. 4. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões O que faz um bom capoeirista ser bom ? Tuesday, August 11, 2009
  5. 5. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões O que faz um bom dançarino ser bom ? Tuesday, August 11, 2009
  6. 6. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões O que faz um bom músico ser bom! Tuesday, August 11, 2009
  7. 7. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões O que faz um bom capoeirista ser bom! Tuesday, August 11, 2009
  8. 8. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões O que faz um bom dançarino ser bom! Tuesday, August 11, 2009
  9. 9. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões O que faz um bom desenvolvedor ser bom ? Tuesday, August 11, 2009 ?
  10. 10. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões • O que faz um bom desenvolvedor ser bom ? - Experiência - Respostas para dúvidas frequentes - Soluções para problemas recorrentes - Conhecimento de padrões (patterns)‫‏‬ Tuesday, August 11, 2009
  11. 11. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões • Patterns - Arquitetura e engenharia civil - Mecânica - Ergonomia de software - Redes de computadores - Programação Arquitetura de software Sistemas distribuídos Banco de dados Projeto de sistemas OO Aplicações web Tuesday, August 11, 2009
  12. 12. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões • O que são os patterns ? - São maneiras aprovadas e recomendadas por projetistas experientes de como resolver determinados problemas de projeto. - São soluções de projeto que melhoram a qualidade de um software, se aplicadas num contexto apropriado. - Um padrão especifica como classes e objetos devem se comunicar para resolver um problema específico. Tuesday, August 11, 2009
  13. 13. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões • O que são os patterns ? - Gang of Four (GoF)‫‏‬ “Padrões de projeto são descrições de classes e objetos que são customizáveis para solucionar um problema geral de design em um contexto particular” - C. Alexander “Cada padrão descreve um problema que ocorre recorrentemente em nosso ambiente, e assim descreve o cerne da solução para aquele problema, de tal maneira que você pode usar esta solução uma centena de vezes sem implementá-la da mesma maneira duas vezes.” Tuesday, August 11, 2009
  14. 14. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões • Vantagens - Exploram estruturas de projeto que favorecem: Abstração Flexibilidade Modularidade Elegância - Agrega conhecimento de projeto de profissionais experientes. Tuesday, August 11, 2009
  15. 15. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões • Vantagens - Cria um vocabulário comum que provê maior expressividade na comunicação entre uma equipe de desenvolvimento - Aprende-se com o erro dos outro - Melhores práticas da POO - Melhor qualidade - Reuso de componentes de software. Tuesday, August 11, 2009
  16. 16. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões • Catálogo de patterns - Agrupamento de padrões - Documentação pré-formatada Nome do padrão Contexto em que deve ser aplicado Problema que ele ataca A solução que ele propõe Conseqüências de sua utilização Tuesday, August 11, 2009
  17. 17. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões • Exemplo de problema - Como mostrar uma determinada informação de diversas maneiras para diversos usuários? Tuesday, August 11, 2009
  18. 18. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões • Documentação completa Nome e classificação Colaborações Objetivo Conseqüências Sinônimos Implementação Motivação Código de exemplo Aplicabilidade Usos conhecidos Estrutura Padrões relacionados Participantes Tuesday, August 11, 2009
  19. 19. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões • Como escolher um padrão ? - Pesquise os problemas atacados por cada padrão - Veja se seu problema é equivalente a algum deles - Entenda como cada padrão resolve cada problema - Entenda como os padrões se inter-relacionam - Analise as consequências de sua utilização Tuesday, August 11, 2009
  20. 20. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões • Como usar um padrão ? - Leia o padrão de projeto inteiro para ter uma visão geral - Certifique-se de que entendeu bem a estrutura do padrão - Veja no código de exemplo como implementar o padrão - Escolha nomes para os participantes do padrão de acordo com o contexto da aplicação - Defina as classes - Defina os nomes dos métodos de acordo com a nomenclatura do contexto da aplicação - Implemente os métodos Tuesday, August 11, 2009
  21. 21. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões • Como não usar um padrão - Se existe uma maneira trivial para resolver um problema e um padrão de projeto, prefira a simplicidade - Só use um padrão de projeto quando necessário: deve haver ganhos claros com o uso do padrão - Padrões de projeto indevidamente aplicados aumentam a complexidade do software sem necessidade Tuesday, August 11, 2009
  22. 22. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões • O que nos interessa - Padrões de arquitetura Architectural Patterns - Padrões de projeto Design Patterns - Padrões da linguagem Low-level Patterns (Idioms)‫‏‬ Tuesday, August 11, 2009
  23. 23. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Padrões de Arquitetura • Altíssimo nível • Definem a estrutura macro da aplicação • Todas as atividades de desenvolvimento devem ser conduzidas sobre esta estrutura • Resolve problemas como - Divisão em módulos - Comunicação entre módulos - Expansão do sistema Tuesday, August 11, 2009
  24. 24. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Padrões de Projeto • Padrões de tamanho médio • Menores que os padrões de arquitetura • Maiores que os idiomas • Não impactam na estrutura básica do sistema, mas podem influenciar na arquitetura interna de um subsistema Tuesday, August 11, 2009
  25. 25. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Idiomas • Padrões de mais fina granularidade • Específicos de linguagem • Estilo de programação • Exemplo - Para laços infinitos Não use for(;;)‫‏‬ Não use while(1)‫‏‬ Use while(true) //Mesmo em C Tuesday, August 11, 2009
  26. 26. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Padrões de Arquitetura • MVC - Contexto Aplicações interativas com flexibilidade na interface do usuário - Problema Sistema de votação. Dados são inseridos em uma planilha e o resultado deve ser apresentado em diversos formatos. Tuesday, August 11, 2009
  27. 27. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 MVC problema dados Tuesday, August 11, 2009
  28. 28. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 MVC problema • Deve ser possível acrescentar novas formas de visualização dos dados dados Tuesday, August 11, 2009
  29. 29. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 MVC problema dados Tuesday, August 11, 2009
  30. 30. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 MVC solução Divida o sistema em 3 partes Tuesday, August 11, 2009
  31. 31. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 MVC solução • Divide a aplicação em 3 partes: - Model Dados e regras de negócio - View Apresentação de informações ao usuário - Controller Gerencia a entrada de dados Tuesday, August 11, 2009
  32. 32. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 MVC solução • Model - Manutenção dos dados - Regras de negócio - Independente da forma em que os dados são apresentados - Intependente da forma em que se dá a entrada de instruções Tuesday, August 11, 2009
  33. 33. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 MVC solução • View - Apresenta informações ao usuário - Obtém os dados do Model - Cada View possui um Controller associado Tuesday, August 11, 2009
  34. 34. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 MVC solução • Controller - Recebe as ações do usuário, geralmente na forma de eventos - Traduz os eventos em solicitações de serviços para o Model ou para a View Tuesday, August 11, 2009
  35. 35. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Tuesday, August 11, 2009
  36. 36. Lato Sensu em Sistemas Orientados a Objetos Q&A MSc. Alexandre Gomes alegomes@gmail.com Tuesday, August 11, 2009

×