Slide 1

Slide 1 text

Análise de Projetos

Slide 2

Slide 2 text

● Sistemas de Informação - ULBRA ● Software Developer ● Developer há 6 anos ● Coordenador da Comunidade ● Palestrante e Escritor ● Criador de ElePHPants ● Gamer nas horas vagas ;) Igor Santos

Slide 3

Slide 3 text

● Motivação ● Caso de Uso ● PHP Loc ● PHP CodeSniffer ● PHP Insights ● PHP Metrics ● PHP CS Fixer ● PHP Stan ● Menção Honrosa ● Dica Bagual Roteiro

Slide 4

Slide 4 text

Motivação Por PHP ser uma linguagem interpretada, não existe um compilador, isso significa que falhas e erros só serão percebidos em tempo de execução do código. Testes automatizados são uma ferramenta importante para prevenção de erros, mas como é possível verificar erros que podem passar despercebidos pelos testes ou inconsistências no projeto? Por isso trouxe aqui hoje algumas ferramentas para análise de código, que permitem realizar uma depuração do projeto e assim, verificar por: erros, bugs, complexidade e adequação de boas práticas. Benefícios Além de encontrar problemas e reduzir os defeitos de código, traz um aprendizado de melhores práticas entre desenvolvedores. Também sendo possível a inclusão destas ferramentas junto a integração contínua.

Slide 5

Slide 5 text

Caso de Uso https://github.com/IgorSantos17/conference-api

Slide 6

Slide 6 text

PHP Loc Ferramenta para medir rapidamente o tamanho e analisar a estrutura de um projeto PHP. https://github.com/sebastianbergmann/phploc

Slide 7

Slide 7 text

composer require --dev phploc/phploc Instalação Utilização vendor/bin/phploc

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

PHP CodeSniffer Ferramenta para análise dos padrões em seu código. https://github.com/squizlabs/PHP_CodeSniffer

Slide 10

Slide 10 text

Instalação composer require --dev squizlabs/php_codesniffer Utilização phpcs --help

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

Análise No resultado podemos analisar: ● Quantidade de erros Encontrados. ● Primeira coluna: ○ A linha onde o erro se encontra. ● Segunda coluna: ○ Mensagem de ERRO. ● Terceira coluna: ○ A descrição do erro encontrado. ● E por fim, o tempo decorrido da análise e o total de memória utilizada.

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

PHP Insights Ferramenta para análise da qualidade do código dos seus projetos. https://github.com/nunomaduro/phpinsights

Slide 15

Slide 15 text

Instalação composer require nunomaduro/phpinsights --dev Utilização vendor\bin\phpinsights

Slide 16

Slide 16 text

Análise A análise é dividida em quatro categorias: ● Código: ○ Classes, Comentários, Funções. ● Complexidade: ○ Nível de complexidade algorítmica. ● Arquitetura: ○ Tamanho de métodos e classes. ● Estilo: ○ Formatação, Padronização. Logo embaixo, pressionando enter serão exibidas as issues apuradas para cada card, sendo assim, os tópicos que precisamos rever para que consigamos melhorar a qualidade de código do nosso projeto.

Slide 17

Slide 17 text

PHP Metrics Ferramenta que fornece métricas sobre o projeto e as classes PHP em um relatório HTML. https://github.com/phpmetrics/PhpMetrics

Slide 18

Slide 18 text

Instalação composer require phpmetrics/phpmetrics Utilização phpmetrics --report-html=myreport .

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

Análise Após rodar o comando de execução, dentro da raiz do seu projeto irá criar o diretório myreport contendo uma página web com detalhes do seu projeto. Sendo alguns deles: ● Violações ● Linhas de Código ● Classes ● Complexidades ● Dependências Entre outras métricas.

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

PHP CS Fixer Ferramenta CLI que corrige arquivos PHP adequando-os para padrões de codificação (Coding Standards). https://github.com/FriendsOfPHP/PHP-CS-Fixer

Slide 23

Slide 23 text

Instalação composer require --dev friendsofphp/php-cs-fixer Utilização php-cs-fixer fix app/http/controllers --rules=@PSR2

Slide 24

Slide 24 text

Execução

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

Análise

Slide 29

Slide 29 text

PHP Stan Ferramenta para encontrar erros no seu código sem executá-lo. https://github.com/phpstan/phpstan https://github.com/nunomaduro/larastan (Para projetos Laravel)

Slide 30

Slide 30 text

Instalação composer require --dev phpstan/phpstan Utilização vendor\bin\phpstan analyse app/http/controllers

Slide 31

Slide 31 text

Execução

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

No content

Slide 34

Slide 34 text

Análise

Slide 35

Slide 35 text

Análise

Slide 36

Slide 36 text

Menção Honrosa https://github.com/sebastianbergmann/phpunit https://github.com/xdebug/xdebug

Slide 37

Slide 37 text

Dica Bagual Usando o Composer como atalho para a execução de scripts.

Slide 38

Slide 38 text

Dúvidas

Slide 39

Slide 39 text

twitter.com/IgorSantoos17 linkedin.com/in/igorsantoos github.com/IgorSantos17 medium.com/@igorsantos17 speakerdeck.com/igorsantos Contatos

Slide 40

Slide 40 text

#junteseamanada