32
SEMINÁRIO 2011/2012 FRAMEWORKS Arlindo Santos ([email protected])

Frameworks de desenvolvimento web

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Frameworks de desenvolvimento web

SEMINÁRIO 2011/2012

FRAMEWORKSArlindo Santos ([email protected])

Page 2: Frameworks de desenvolvimento web

13-04-2023Arlindo Santos 2

frameworksSeminário2011/2012

• “Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.”

• (Fayad e Schmidt)

O que é?

• Frameworks

Page 3: Frameworks de desenvolvimento web

13-04-2023Arlindo Santos 3

frameworksSeminário2011/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.

Page 4: Frameworks de desenvolvimento web

13-04-2023Arlindo Santos 4

frameworksSeminário2011/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.

Page 5: Frameworks de desenvolvimento web

13-04-2023Arlindo Santos 5

frameworksSeminário2011/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.

Page 6: Frameworks de desenvolvimento web

frameworksSeminário2011/2012

13-04-2023Arlindo Santos 6

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

O que é?

Page 7: Frameworks de desenvolvimento web

13-04-2023Arlindo Santos 7

frameworksSeminário2011/2012

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

Problema vs Solução

Page 8: Frameworks de desenvolvimento web

13-04-2023Arlindo Santos 8

frameworksSeminário2011/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.

Page 9: Frameworks de desenvolvimento web

13-04-2023Arlindo Santos 9

frameworksSeminário2011/2012

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

Problema vs Solução

Page 10: Frameworks de desenvolvimento web

13-04-2023Arlindo Santos 10

frameworksSeminário2011/2012

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

Problema vs Solução

Page 11: Frameworks de desenvolvimento web

frameworksSeminário2011/2012

13-04-2023Arlindo Santos 11

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

Problema vs Solução

Page 12: Frameworks de desenvolvimento web

13-04-2023Arlindo Santos 12

frameworksSeminário2011/2012

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

Padrões vs frameworks

Page 13: Frameworks de desenvolvimento web

13-04-2023Arlindo Santos 13

frameworksSeminário2011/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

Page 14: Frameworks de desenvolvimento web

13-04-2023Arlindo Santos 14

frameworksSeminário2011/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

Page 15: Frameworks de desenvolvimento web

13-04-2023Arlindo Santos 15

frameworksSeminário2011/2012

• 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

Vantagens

Page 16: Frameworks de desenvolvimento web

13-04-2023Arlindo Santos 16

frameworksSeminário2011/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).

Page 17: Frameworks de desenvolvimento web

13-04-2023Arlindo Santos 17

frameworksSeminário2011/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

Page 18: Frameworks de desenvolvimento web

13-04-2023Arlindo Santos 18

frameworksSeminário2011/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

Page 19: Frameworks de desenvolvimento web

13-04-2023Arlindo Santos 19

frameworksSeminário2011/2012

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

Tecnologias embutidas

Page 20: Frameworks de desenvolvimento web

13-04-2023Arlindo Santos 20

frameworksSeminário2011/2012

• MVC

Tecnologias embutidas

Page 21: Frameworks de desenvolvimento web

13-04-2023Arlindo Santos 21

frameworksSeminário2011/2012

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

Tecnologias embutidas

Page 22: Frameworks de desenvolvimento web

13-04-2023Arlindo Santos 22

frameworksSeminário2011/2012

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

Tecnologias embutidas

Page 23: Frameworks de desenvolvimento web

13-04-2023Arlindo Santos 23

frameworksSeminário2011/2012

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

Tecnologias embutidas

Page 24: Frameworks de desenvolvimento web

13-04-2023Arlindo Santos 24

frameworksSeminário2011/2012

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

Tecnologias embutidas

Page 25: Frameworks de desenvolvimento web

13-04-2023Arlindo Santos 25

frameworksSeminário2011/2012

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

Tecnologias embutidas

Page 26: Frameworks de desenvolvimento web

13-04-2023Arlindo Santos 26

frameworksSeminário2011/2012

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

Tecnologias embutidas

Page 27: Frameworks de desenvolvimento web

13-04-2023Arlindo Santos 27

frameworksSeminário2011/2012

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

Tecnologias embutidas

Page 28: Frameworks de desenvolvimento web

13-04-2023Arlindo Santos 28

frameworksSeminário2011/2012

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

Tecnologias embutidas

Page 29: Frameworks de desenvolvimento web

13-04-2023Arlindo Santos 29

frameworksSeminário2011/2012

• 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

Documentação detalhada

Page 30: Frameworks de desenvolvimento web

13-04-2023Arlindo Santos 30

frameworksSeminário2011/2012

Comparação das Frameworks

Page 31: Frameworks de desenvolvimento web

13-04-2023Arlindo Santos 31

frameworksSeminário2011/2012

Comparação das Frameworks

Page 32: Frameworks de desenvolvimento web

13-04-2023Arlindo Santos 32

frameworksSeminário2011/2012

• Fayad, M. E. and Schmidt, D. C. (1997). Object-oriented application frameworks. Commun. ACM, 40(10):32–38.

Bibliografia