Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Qualidade Essencial para Projetos PHP

Qualidade Essencial para Projetos PHP

Escrever código-fonte, desenvolver sistemas e aplicações funcionais é fácil. Fazer tudo isso com qualidade é outra conversa. Nesta palestra conversaremos sobre conceitos, técnicas e ferramentas que ajudarão você a levar seu projeto para outro nível de qualidade.

Avatar for Er Galvão Abbott

Er Galvão Abbott

November 19, 2019
Tweet

More Decks by Er Galvão Abbott

Other Decks in Programming

Transcript

  1. www.galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott

    - 11/26/19 - 1 / 62 Qualidade Essencial para Projetos PHP ElePHPant by Vincent Pontier. Qualidade Essencial para Projetos php
  2. Presidente (2012 – 2017) da ABRAPHP – Associação Brasileira de

    Profissionais PHP Diretor da ConFLOSS Diretor da PHP Conference Brasil Evangelista e Contribuidor para a Linguagem Evangelista Laminas Project (auto-intitulado) Embaixador Fedora LATAM Professor Convidado (Especialista) de Pós-Graduação (PR e SC) 25+ anos desenvolvendo sistemas e aplicações com interface web 20+ destes com PHP 12+ com Zend Framework Palestrante em eventos nacionais e internacionais Professor de cursos presenciais e a distância Quem?! CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 11/26/19 - 2 / 62 www.galvao.eti.br www.galvao.eti.br Qualidade Essencial para Projetos PHP
  3. Objetivo CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott

    - 11/26/19 - 3 / 62 www.galvao.eti.br Ter uma conversa franca e direta sobre qualidade. Detalhar conceitos, técnicas e ferramentas para incrementar a qualidade de Projetos PHP… bem, na realidade qualidade de Projetos, independente de linguagem/arquitetura/etc... Qualidade Essencial para Projetos PHP
  4. Qual é o problema CC Attribution-ShareAlike 3.0 Unported License by

    Er Galvão Abbott - 11/26/19 - 4 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP ? Por que se preocupar com qualidade
  5. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    11/26/19 - 5 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP Por que se preocupar com qualidade
  6. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    11/26/19 - 6 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP Por que se preocupar com qualidade
  7. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    11/26/19 - 7 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP Por que se preocupar com qualidade
  8. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    11/26/19 - 8 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP Por que se preocupar com qualidade
  9. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    11/26/19 - 9 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP Por que se preocupar com qualidade
  10. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    11/26/19 - 10 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP Por que se preocupar com qualidade
  11. O que se ganha com qualidade? CC Attribution-ShareAlike 3.0 Unported

    License by Er Galvão Abbott - 11/26/19 - 11 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP Em contraste...
  12. O que se ganha com qualidade? CC Attribution-ShareAlike 3.0 Unported

    License by Er Galvão Abbott - 11/26/19 - 12 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP t Crédito: https://hackaday.com/2019/11/17/unix-version-0-running-on-a-pdp-7-in-2019/ Em contraste...
  13. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    11/26/19 - 13 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP O problema não é tecnológico Qual é o problema?
  14. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    11/26/19 - 14 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP O problema não é tecnológico Análise Estática exakat phan phpstan psalm Qual é o problema?
  15. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    11/26/19 - 15 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP O problema não é tecnológico Análise Estática exakat phan phpstan psalm Análise de padrão phpcs phpcbf Qual é o problema?
  16. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    11/26/19 - 16 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP O problema não é tecnológico Análise Estática exakat phan phpstan psalm Análise de padrão phpcs phpcbf Análise de complexidade phploc Qual é o problema?
  17. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    11/26/19 - 17 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP O problema não é tecnológico Análise Estática exakat phan phpstan psalm Análise de padrão phpcs phpcbf Dependências composer dephpend Análise de complexidade phploc Qual é o problema?
  18. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    11/26/19 - 18 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP O problema não é tecnológico Análise Estática exakat phan phpstan psalm Análise de padrão phpcs phpcbf Dependências composer dephpend Debug/Profiling blackfire Xdebug + KCachegrind php-dbg gdb Análise de complexidade phploc Qual é o problema?
  19. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    11/26/19 - 19 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP O problema não é tecnológico Análise Estática exakat phan phpstan psalm Análise de padrão phpcs phpcbf Dependências composer dephpend Debug/Profiling blackfire Xdebug + KCachegrind php-dbg gdb Análise de complexidade phploc Documentação phpDocumentor Qual é o problema?
  20. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    11/26/19 - 20 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP O problema não é tecnológico Análise Estática exakat phan phpstan psalm Análise de padrão phpcs phpcbf Dependências composer dephpend Debug/Profiling blackfire Xdebug + KCachegrind php-dbg gdb Análise de complexidade phploc Documentação phpDocumentor Testes PHPUnit Behat Selenium Qual é o problema?
  21. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    11/26/19 - 21 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP O problema não é tecnológico Análise Estática exakat phan phpstan psalm Análise de padrão phpcs phpcbf Dependências composer dephpend Debug/Profiling blackfire Xdebug + KCachegrind php-dbg gdb Análise de complexidade phploc Documentação phpDocumentor E T C Testes PHPUnit Behat Selenium Qual é o problema?
  22. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    11/26/19 - 22 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP O problema não é tecnológico Análise Estática exakat phan phpstan psalm Análise de padrão phpcs phpcbf Dependências composer dephpend Debug/Profiling blackfire Xdebug + KCachegrind php-dbg gdb Análise de complexidade phploc Documentação phpDocumentor E T C Testes PHPUnit Behat Selenium https://github.com/jakzal/phpqa/blob/master/README.md https://phpqa.io/ https://lmgtfy.com/?q=php+quality+tools ... Qual é o problema?
  23. Qual é o problema? CC Attribution-ShareAlike 3.0 Unported License by

    Er Galvão Abbott - 11/26/19 - 23 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP O problema é Cultural
  24. Qual é o problema? CC Attribution-ShareAlike 3.0 Unported License by

    Er Galvão Abbott - 11/26/19 - 24 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP Crédito: https://mashable.com/2014/04/30/facebooks-new-mantra-move-fast-with-stability/ O problema é Cultural* * O problema não é o Facebook, ou o Sr.Zuckerberg
  25. Qualidade? CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott

    - 11/26/19 - 25 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP Projeto Definido Estruturado Sólido Testável Documentado Código-Fonte Atualizado
  26. Projeto - Definido CC Attribution-ShareAlike 3.0 Unported License by Er

    Galvão Abbott - 11/26/19 - 26 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP Você sabe definir o seu projeto?
  27. Projeto - Definido CC Attribution-ShareAlike 3.0 Unported License by Er

    Galvão Abbott - 11/26/19 - 27 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP Você sabe definir o seu projeto? O que ele tem que fazer?
  28. Projeto - Definido CC Attribution-ShareAlike 3.0 Unported License by Er

    Galvão Abbott - 11/26/19 - 28 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP Você sabe definir o seu projeto? O que ele tem que fazer? Features indispensáveis Não devem quebrar
  29. Projeto - Definido CC Attribution-ShareAlike 3.0 Unported License by Er

    Galvão Abbott - 11/26/19 - 29 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP Você sabe definir o seu projeto? O que ele tem que fazer? Features indispensáveis Não devem quebrar Quais são os desafios?
  30. Projeto - Definido CC Attribution-ShareAlike 3.0 Unported License by Er

    Galvão Abbott - 11/26/19 - 30 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP Você sabe definir o seu projeto? O que ele tem que fazer? Features indispensáveis Não devem quebrar Quais são os desafios? Possíveis problemas Planejamento de Soluções
  31. Código-fonte - Definido CC Attribution-ShareAlike 3.0 Unported License by Er

    Galvão Abbott - 11/26/19 - 31 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP Você sabe o que usar no seu código? Quais componentes são úteis ao projeto?
  32. Código-fonte - Definido CC Attribution-ShareAlike 3.0 Unported License by Er

    Galvão Abbott - 11/26/19 - 32 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP Você sabe o que usar no seu código? Quais componentes são úteis ao projeto? Componentes estabelecidos
  33. Código-fonte - Definido CC Attribution-ShareAlike 3.0 Unported License by Er

    Galvão Abbott - 11/26/19 - 33 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP Você sabe o que usar no seu código? Quais componentes são úteis ao projeto? Componentes estabelecidos E de qualidade
  34. Pojeto / Código-fonte - Estruturado CC Attribution-ShareAlike 3.0 Unported License

    by Er Galvão Abbott - 11/26/19 - 34 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP Onde cada pedaço do projeto vai residir?
  35. Pojeto / Código-fonte - Estruturado CC Attribution-ShareAlike 3.0 Unported License

    by Er Galvão Abbott - 11/26/19 - 35 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP Onde cada pedaço do projeto vai residir? Estrutura padrão de pastas
  36. Pojeto / Código-fonte - Estruturado CC Attribution-ShareAlike 3.0 Unported License

    by Er Galvão Abbott - 11/26/19 - 36 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP Onde cada pedaço do projeto vai residir? Estrutura padrão de pastas Permissões O que é acessível… e o que não é
  37. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    11/26/19 - 37 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP É possível compreender o projeto? Pojeto - Documentado
  38. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    11/26/19 - 38 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP É possível compreender o projeto? Existe Diagrama de fluxo? Pojeto - Documentado
  39. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    11/26/19 - 39 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP É possível compreender o projeto? Existe Diagrama de fluxo? Pojeto - Documentado Diagrama da Base de Dados?
  40. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    11/26/19 - 40 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP É possível compreender o projeto? Existe Diagrama de fluxo? Pojeto - Documentado Diagrama da Base de Dados? Padrões de Nomenclatura?
  41. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    11/26/19 - 41 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP É possível compreender o projeto? Existe Diagrama de fluxo? Pojeto - Documentado Diagrama da Base de Dados? Padrões de Nomenclatura? Separação de Camadas?
  42. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    11/26/19 - 42 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP É possível compreender o projeto? Existe Diagrama de fluxo? Pojeto - Documentado Diagrama da Base de Dados? Padrões de Nomenclatura? Separação de Camadas? Dúvidas são facilmente solucionáveis?
  43. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    11/26/19 - 43 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP Todo o código complexo/incomum é explicado? Código-fonte - Documentado
  44. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    11/26/19 - 44 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP Todo o código complexo/incomum é explicado? Geração de Documentação fora do código Código-fonte - Documentado Versionamento desde a 1ª Linha “API” (Assinatura de classe/método/função) Estilo de código
  45. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    11/26/19 - 45 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP Replicável (Ambiente, Infra) Projeto - Sólido
  46. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    11/26/19 - 46 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP Replicável (Ambiente, Infra) Registro de erros/situações (Log!) Registro de acesso (“Syslog”!) Projeto - Sólido
  47. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    11/26/19 - 47 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP Replicável (Ambiente, Infra) Registro de erros/situações (Log!) Registro de acesso (“Syslog”!) Segurança Projeto - Sólido Pontos de Entrada (Filtragem/Validação) Criptografia Hashing
  48. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    11/26/19 - 48 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP Testes Unitários De Interface De Segurança De Usabilidade Projeto - Testável De Acessibilidade
  49. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott -

    11/26/19 - 49 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP Versão de Linguagem/Software/Infra/Dependências Patches Segurança Bugs Pojeto / Código-fonte - Atualizado
  50. Qual é o problema? CC Attribution-ShareAlike 3.0 Unported License by

    Er Galvão Abbott - 11/26/19 - 50 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP O problema é Cultural
  51. Qual é o problema? CC Attribution-ShareAlike 3.0 Unported License by

    Er Galvão Abbott - 11/26/19 - 51 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP Idolatramos as pessoas erradas O problema é Cultural
  52. Qual é o problema? CC Attribution-ShareAlike 3.0 Unported License by

    Er Galvão Abbott - 11/26/19 - 52 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP Idolatramos as pessoas erradas O problema é Cultural Pior: Idolatramos empresas
  53. Qual é o problema? CC Attribution-ShareAlike 3.0 Unported License by

    Er Galvão Abbott - 11/26/19 - 53 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP Idolatramos as pessoas erradas Adotamos filosofias erradas O problema é Cultural Pior: Idolatramos empresas
  54. Qual é o problema? CC Attribution-ShareAlike 3.0 Unported License by

    Er Galvão Abbott - 11/26/19 - 54 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP Idolatramos as pessoas erradas Temos objetivos errados Adotamos filosofias erradas O problema é Cultural Pior: Idolatramos empresas
  55. Qual é o problema? CC Attribution-ShareAlike 3.0 Unported License by

    Er Galvão Abbott - 11/26/19 - 55 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP Idolatramos as pessoas erradas Temos objetivos errados Temos prioridades erradas Adotamos filosofias erradas O problema é Cultural Pior: Idolatramos empresas
  56. Qual é a Solução? CC Attribution-ShareAlike 3.0 Unported License by

    Er Galvão Abbott - 11/26/19 - 56 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP A Solução é Cultural
  57. Qual é a Solução? CC Attribution-ShareAlike 3.0 Unported License by

    Er Galvão Abbott - 11/26/19 - 57 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP A Solução é Cultural Conceitos
  58. Qual é a Solução? CC Attribution-ShareAlike 3.0 Unported License by

    Er Galvão Abbott - 11/26/19 - 58 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP Diálogo / Comunicação A Solução é Cultural Conceitos
  59. Qual é a Solução? CC Attribution-ShareAlike 3.0 Unported License by

    Er Galvão Abbott - 11/26/19 - 59 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP Diálogo / Comunicação Ética / Atitude A Solução é Cultural Conceitos
  60. Qual é a Solução? CC Attribution-ShareAlike 3.0 Unported License by

    Er Galvão Abbott - 11/26/19 - 60 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP Diálogo / Comunicação Disciplina Ética / Atitude A Solução é Cultural Conceitos
  61. Qual é a Solução? CC Attribution-ShareAlike 3.0 Unported License by

    Er Galvão Abbott - 11/26/19 - 61 / 62 www.galvao.eti.br Qualidade Essencial para Projetos PHP Diálogo / Comunicação Disciplina Profissionalismo Ética / Atitude A Solução é Cultural Conceitos
  62. Muito obrigado! CC Attribution-ShareAlike 3.0 Unported License by Er Galvão

    Abbott - 11/26/19 - 62 / 62 www.galvao.eti.br Dúvidas? Críticas? Elogios?! ? Qualidade Essencial para Projetos PHP