Successfully reported this slideshow.
Combatendo o código procedural         Trilha PHP         Rodrigo dos Santos          rodrigodossantos.ws               @r...
Sobre mimDesenvolvedor PHP desde 2004Zend Certified Engineer PHP 5.3Pós Graduado em Engenharia de Projetos de SoftwareSóci...
Sobre mimBlog pessoal: www.rodrigodossantos.wsTwitter: @rosantozE-mail: rodrigo@ilhaweb.net                               ...
Nosso Contexto          Globalcode – Open4education
Programação procedural ➔     Também conhecida como Programação Imperativa; ➔     Facilita o aprendizado de uma linguagem d...
Programação procedural ➔     Cada página do sistema é feito como um bloco. ➔     Não existe a separação de objetivos e res...
Exemplo          Globalcode – Open4education
O que fazer então?      Separar as responsabilidades                            Globalcode – Open4education
O que fazer então?                   Separar as responsabilidadesFigura: http://www.netrostar.com                         ...
Antes de começar ... Nosso ambiente de desenvolvimento:                          Globalcode – Open4education
Antes de começar ... Nosso ambiente de desenvolvimento:     error_reporting(E_ALL | E_STRICT);     error_reporting(-1);   ...
Antes de começar ... Nosso ambiente de desenvolvimento:     error_reporting(E_ALL | E_STRICT);     error_reporting(-1);   ...
Antes de começar ... Nosso ambiente de desenvolvimento:     error_reporting(E_ALL | E_STRICT);     error_reporting(-1);   ...
Adote um padrão de código Zend; Pear; Squiz; Crie seu próprio padrão, mas tenha um padrão;                                ...
Adote um padrão de códigoPHP_CodeSniffer                            Globalcode – Open4education
Adote um padrão de códigoPHPMD                            Globalcode – Open4education
Separando as coisas                      Globalcode – Open4education
Separando as coisas                      Globalcode – Open4education
Template Engine Possibilita separar o código HTML do código PHP     (Zend_View, Zend_Layout)                              ...
Template Engine                  Globalcode – Open4education
Separando as coisas                      Globalcode – Open4education
Separando as coisas                      Globalcode – Open4education
Hora de ModelarFoto: www.mulherbeleza.com.br   Globalcode – Open4education
Por que modelar?                   Globalcode – Open4education
Por que modelar? Ajuda a entender o problema;                                Globalcode – Open4education
Por que modelar? Ajuda a entender o problema; Nos faz pensar antes de fazer;                                  Globalcode –...
Por que modelar? Ajuda a entender o problema; Nos faz pensar antes de fazer; Facilita a comunicação com o usuário;        ...
Por que modelar? Ajuda a entender o problema; Nos faz pensar antes de fazer; Facilita a comunicação com o usuário; Serve d...
Como fazer? Comece pelo mais importante (comece pelo pior);                                   Globalcode – Open4education
Como fazer? Comece pelo mais importante (comece pelo pior); UML;                                   Globalcode – Open4educa...
Como fazer? Comece pelo mais importante (comece pelo pior); UML; Ferramentas case (Ex. Entreprise Architect);             ...
Como fazer? Comece pelo mais importante (comece pelo pior); UML; Ferramentas case (Ex. Entreprise Architect); Papel e cane...
Ex.: Diagrama de classes                           Globalcode – Open4education
Fazer código, finalmente!                            Globalcode – Open4education
Fazer código, finalmente! TDD (Test Driven Development)                                 Globalcode – Open4education
Fazer código, finalmente! TDD (Test Driven Development)   Escreva um teste;                                 Globalcode – O...
Fazer código, finalmente! TDD (Test Driven Development)   Escreva um teste;   Faça-o funcionar;                           ...
Fazer código, finalmente! TDD (Test Driven Development)   Escreva um teste;   Faça-o funcionar;   Refatore.               ...
Fazer código, finalmente! TDD (Test Driven Development)   Escreva um teste;   Faça-o funcionar;   Refatore. Resultado: cód...
Fazer código, finalmente! TDD (Test Driven Development)   Escreva um teste;   Faça-o funcionar;   Refatore. Resultado: cód...
Separando as coisas                      Globalcode – Open4education
Separando as coisas                      Globalcode – Open4education
Ciclo contínuo          Globalcode – Open4education
Ciclo contínuo A cada novo release:                        Globalcode – Open4education
Ciclo contínuo A cada novo release:   Adicionamos novas funcionalidades;                                        Globalcode...
Ciclo contínuo A cada novo release:   Adicionamos novas funcionalidades;   Refatoramos uma parte do código legado;        ...
Ciclo contínuo A cada novo release:   Adicionamos novas funcionalidades;   Refatoramos uma parte do código legado;   Mante...
Perguntas?       Globalcode – Open4education
Upcoming SlideShare
Loading in …5
×

Combatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHP

4,098 views

Published on

Slides de minha palestra na Trilha PHP do TDC 2012 Florianópolis

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Combatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHP

  1. 1. Combatendo o código procedural Trilha PHP Rodrigo dos Santos rodrigodossantos.ws @rosantoz Globalcode – Open4education
  2. 2. Sobre mimDesenvolvedor PHP desde 2004Zend Certified Engineer PHP 5.3Pós Graduado em Engenharia de Projetos de SoftwareSócio-Proprietário da empresa Ilha Web (www.ilhaweb.net) Globalcode – Open4education
  3. 3. Sobre mimBlog pessoal: www.rodrigodossantos.wsTwitter: @rosantozE-mail: rodrigo@ilhaweb.net Globalcode – Open4education
  4. 4. Nosso Contexto Globalcode – Open4education
  5. 5. Programação procedural ➔ Também conhecida como Programação Imperativa; ➔ Facilita o aprendizado de uma linguagem de programação; ➔ Foco em “Como fazer” e não o “quê fazer”; ➔ Proporciona liberdade ao programador, mas pode se tornar um grande problema; Globalcode – Open4education
  6. 6. Programação procedural ➔ Cada página do sistema é feito como um bloco. ➔ Não existe a separação de objetivos e responsabilidades. ➔ Alto grau de acoplamento entre interface, lógica de negócio e persistência de dados. ➔ Não segue um padrão específico; ➔ Código difícil de ler; ➔ Dificulta o processo de evolução e manutenção; Globalcode – Open4education
  7. 7. Exemplo Globalcode – Open4education
  8. 8. O que fazer então? Separar as responsabilidades Globalcode – Open4education
  9. 9. O que fazer então? Separar as responsabilidadesFigura: http://www.netrostar.com Globalcode – Open4education
  10. 10. Antes de começar ... Nosso ambiente de desenvolvimento: Globalcode – Open4education
  11. 11. Antes de começar ... Nosso ambiente de desenvolvimento: error_reporting(E_ALL | E_STRICT); error_reporting(-1); Globalcode – Open4education
  12. 12. Antes de começar ... Nosso ambiente de desenvolvimento: error_reporting(E_ALL | E_STRICT); error_reporting(-1); Xdebug; Globalcode – Open4education
  13. 13. Antes de começar ... Nosso ambiente de desenvolvimento: error_reporting(E_ALL | E_STRICT); error_reporting(-1); Xdebug; @ é proibido (Ex. @include “config.php”) Globalcode – Open4education
  14. 14. Adote um padrão de código Zend; Pear; Squiz; Crie seu próprio padrão, mas tenha um padrão; Globalcode – Open4education
  15. 15. Adote um padrão de códigoPHP_CodeSniffer Globalcode – Open4education
  16. 16. Adote um padrão de códigoPHPMD Globalcode – Open4education
  17. 17. Separando as coisas Globalcode – Open4education
  18. 18. Separando as coisas Globalcode – Open4education
  19. 19. Template Engine Possibilita separar o código HTML do código PHP (Zend_View, Zend_Layout) Globalcode – Open4education
  20. 20. Template Engine Globalcode – Open4education
  21. 21. Separando as coisas Globalcode – Open4education
  22. 22. Separando as coisas Globalcode – Open4education
  23. 23. Hora de ModelarFoto: www.mulherbeleza.com.br Globalcode – Open4education
  24. 24. Por que modelar? Globalcode – Open4education
  25. 25. Por que modelar? Ajuda a entender o problema; Globalcode – Open4education
  26. 26. Por que modelar? Ajuda a entender o problema; Nos faz pensar antes de fazer; Globalcode – Open4education
  27. 27. Por que modelar? Ajuda a entender o problema; Nos faz pensar antes de fazer; Facilita a comunicação com o usuário; Globalcode – Open4education
  28. 28. Por que modelar? Ajuda a entender o problema; Nos faz pensar antes de fazer; Facilita a comunicação com o usuário; Serve de documentação do sistema; Globalcode – Open4education
  29. 29. Como fazer? Comece pelo mais importante (comece pelo pior); Globalcode – Open4education
  30. 30. Como fazer? Comece pelo mais importante (comece pelo pior); UML; Globalcode – Open4education
  31. 31. Como fazer? Comece pelo mais importante (comece pelo pior); UML; Ferramentas case (Ex. Entreprise Architect); Globalcode – Open4education
  32. 32. Como fazer? Comece pelo mais importante (comece pelo pior); UML; Ferramentas case (Ex. Entreprise Architect); Papel e caneta também servem. Globalcode – Open4education
  33. 33. Ex.: Diagrama de classes Globalcode – Open4education
  34. 34. Fazer código, finalmente! Globalcode – Open4education
  35. 35. Fazer código, finalmente! TDD (Test Driven Development) Globalcode – Open4education
  36. 36. Fazer código, finalmente! TDD (Test Driven Development) Escreva um teste; Globalcode – Open4education
  37. 37. Fazer código, finalmente! TDD (Test Driven Development) Escreva um teste; Faça-o funcionar; Globalcode – Open4education
  38. 38. Fazer código, finalmente! TDD (Test Driven Development) Escreva um teste; Faça-o funcionar; Refatore. Globalcode – Open4education
  39. 39. Fazer código, finalmente! TDD (Test Driven Development) Escreva um teste; Faça-o funcionar; Refatore. Resultado: código limpo e que funciona Globalcode – Open4education
  40. 40. Fazer código, finalmente! TDD (Test Driven Development) Escreva um teste; Faça-o funcionar; Refatore. Resultado: código limpo e que funciona Para PHP: PHPUnit Globalcode – Open4education
  41. 41. Separando as coisas Globalcode – Open4education
  42. 42. Separando as coisas Globalcode – Open4education
  43. 43. Ciclo contínuo Globalcode – Open4education
  44. 44. Ciclo contínuo A cada novo release: Globalcode – Open4education
  45. 45. Ciclo contínuo A cada novo release: Adicionamos novas funcionalidades; Globalcode – Open4education
  46. 46. Ciclo contínuo A cada novo release: Adicionamos novas funcionalidades; Refatoramos uma parte do código legado; Globalcode – Open4education
  47. 47. Ciclo contínuo A cada novo release: Adicionamos novas funcionalidades; Refatoramos uma parte do código legado; Mantemos a documentação. Globalcode – Open4education
  48. 48. Perguntas? Globalcode – Open4education

×