SlideShare a Scribd company logo
1 of 42
Download to read offline
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

More Related Content

What's hot

Gerenciamento de-projetos-exercicios-resolvidos-estudo-de-casos-e-simulacoes
Gerenciamento de-projetos-exercicios-resolvidos-estudo-de-casos-e-simulacoesGerenciamento de-projetos-exercicios-resolvidos-estudo-de-casos-e-simulacoes
Gerenciamento de-projetos-exercicios-resolvidos-estudo-de-casos-e-simulacoesJucioliver
 
Project Model Canvas (PM Canvas)
Project Model Canvas (PM Canvas)Project Model Canvas (PM Canvas)
Project Model Canvas (PM Canvas)Evandro Paes
 
Workshop de Inovação - AMCHAM - SP
Workshop de Inovação - AMCHAM - SPWorkshop de Inovação - AMCHAM - SP
Workshop de Inovação - AMCHAM - SPinnoscience_
 
Gerenciamento de Projetos
Gerenciamento de ProjetosGerenciamento de Projetos
Gerenciamento de ProjetosMarcos Abreu
 
Apresentação mvc
Apresentação mvcApresentação mvc
Apresentação mvcleopp
 
Design Thinking - Prototipação
Design Thinking  - PrototipaçãoDesign Thinking  - Prototipação
Design Thinking - PrototipaçãoUFPA
 
Gestão por Processos - BPM - foco em resultados
Gestão por Processos - BPM - foco em resultadosGestão por Processos - BPM - foco em resultados
Gestão por Processos - BPM - foco em resultadosCompanyWeb
 
Apresentacao Pmbok
Apresentacao PmbokApresentacao Pmbok
Apresentacao PmbokLuiz Neto
 
O Archimate® como ferramenta de apoio para uso do TOGAF®
O Archimate® como ferramenta de apoio para uso do TOGAF® O Archimate® como ferramenta de apoio para uso do TOGAF®
O Archimate® como ferramenta de apoio para uso do TOGAF® Blue Hawk - B&IT Management
 
Inovação, Projetos e Portfólio: Integração para Resultados Promissores
Inovação, Projetos e Portfólio: Integração para Resultados PromissoresInovação, Projetos e Portfólio: Integração para Resultados Promissores
Inovação, Projetos e Portfólio: Integração para Resultados PromissoresJose Ignacio Jaeger Neto, PMP, MSc
 
SOA - Uma Breve Introdução
SOA - Uma Breve IntroduçãoSOA - Uma Breve Introdução
SOA - Uma Breve IntroduçãoAndré Borgonovo
 
Novidades da Sétima Edição do Guia PMBOK
Novidades da Sétima Edição do Guia PMBOKNovidades da Sétima Edição do Guia PMBOK
Novidades da Sétima Edição do Guia PMBOKRildo (@rildosan) Santos
 

What's hot (20)

Gerenciamento de-projetos-exercicios-resolvidos-estudo-de-casos-e-simulacoes
Gerenciamento de-projetos-exercicios-resolvidos-estudo-de-casos-e-simulacoesGerenciamento de-projetos-exercicios-resolvidos-estudo-de-casos-e-simulacoes
Gerenciamento de-projetos-exercicios-resolvidos-estudo-de-casos-e-simulacoes
 
Project Model Canvas (PM Canvas)
Project Model Canvas (PM Canvas)Project Model Canvas (PM Canvas)
Project Model Canvas (PM Canvas)
 
Workshop de Inovação - AMCHAM - SP
Workshop de Inovação - AMCHAM - SPWorkshop de Inovação - AMCHAM - SP
Workshop de Inovação - AMCHAM - SP
 
Aula 05 - Stakeholders
Aula 05 - StakeholdersAula 05 - Stakeholders
Aula 05 - Stakeholders
 
Apresentação em Gestão de Stakeholders
Apresentação em Gestão de StakeholdersApresentação em Gestão de Stakeholders
Apresentação em Gestão de Stakeholders
 
Metodologia Ágil
Metodologia ÁgilMetodologia Ágil
Metodologia Ágil
 
Governança da inovação
Governança da inovaçãoGovernança da inovação
Governança da inovação
 
Gerenciamento de Projetos
Gerenciamento de ProjetosGerenciamento de Projetos
Gerenciamento de Projetos
 
Apresentação mvc
Apresentação mvcApresentação mvc
Apresentação mvc
 
Gestão De Processos
Gestão De ProcessosGestão De Processos
Gestão De Processos
 
Design Thinking - Prototipação
Design Thinking  - PrototipaçãoDesign Thinking  - Prototipação
Design Thinking - Prototipação
 
Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
 
Gestão por Processos - BPM - foco em resultados
Gestão por Processos - BPM - foco em resultadosGestão por Processos - BPM - foco em resultados
Gestão por Processos - BPM - foco em resultados
 
Apresentacao Pmbok
Apresentacao PmbokApresentacao Pmbok
Apresentacao Pmbok
 
O Archimate® como ferramenta de apoio para uso do TOGAF®
O Archimate® como ferramenta de apoio para uso do TOGAF® O Archimate® como ferramenta de apoio para uso do TOGAF®
O Archimate® como ferramenta de apoio para uso do TOGAF®
 
Inovação, Projetos e Portfólio: Integração para Resultados Promissores
Inovação, Projetos e Portfólio: Integração para Resultados PromissoresInovação, Projetos e Portfólio: Integração para Resultados Promissores
Inovação, Projetos e Portfólio: Integração para Resultados Promissores
 
SOA - Uma Breve Introdução
SOA - Uma Breve IntroduçãoSOA - Uma Breve Introdução
SOA - Uma Breve Introdução
 
Novidades da Sétima Edição do Guia PMBOK
Novidades da Sétima Edição do Guia PMBOKNovidades da Sétima Edição do Guia PMBOK
Novidades da Sétima Edição do Guia PMBOK
 
Métodos Ágeis
Métodos ÁgeisMétodos Ágeis
Métodos Ágeis
 
Bpmn portuguese
Bpmn portugueseBpmn portuguese
Bpmn portuguese
 

Viewers also liked

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 minutosOpensoft SA
 
Construindo um framework CSS
Construindo um framework CSSConstruindo um framework CSS
Construindo um framework CSSDiego Eis
 
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 XTextMichel Albonico
 
Desenvolvimento Front-End em Escala Global
Desenvolvimento Front-End em Escala GlobalDesenvolvimento Front-End em Escala Global
Desenvolvimento Front-End em Escala GlobalBerg Brandt
 
Construindo seu framework CSS
Construindo seu framework CSSConstruindo seu framework CSS
Construindo seu framework CSSDiego 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 cJefferson Bessa
 
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 softwarecarlosabs13
 
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 2013Intel Software Brasil
 
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çãoronaldoferraz
 
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 + LessBruno Said
 
Minhas citações - Google Acadêmico
Minhas citações - Google AcadêmicoMinhas citações - Google Acadêmico
Minhas citações - Google AcadêmicoBiblioteca FEAUSP
 
Tutorial Mendeley 2015 - ABNT e APA
Tutorial Mendeley 2015 - ABNT e APATutorial Mendeley 2015 - ABNT e APA
Tutorial Mendeley 2015 - ABNT e APABiblioteca FEAUSP
 

Viewers also liked (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
 

Similar to Como criar seu próprio Framework

Palestra na Faccat sobre o Zeanwork
Palestra na Faccat sobre o ZeanworkPalestra na Faccat sobre o Zeanwork
Palestra na Faccat sobre o ZeanworkJosemar Davi Luedke
 
Framework Próprio: Vale a Pena?
Framework Próprio: Vale a Pena?Framework Próprio: Vale a Pena?
Framework Próprio: Vale a Pena?Hiarison Gigante
 
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 2011Flávio Lisboa
 
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 PatternsHerval Freire
 
Palestra - Profissão: Desenvolvedor
Palestra - Profissão: DesenvolvedorPalestra - Profissão: Desenvolvedor
Palestra - Profissão: DesenvolvedorDaniel Brandão
 
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 DicasNorton Guimarães
 
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 SoftwareDextra
 
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 internetMarcos Petry
 
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 PetryTchelinux
 
[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 ...iMasters
 
Crescendo profissionalmente com o apoio comunidade
Crescendo profissionalmente com o apoio comunidadeCrescendo profissionalmente com o apoio comunidade
Crescendo profissionalmente com o apoio comunidadeFelipe Nascimento
 
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ócioRalph Rassweiler
 
Curso PHP UNIFACS 2014.1 – Frameworks
Curso PHP UNIFACS 2014.1 – FrameworksCurso PHP UNIFACS 2014.1 – Frameworks
Curso PHP UNIFACS 2014.1 – FrameworksJonata Weber
 
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 ágilRafael Pinheiro
 
Estratégias de Estruturação de Código-fonte e Controlo de Versão
Estratégias de Estruturação de Código-fonte e Controlo de VersãoEstratégias de Estruturação de Código-fonte e Controlo de Versão
Estratégias de Estruturação de Código-fonte e Controlo de VersãoComunidade NetPonto
 

Similar to 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
 
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
 
Estratégias de Estruturação de Código-fonte e Controlo de Versão
Estratégias de Estruturação de Código-fonte e Controlo de VersãoEstratégias de Estruturação de Código-fonte e Controlo de Versão
Estratégias de Estruturação de Código-fonte e Controlo de Versão
 

Como criar seu próprio Framework