Download - Como criar seu próprio Framework
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/330px-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