Como criar seu próprio Framework

4.268 visualizações

Publicada em

Apresentação realizada no Aniversário do curso de Ciência da Computação da Universidade Federal do Maranhão (UFMA). O objetivo é apresentar a definição de framework, mostrar alguns padrões de projeto e um case de um pequeno framework chamado LizPHP.

0 comentários
3 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
4.268
No SlideShare
0
A partir de incorporações
0
Número de incorporações
8
Ações
Compartilhamentos
0
Downloads
57
Comentários
0
Gostaram
3
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Como criar seu próprio Framework

  1. 1. Como criar seu próprio Framework Web Hiarison Gigante @gigantedesousa
  2. 2. Apresentação- Desenvolvedor (~ 5 anos)- Hobbysta de eletrônica- Atualmente bolsista NCA
  3. 3. como criar umframework web?!1!
  4. 4. mas... o que é framework?
  5. 5. ConceitoUm framework é um conjunto de classescooperantes que compõem um projetoreutilizável para uma classe específica desoftwareErich Gamma
  6. 6. Quem é Erich Gamma?
  7. 7. De onde veio a ideia?
  8. 8. De onde veio a ideia?
  9. 9. Conceituação...Conceituação...
  10. 10. Conceituação...
  11. 11. Não parece novidade...
  12. 12. Não parece novidade... Biblioteca de Classes X Framework
  13. 13. DiferençaConceituação...
  14. 14. Hollywood Principle
  15. 15. “Dont call us, well call you”
  16. 16. Design Patterns X Framework
  17. 17. Design Patterns- Mais abstratos- Menos especializados
  18. 18. Vantagens Framework- Redução de custos- Redução do “time-to-market”- Maximização do reuso- Desenvolvedores se concentram em adicionar valor ao software
  19. 19. Desvantagens Framework- Construir um framework é complexo- Reuso não vem sozinho: é preciso planejamento- Os benefícios são realizados a longo prazo
  20. 20. Exemplos (alguns)
  21. 21. Por que,então,criar umframework?
  22. 22. Minha história
  23. 23. Fabien Potencier
  24. 24. 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!
  25. 25. 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
  26. 26. “Meus” padrões (alguns) MVC
  27. 27. “Meus” padrões (alguns)
  28. 28. “Meus” padrões (alguns) Template Method (GoF Comportamental)
  29. 29. Show me the code!
  30. 30. Perguntas?
  31. 31. Obrigado! Hiarison Gigante @gigantedesousabitbucket.org/gigante
  32. 32. Referenciashttp://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/frame/oque.htmhttp://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/frame/deffw.htmhttp://www2.dbd.puc-rio.br/pergamum/tesesabertas/0410823_06_cap_02.pdfhttp://pt.wikipedia.org/wiki/Frameworkhttp://pt.wikipedia.org/wiki/Template_Methodhttps://github.com/fabpot/Create-Your-Frameworkhttp://martinfowler.com/books/#eaa
  33. 33. Imagenshttp://upload.wikimedia.org/wikipedia/commons/7/79/Lego_Mongkok_02.jpghttp://img.gawkerassets.com/img/17uoztzz3eu9rjpg/original.jpghttp://www.instablogsimages.com/1/2012/03/24/brads_lego_guitar_image_title_gkioy.jpghttp://4.bp.blogspot.com/-KQSPX3_w6pg/Trv-ssF12WI/AAAAAAAAAkY/bCT9CcipOOQ/s1600/lego-city_1.jpghttp://2.bp.blogspot.com/-Fk4PIJPi3b0/ToUWx4CzFhI/AAAAAAAACeQ/snst8wzcUUs/s1600/Minecraft-1.91.jpghttp://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/frame/frame1.gifhttp://upload.wikimedia.org/wikipedia/commons/2/20/ClassDiagramTemplateMethod.pnghttp://www.touilleur-express.fr/wp-content/uploads/2012/01/erich_gamma.jpghttp://codinghorror.typepad.com/.a/6a0120a85dcdae970b012877701400970c-pihttp://guiadoestudante.abril.com.br/blogs/melhores-faculdades/files/2012/04/salario-de-um-engenheiro-civil.pnghttp://www.trigopane.com.br/blog/wp-content/uploads/2012/06/18_sufle.jpg
  34. 34. Imagenshttp://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/frame/frame3.gifhttp://images.politico.com/global/2012/06/120621_hollywood_sign_ap_605.jpghttp://alcaz.com.br/tecnologia/wp-content/uploads/2012/05/nerd2.jpghttp://codeworks.com.br/pages/artigos/wp-content/uploads/2012/06/zf-logo-mark.pnghttp://symfony.com/logos/symfony1.gifhttp://portal.ifrn.edu.br/campus/caico/noticias/desenvolvimento-web-com-ruby-on-rails/image_previewhttp://upload.wikimedia.org/wikipedia/commons/thumb/a/af/Pair_programming_1.jpg/330px-Pair_programming_1.jpghttp://www.extreme-sensio.com/wp-content/uploads/sensio/07_people/fabien-potencier-480x150.jpghttp://london2012.live.symfony.com/images/sensio-labs.pnghttp://mbanagouro.net/site/wp-content/uploads/2012/02/mvc-pipeline.pnghttp://4.bp.blogspot.com/-ybcKBKeP_XI/T9wNl8c-jtI/AAAAAAAABco/_AawSUArPbY/s1600/perguntas_frequentes.jpg

×