O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

Frameworks de desenvolvimento web

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Próximos SlideShares
Java script   aula 06 - dom
Java script aula 06 - dom
Carregando em…3
×

Confira estes a seguir

1 de 32 Anúncio

Mais Conteúdo rRelacionado

Diapositivos para si (20)

Anúncio

Semelhante a Frameworks de desenvolvimento web (20)

Mais de Arlindo Santos (12)

Anúncio

Mais recentes (20)

Frameworks de desenvolvimento web

  1. 1. SEMINÁRIO 2011/2012 FRAMEWORKS Arlindo Santos (acsantos@ipb.pt)
  2. 2. Seminário frameworks 2011/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 frameworks 2011/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 frameworks 2011/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 frameworks 2011/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 frameworks 2011/2012 O que é? Framework é uma arquitectura, um conjunto de ficheiros organizados, com uma série de funções, rotinas e variáveis, que servem para nos poupar o tempo de “REIVENTAR A RODA” diversas e diversas vezes, para cada novo projeto Arlindo Santos 09-05-2012 6
  7. 7. Seminário frameworks 2011/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 frameworks 2011/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 frameworks 2011/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 frameworks 2011/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 frameworks 2011/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 frameworks 2011/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 frameworks 2011/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 frameworks 2011/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 frameworks 2011/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 frameworks 2011/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 frameworks 2011/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 frameworks 2011/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 frameworks 2011/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 frameworks 2011/2012 Tecnologias embutidas • MVC Arlindo Santos 09-05-2012 20
  21. 21. Seminário frameworks 2011/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 frameworks 2011/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 frameworks 2011/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 frameworks 2011/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 frameworks 2011/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 frameworks 2011/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 frameworks 2011/2012 Comparação das Frameworks Arlindo Santos 09-05-2012 30
  31. 31. Seminário frameworks 2011/2012 Comparação das Frameworks Arlindo Santos 09-05-2012 31
  32. 32. Seminário frameworks 2011/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

Notas do Editor

  • 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.

×