SlideShare ist ein Scribd-Unternehmen logo
1 von 42
Downloaden Sie, um offline zu lesen
Como criar seu próprio
  Framework Web


     Hiarison Gigante
     @gigantedesousa
Apresentação

- Desenvolvedor (~ 5 anos)
- Hobbysta de eletrônica
- Atualmente bolsista NCA
como criar um
framework web?!1!
mas... o que é
 framework?
Conceito

Um framework é um conjunto de classes
cooperantes que compõem um projeto
reutilizável para uma classe específica de
software

Erich Gamma
Quem é Erich Gamma?
De onde veio a ideia?
De onde veio a ideia?
Conceituação...


Conceituação...
Conceituação...
Não parece novidade...
Não parece novidade...


    Biblioteca de Classes
              X
         Framework
Diferença



Conceituação...
Hollywood Principle
“Don't call us, we'll call you”
Design Patterns
      X
 Framework
Design Patterns


- Mais abstratos
- Menos especializados
Vantagens Framework

-   Redução de custos
-   Redução do “time-to-market”
-   Maximização do reuso
-   Desenvolvedores se concentram em
    adicionar valor ao software
Desvantagens Framework

- Construir um framework é complexo
- Reuso não vem sozinho: é preciso
  planejamento
- Os benefícios são realizados a longo
  prazo
Exemplos (alguns)
Por que,
então,
criar um
framework?
Minha história
Fabien Potencier
Bons motivos

- Por aprendizado e diversão
- Criar para um domínio específico
- Deseja refatorar um código já
  existente
- Para provar ao mundo que você é
  capaz!
A minha ideia (LizPHP)

- Roteamento de requisições simples
- Configuração de ambientes:
  desenvolvimento e produção
- Abstração Camada de Dados
- Modelo de renderização de páginas
  com mais html
- Linguagem: PHP
“Meus” padrões (alguns)


          MVC
“Meus” padrões (alguns)
“Meus” padrões (alguns)




      Template Method (GoF Comportamental)
Show me the code!
Perguntas?
Obrigado!

   Hiarison Gigante
  @gigantedesousa
bitbucket.org/gigante
Referencias
http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/frame/oque.htm
http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/frame/deffw.htm
http://www2.dbd.puc-
rio.br/pergamum/tesesabertas/0410823_06_cap_02.pdf
http://pt.wikipedia.org/wiki/Framework
http://pt.wikipedia.org/wiki/Template_Method
https://github.com/fabpot/Create-Your-Framework
http://martinfowler.com/books/#eaa
Imagens
http://upload.wikimedia.org/wikipedia/commons/7/79/Lego_Mongkok_02.jpg
http://img.gawkerassets.com/img/17uoztzz3eu9rjpg/original.jpg
http://www.instablogsimages.com/1/2012/03/24/brads_lego_guitar_image_title_gkioy.jpg
http://4.bp.blogspot.com/-KQSPX3_w6pg/Trv-
ssF12WI/AAAAAAAAAkY/bCT9CcipOOQ/s1600/lego-city_1.jpg
http://2.bp.blogspot.com/-
Fk4PIJPi3b0/ToUWx4CzFhI/AAAAAAAACeQ/snst8wzcUUs/s1600/Minecraft-1.91.jpg
http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/frame/frame1.gif
http://upload.wikimedia.org/wikipedia/commons/2/20/ClassDiagramTemplateMethod.png
http://www.touilleur-express.fr/wp-content/uploads/2012/01/erich_gamma.jpg
http://codinghorror.typepad.com/.a/6a0120a85dcdae970b012877701400970c-pi
http://guiadoestudante.abril.com.br/blogs/melhores-faculdades/files/2012/04/salario-de-
um-engenheiro-civil.png
http://www.trigopane.com.br/blog/wp-content/uploads/2012/06/18_sufle.jpg
Imagens
http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/frame/frame3.gif
http://images.politico.com/global/2012/06/120621_hollywood_sign_ap_605.jpg
http://alcaz.com.br/tecnologia/wp-content/uploads/2012/05/nerd2.jpg
http://codeworks.com.br/pages/artigos/wp-content/uploads/2012/06/zf-logo-mark.png
http://symfony.com/logos/symfony1.gif
http://portal.ifrn.edu.br/campus/caico/noticias/desenvolvimento-web-com-ruby-on-
rails/image_preview
http://upload.wikimedia.org/wikipedia/commons/thumb/a/af/Pair_programming_1.jpg/33
0px-Pair_programming_1.jpg
http://www.extreme-sensio.com/wp-content/uploads/sensio/07_people/fabien-potencier-
480x150.jpg
http://london2012.live.symfony.com/images/sensio-labs.png
http://mbanagouro.net/site/wp-content/uploads/2012/02/mvc-pipeline.png
http://4.bp.blogspot.com/-ybcKBKeP_XI/T9wNl8c-
jtI/AAAAAAAABco/_AawSUArPbY/s1600/perguntas_frequentes.jpg

Weitere ähnliche Inhalte

Was ist angesagt?

Aula 2 - Técnicas de Prototipação I
Aula 2 - Técnicas de Prototipação IAula 2 - Técnicas de Prototipação I
Aula 2 - Técnicas de Prototipação I
Paolo Passeri
 

Was ist angesagt? (20)

Introdução ao Design Thinking
Introdução ao Design Thinking   Introdução ao Design Thinking
Introdução ao Design Thinking
 
[slides] Planejamento, Execução e Controle de Projetos (2015: 2º semestre)
[slides] Planejamento, Execução e Controle de Projetos (2015: 2º semestre)[slides] Planejamento, Execução e Controle de Projetos (2015: 2º semestre)
[slides] Planejamento, Execução e Controle de Projetos (2015: 2º semestre)
 
Check list hackathon - Agencia Inventtando
Check list hackathon - Agencia InventtandoCheck list hackathon - Agencia Inventtando
Check list hackathon - Agencia Inventtando
 
Aula 1 - Gestão de Projetos
Aula 1 - Gestão de ProjetosAula 1 - Gestão de Projetos
Aula 1 - Gestão de Projetos
 
Aula 2 - Técnicas de Prototipação I
Aula 2 - Técnicas de Prototipação IAula 2 - Técnicas de Prototipação I
Aula 2 - Técnicas de Prototipação I
 
Aula 2 - A Estrutura de Marketing Digital para a Audiência - Disciplina Plane...
Aula 2 - A Estrutura de Marketing Digital para a Audiência - Disciplina Plane...Aula 2 - A Estrutura de Marketing Digital para a Audiência - Disciplina Plane...
Aula 2 - A Estrutura de Marketing Digital para a Audiência - Disciplina Plane...
 
Tecnologia blockchain: uma visão geral
Tecnologia blockchain:  uma visão geralTecnologia blockchain:  uma visão geral
Tecnologia blockchain: uma visão geral
 
Aula03 midia digital
Aula03 midia digitalAula03 midia digital
Aula03 midia digital
 
Internet das Coisas - Conceitos, tecnologias e aplicações
Internet das Coisas - Conceitos, tecnologias e aplicaçõesInternet das Coisas - Conceitos, tecnologias e aplicações
Internet das Coisas - Conceitos, tecnologias e aplicações
 
Projeto Web - Ciclo de vida do projeto
Projeto Web - Ciclo de vida do projetoProjeto Web - Ciclo de vida do projeto
Projeto Web - Ciclo de vida do projeto
 
Canvas passo a passo
Canvas passo a passoCanvas passo a passo
Canvas passo a passo
 
A Internet das Coisas
A Internet das CoisasA Internet das Coisas
A Internet das Coisas
 
Aula 1 - Introdução aos Conceitos de Marketing Digital - Disciplina Planejame...
Aula 1 - Introdução aos Conceitos de Marketing Digital - Disciplina Planejame...Aula 1 - Introdução aos Conceitos de Marketing Digital - Disciplina Planejame...
Aula 1 - Introdução aos Conceitos de Marketing Digital - Disciplina Planejame...
 
Treinamento Ágil / Scrum
Treinamento Ágil / ScrumTreinamento Ágil / Scrum
Treinamento Ágil / Scrum
 
Gestão Ágil de Projetos
Gestão Ágil de ProjetosGestão Ágil de Projetos
Gestão Ágil de Projetos
 
Gerenciamento de projetos apostila completa
Gerenciamento de projetos   apostila completaGerenciamento de projetos   apostila completa
Gerenciamento de projetos apostila completa
 
Web Design > Aula 00
Web Design > Aula 00Web Design > Aula 00
Web Design > Aula 00
 
Prototipagem
PrototipagemPrototipagem
Prototipagem
 
Workshop Design Thinking
Workshop Design ThinkingWorkshop Design Thinking
Workshop Design Thinking
 
Aula 2. frameworks js
Aula 2. frameworks jsAula 2. frameworks js
Aula 2. frameworks js
 

Andere mochten auch

Construindo um framework CSS
Construindo um framework CSSConstruindo um framework CSS
Construindo um framework CSS
Diego Eis
 
Geração de código linguagem c
Geração de código   linguagem cGeração de código   linguagem c
Geração de código linguagem c
Jefferson Bessa
 

Andere mochten auch (15)

DSL - Como construir uma linguagem em 5 minutos
DSL - Como construir uma linguagem em 5 minutosDSL - Como construir uma linguagem em 5 minutos
DSL - Como construir uma linguagem em 5 minutos
 
Construindo um framework CSS
Construindo um framework CSSConstruindo um framework CSS
Construindo um framework CSS
 
Crie sua Linguagem de Programação com XText
Crie sua Linguagem de Programação com XTextCrie sua Linguagem de Programação com XText
Crie sua Linguagem de Programação com XText
 
Desenvolvimento Front-End em Escala Global
Desenvolvimento Front-End em Escala GlobalDesenvolvimento Front-End em Escala Global
Desenvolvimento Front-End em Escala Global
 
Construindo seu framework CSS
Construindo seu framework CSSConstruindo seu framework CSS
Construindo seu framework CSS
 
Geração de código linguagem c
Geração de código   linguagem cGeração de código   linguagem c
Geração de código linguagem c
 
Metricas de qualidade em produtos de software
Metricas de qualidade em produtos de softwareMetricas de qualidade em produtos de software
Metricas de qualidade em produtos de software
 
Conhecendo Go
Conhecendo GoConhecendo Go
Conhecendo Go
 
Arquitetura do coprocessador Intel® Xeon Phi™ - Intel Software Conference 2013
Arquitetura do coprocessador Intel® Xeon Phi™ - Intel Software Conference 2013Arquitetura do coprocessador Intel® Xeon Phi™ - Intel Software Conference 2013
Arquitetura do coprocessador Intel® Xeon Phi™ - Intel Software Conference 2013
 
Criando sua própria linguagem de programação
Criando sua própria linguagem de programaçãoCriando sua própria linguagem de programação
Criando sua própria linguagem de programação
 
Um guia bem básico de Bootstrap + Less
Um guia bem básico de Bootstrap + LessUm guia bem básico de Bootstrap + Less
Um guia bem básico de Bootstrap + Less
 
Minhas citações - Google Acadêmico
Minhas citações - Google AcadêmicoMinhas citações - Google Acadêmico
Minhas citações - Google Acadêmico
 
ResearcherID
ResearcherIDResearcherID
ResearcherID
 
Tutorial Mendeley 2015 - ABNT e APA
Tutorial Mendeley 2015 - ABNT e APATutorial Mendeley 2015 - ABNT e APA
Tutorial Mendeley 2015 - ABNT e APA
 
Curso de Python e Django
Curso de Python e DjangoCurso de Python e Django
Curso de Python e Django
 

Ähnlich wie Como criar seu próprio Framework

Padrões De Projeto e Anti Patterns
Padrões De Projeto e Anti PatternsPadrões De Projeto e Anti Patterns
Padrões De Projeto e Anti Patterns
Herval Freire
 

Ähnlich wie Como criar seu próprio Framework (20)

Palestra na Faccat sobre o Zeanwork
Palestra na Faccat sobre o ZeanworkPalestra na Faccat sobre o Zeanwork
Palestra na Faccat sobre o Zeanwork
 
Framework Próprio: Vale a Pena?
Framework Próprio: Vale a Pena?Framework Próprio: Vale a Pena?
Framework Próprio: Vale a Pena?
 
Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011
 
Padrões De Projeto e Anti Patterns
Padrões De Projeto e Anti PatternsPadrões De Projeto e Anti Patterns
Padrões De Projeto e Anti Patterns
 
Palestra - Profissão: Desenvolvedor
Palestra - Profissão: DesenvolvedorPalestra - Profissão: Desenvolvedor
Palestra - Profissão: Desenvolvedor
 
Criando Framework - Conceitos, Estratégias e Dicas
Criando Framework - Conceitos, Estratégias e DicasCriando Framework - Conceitos, Estratégias e Dicas
Criando Framework - Conceitos, Estratégias e Dicas
 
Dextra Sistemas: A linguagem PHP no modelo de Fábrica de Software
Dextra Sistemas: A linguagem PHP no modelo de Fábrica de SoftwareDextra Sistemas: A linguagem PHP no modelo de Fábrica de Software
Dextra Sistemas: A linguagem PHP no modelo de Fábrica de Software
 
Python mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internetPython mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internet
 
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web  - Marcos Daniel PetryPython mudando o modo de desenvolver para a web  - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
 
Frameworks PHP @edgarsandi
Frameworks PHP @edgarsandiFrameworks PHP @edgarsandi
Frameworks PHP @edgarsandi
 
PHP Anti Patterns
PHP Anti PatternsPHP Anti Patterns
PHP Anti Patterns
 
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
 
Começando errado com php
Começando errado com phpComeçando errado com php
Começando errado com php
 
C4 Model
C4 ModelC4 Model
C4 Model
 
Métodos Ágeis
Métodos ÁgeisMétodos Ágeis
Métodos Ágeis
 
Crescendo profissionalmente com o apoio comunidade
Crescendo profissionalmente com o apoio comunidadeCrescendo profissionalmente com o apoio comunidade
Crescendo profissionalmente com o apoio comunidade
 
PHPZEIRO: Adote um framework
PHPZEIRO: Adote um frameworkPHPZEIRO: Adote um framework
PHPZEIRO: Adote um framework
 
Arquitetura web para sistemas de negócio
Arquitetura web para sistemas de negócioArquitetura web para sistemas de negócio
Arquitetura web para sistemas de negócio
 
Curso PHP UNIFACS 2014.1 – Frameworks
Curso PHP UNIFACS 2014.1 – FrameworksCurso PHP UNIFACS 2014.1 – Frameworks
Curso PHP UNIFACS 2014.1 – Frameworks
 
Code Igniter - O Framework php mais fácil e ágil
Code Igniter - O Framework php mais fácil e ágilCode Igniter - O Framework php mais fácil e ágil
Code Igniter - O Framework php mais fácil e ágil
 

Como criar seu próprio Framework