Frameworks de desenvolvimento web

4.475 visualizações

Publicada em

Abordagem do conceito de framework, e das vantagens e desvantagens associadas.

Publicada em: Educação
0 comentários
3 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

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

Nenhuma nota no slide
  • Model-view-controller (MVC) é um padrão de arquitetura de software. Com o aumento da complexidade das aplicações desenvolvidas torna-se fundamental a separação entre os dados (Model) e o layout (View). Desta forma, alterações feitas no layout não afetam a manipulação de dados, e estes poderão ser reorganizados sem alterar o layout.
  • Frameworks de desenvolvimento web

    1. 1. SEMINÁRIO 2011/2012FRAMEWORKSArlindo Santos (acsantos@ipb.pt)
    2. 2. Seminário frameworks2011/2012 O que é?• “Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.” • Frameworks• (Fayad e Schmidt) Arlindo Santos 09-05-2012 2
    3. 3. Seminário frameworks2011/2012 O que é?• Um framework, em desenvolvimento de software, é uma abstração que une códigos comuns entre vários projetos de software fornecendo uma funcionalidade genérica. Arlindo Santos 09-05-2012 3
    4. 4. Seminário frameworks2011/2012 O que é?• Ao contrário das bibliotecas, é o framework quem dita o fluxo de controle da aplicação, chamado de Inversão de Controle. Arlindo Santos 09-05-2012 4
    5. 5. Seminário frameworks2011/2012 Frameworks• Framework de software compreende de um conjunto de classes implementadas em uma linguagem de programação específica, usadas para auxiliar o desenvolvimento de software. Arlindo Santos 09-05-2012 5
    6. 6. Seminário frameworks2011/2012 O que é?Framework é umaarquitectura, um conjuntode ficheiros organizados,com uma série defunções, rotinas evariáveis, que servempara nos poupar o tempode “REIVENTAR ARODA” diversas ediversas vezes, para cadanovo projeto Arlindo Santos 09-05-2012 6
    7. 7. Seminário frameworks2011/2012 Problema vs Solução• Qual é o problema? – Programar é difícil.• Onde está a maior dificuldade? – “O Design de Interface e a sua construção de maneira funcional é a chave da propriedade intelectual de um software e é bem mais difícil de ser criada ou recriada do que o código fonte.” - Peter Deutsch. Arlindo Santos 09-05-2012 7
    8. 8. Seminário frameworks2011/2012 Problema vs Solução• Ou seja: – os requisitos funcionais de um software são facilmente copiados por outro, uma boa solução de interface não. Arlindo Santos 09-05-2012 8
    9. 9. Seminário frameworks2011/2012 Problema vs Solução• Solução: – Temos que fornecer formas de re-uso que vão além de código: re-uso de análise, design, código. – Framework orientado a objeto. Arlindo Santos 09-05-2012 9
    10. 10. Seminário frameworks2011/2012 Problema vs Solução• Onde o framework entra… – Um framework captura a funcionalidade comum a várias aplicações. – As aplicações devem ter algo razoavelmente grande em comum: pertencer a um mesmo domínio de problema. Arlindo Santos 09-05-2012 10
    11. 11. Seminário frameworks2011/2012 Problema vs Solução• Um framework é uma aplicação quase completa, mas com pedaços que faltam!• Ao usar um framework, o trabalho consiste em criar os pedaços que são específicos para sua aplicação. Arlindo Santos 09-05-2012 11
    12. 12. Seminário frameworks2011/2012 Padrões vs frameworks• Padrões de projeto de software não são frameworks, pois padrões possuem um nível maior de abstração.• Um framework inclui código, diferentemente de um padrão de projeto.• Um framework pode ser modelado com vários padrões de projeto, e sempre possuem um domínio de uma aplicação particular, algo que não ocorre nos padrões e projeto de software. Arlindo Santos 09-05-2012 12
    13. 13. Seminário frameworks2011/2012 Vantagens• Redução de custos• Redução de time-to-market• Deteção de erros – cada funcionalidade está separada por blocos• Segurança• Extensibilidade• Ajuda fácil - comunidade Arlindo Santos 09-05-2012 13
    14. 14. Seminário frameworks2011/2012 Vantagens• A longo prazo - Despois do período de familiarização, as vantagens aparecem• Produtividade - Como toda a equipa usa um determinado framework, então usam as mesmas convenções, classes e bibliotecas, a manutenção de um programa fica muito mais ágil (produtividade);• Eliminação das tarefas repetitivas• Facilidade na geração de testes• Geração de documentação Arlindo Santos 09-05-2012 14
    15. 15. Seminário frameworks2011/2012 Vantagens• Maximização de re-uso (análise, design, código, testes).• Programadores concentram-se em adicionar valor ao invés de reinventar a roda.• Menos manutenção.• A herança permite alterar ou adicionar funcionalidades.• Estabilização melhor do código (menos defeitos) devido ao seu uso em várias aplicações.• Uso de tecnologias embutidas Arlindo Santos 09-05-2012 15
    16. 16. Seminário frameworks2011/2012 Vantagens• Melhor consistência e compatibilidade entre aplicações.• Framework oferece uma forma de empacotar o conhecimento de especialistas sobre domínios de problemas.• Não se perde o conhecimento com a saída de especialistas e o conhecimento pode ser usado/estudado sem a presença do especialista.• Resultado: criação de patrimônio estratégico da empresa (Strategic Asset Building). Arlindo Santos 09-05-2012 16
    17. 17. Seminário frameworks2011/2012 Desvantagens• Dificuldade de aprendizagem• Construir um framework é complexo- Necessita de planeamento• Quem pode pensar em longo prazo quando se está competindo "On Internet time"?- Necessário modificar o processo de desenvolvimento e criar novos incentivos- Benefícios são realizados em longo prazo Arlindo Santos 09-05-2012 17
    18. 18. Seminário frameworks2011/2012 Características Básicas•Um framework deve ser reusável: – É o propósito final!•Para ser reusável, deve primeiro ser usável: – Bem documentado – Fácil de usar• Deve ser extensível: – O framework contém funcionalidade abstrata (sem implementação) que deve ser completada• Deve ser eficiente: – Devido a seu uso em muitas situações, algumas das quais poderão necessitar de eficiência• Deve ser completo: – Para endereçar o domínio do problema pretendido Arlindo Santos 09-05-2012 18
    19. 19. Seminário frameworks2011/2012 Tecnologias embutidas• MVC• ActiveRecord• AJAX (Asynchronous Javascript and XML)• Internacionalização: É o processo de possibilitar que seja facilmente alterada a linguagem da interface e de mensagens de uma determinada aplicação.• ORM• … Arlindo Santos 09-05-2012 19
    20. 20. Seminário frameworks2011/2012 Tecnologias embutidas• MVC Arlindo Santos 09-05-2012 20
    21. 21. Seminário frameworks2011/2012 Tecnologias embutidas• MVC – View • É a interface do utilizador, é a transformação dos dados do Model para que o utilizador possa interagir com o sistema. – Model • Model é a camada de lógica do MVC que é usada pela camada de apresentação e de acesso ao espaço de armazenamento (ex: base de dados). – Controler • O controller processa e responde a eventos dos utilizadores (GET, POST e entre outros), podendo alterar o estado do Model. Arlindo Santos 09-05-2012 21
    22. 22. Seminário frameworks2011/2012 Tecnologias embutidas• MVC – Vantagens • Como o modelo MVC gere múltiplas formas de visualização usando o mesmo modelo, e é fácil manter, testar e atualizar sistemas múltiplos; • É muito simples incluir novos clientes. Inclui-se apenas novos views e controles; • Torna a aplicação escalável; • É possível ter um desenvolvimento em paralelo para o modelo, visualizador e controle pois são independentes; • É mais fácil gerir a complexidade da aplicação dividindo-a em modelo, visualizador e controlador (MVC). Arlindo Santos 09-05-2012 22
    23. 23. Seminário frameworks2011/2012 Tecnologias embutidas• MVC – Desvantagens • Requer uma quantidade maior de tempo para analisar e modelar o sistema; • Requer pessoal com conhecimento especializado; • Não é aconselhável para pequenas aplicações. Arlindo Santos 09-05-2012 23
    24. 24. Seminário frameworks2011/2012 Tecnologias embutidas• ORM (Object-relational mapping) – O ORM é uma técnica de desenvolvimento utilizada para reduzir a impedância da programação orientada a objetos utilizando base de dados relacionais. As tabelas do base de dados são representadas através de classes e os registos de cada tabela são representados como instâncias das classes correspondentes. – Com esta técnica, o programador não precisa de se preocupar com os comandos em linguagem SQL; irá usar uma interface de programação simples que faz todo o trabalho de persistência. – Não é necessária uma correspondência direta entre as tabelas de dados e as classes do programa. A relação entre as tabelas onde originam os dados e o objeto que os disponibiliza é configurada pelo programador, isolando o código do programa das alterações à organização dos dados nas tabelas do banco de dados. Arlindo Santos 09-05-2012 24
    25. 25. Seminário frameworks 2011/2012 Tecnologias embutidas• Validation – Indica se o framework tem alguma estrutura de validação embutida em sua estrutura.• Auth module – Indica se a estrutura tem um módulo embutido para assegurar a autenticação do utilizador.• Modules – Indica se a estrutura do framework é modularizada por exemplo, possui um parser da alimentação de RSS, o módulo de separação de pdf´s ou etc;• Tableless – O nome Tableless é um nome mais “publicitário” para se referir a sites que seguem os Padrões. Os sites Tableless não são construídos usando as tables. Elas usam XHTML para apresentar a informação e as Folhas de Estilo (CSS) para formatar essa informação. Pelo motivo de as tables não serem usadas para a estruturação, essa metodologia se chama Tableless. Arlindo Santos 09-05-2012 25
    26. 26. Seminário frameworks2011/2012 Tecnologias embutidas• ActiveRecord – Abstrai o programador de conhecer a fundo uma linguagem de manipulação de dados, como a SQL, além de manter toda a aplicação desenvolvida no paradigma orientado a objetos.• Db objects – Indica se a estrutura inclui outros objetos da base de dados, como classes de linguagem de programação orientada a objetos• Templates – Os templates, ou modelos, têm por finalidade separar o design, a parte HTML, da programação, no nosso caso, o PHP. Arlindo Santos 09-05-2012 26
    27. 27. Seminário frameworks 2011/2012 Tecnologias embutidas• AJAX (Asynchronous Javascript and XML) – Toda página AJAX está em um objeto chamado XMLHTTPRequest, o qual permite que sejam feitas requisições assíncronas ao servidor web, não precisando de atualizações na página ou espera por parte do utilizador.• Caching – Caching é o melhor recurso para a redução de processamento do servidor envolvendo a renderização e lógica da camada de acesso a dados. – Podemos dividir o caching em três tipos básicos: • Cache de Respostas (OutputCache) – O cache de respostas é a forma mais simples de se tirar proveito do sistema de cache, sem necessidade de redesenho ou alterações de código - o conteúdo a ser enviado ao cliente (resposta) é armazenado em memória e disponibilizado para as próximas requisições. De fato, todo o conteúdo dinâmico pode ser armazenado em mecanismos que suportem o HTTP 1.1 (servidor web, navegadores e proxies) de forma que requisições subsequentes sejam servidas diretamente a partir do cache sem execução de código. • Cache de Fragmento – Existem situações onde o cache de toda uma página de resposta não é adequado. Um caso óbvio, seria àquele no qual o desenho da aplicação requerer que algumas partes/seções de uma página específica tenham versões específicas para um determinado grupo de utilizadores (e.g. menu baseado no perfil do utilizador) e que outras partes sejam comuns à todos (e.g. conteúdo genérico c/ notícias gerais). Este é o cenário ideal para o uso do fragment caching. • Cache de Objetos – O objeto de Cache é recriado a cada reinício da aplicação, o que nos lembra uma certa similaridade com o objeto Application. A principal diferença entre os dois reside no fato de que o objeto de Cache proporciona funcionalidade específicas, tais como dependências e políticas de expiração. Arlindo Santos 09-05-2012 27
    28. 28. Seminário frameworks 2011/2012 Tecnologias embutidas• Integração PEAR – Pear é um sistema de repositório e de distribuição para componentes reutilizáveis de PHP. – Pear é composto por: • Repositório organizado e padronizado de código aberto para programadores de PHP Sistema para a distribuição e manutenção de pacotes. • PFC (PHP Foundation Classes). • Estilo padronizado de código. • Sites e listas de discussão para a comunidade de colaboradores. – O código PEAR é dividido em “pacotes”. Cada pacote é um projeto separado com sua própria equipe de desenvolvimento, número de versão, ciclo da publicação, documentação e uma relação definida a outros pacotes.• Internacionalização – É o processo de possibilitar que seja facilmente alterada a linguagem da interface e de mensagens de uma determinada aplicação. Arlindo Santos 09-05-2012 28
    29. 29. Seminário frameworks2011/2012 Documentação detalhada• Uma boa documentação não é somente uma descrição do que é a ferramenta e para que ela serve. – é toda a descrição histórica, – todo um apoio para os programadores como exemplos práticos de sua aplicação, – detalhes da sua criação e implementação, – descrição do comportamento e funcionamento da mesma, – fóruns de discussão, – e demais conceitos abordados acima Arlindo Santos 09-05-2012 29
    30. 30. Seminário frameworks2011/2012 Comparação das Frameworks Arlindo Santos 09-05-2012 30
    31. 31. Seminário frameworks2011/2012 Comparação das Frameworks Arlindo Santos 09-05-2012 31
    32. 32. Seminário frameworks2011/2012 Bibliografia• Fayad, M. E. and Schmidt, D. C. (1997). Object-oriented application frameworks. Commun. ACM, 40(10):32–38. Arlindo Santos 09-05-2012 32

    ×