Como criar seu próprio Framework

4,273 views

Published on

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 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,273
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
57
Comments
0
Likes
3
Embeds 0
No embeds

No notes for 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

×