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

[DevPR Umuarama] PHP Moderno - Ferramentas e bo...

[DevPR Umuarama] PHP Moderno - Ferramentas e boas práticas para o desenvolvimento nos dias atuais

Nessa talk apresento algumas ferramentas muito utilizadas nos dias atuais e também algumas boas práticas para o desenvolvimento de softwares em PHP.

Renan Delmonico

September 10, 2019
Tweet

More Decks by Renan Delmonico

Other Decks in Programming

Transcript

  1. Renan Delmonico ➔ Graduado em Sistemas de Informação pela Unipar

    ➔ Pós-graduado em desenvolvimento web e mobile pela Faculdade Alfa ➔ Desenvolvedor web desde 2013 ➔ Desenvolvedor web e mobile do Grupo Gazin ➔ Experiência com PHP, JS e React Native ➔ Conhecimentos em HTML e CSS @renandelmonico /renandelmonico @renandelmonico [email protected] /renandelmonico
  2. Introdução ➔ Lançado em 1995 com intuito de gerar conteúdo

    dinâmico para a web ➔ Linguagem veloz e robusta ➔ Orientada a objetos ➔ Open-source ➔ Server-side ➔ Tipagem dinâmica
  3. Introdução ➔ PHP 5.0 - 2004 ➔ Linguagem ficou por

    muito tempo sem sofrer uma grande atualização ➔ PHP 7.0 - 2015 ➔ Nova versão surpreendeu com o ganho de performance e novas funcionalidades ➔ 7.3.9 (lançado em 29 de agosto) ➔ 7.4 em versão beta
  4. PHP ➔ Linguagem back-end ◆ API pode ser consumida por

    qualquer tipo de dispositivo, seja ele mobile, desktop ou web ➔ Existem frameworks para várias finalidades ◆ Laravel - construção de páginas web ◆ Zend Expressive - construção de APIs ➔ Comunidade enorme ➔ Grande número de bibliotecas para todos os tipos de finalidade
  5. PSR

  6. PSR ➔ Com o grande número de desenvolvedores os principais

    frameworks da época se juntaram e formaram o PHP-FIG (Framework Interoperability Group) ➔ O PHP-FIG é responsável por colaborar com as recomendações de padrões do PHP, ou PSR (PHP Standards Recommendations)
  7. PSR ➔ Facilitar a reutilização de código entre os diversos

    projetos que implementem determinado padrão ➔ Sugestões de estilos de escrita de código ➔ Padrão de implementação de autoload ◆ PHP não é uma linguagem compilada, portanto os arquivos são carregados em tempo de execução
  8. Composer ➔ Composer é uma ferramenta para gerenciamento de bibliotecas

    em PHP ➔ Você declara as bibliotecas que necessita no projeto e ele instala/atualiza ➔ Java (Maven), Node (NPM), Ruby (bundler) ➔ Só foi possível por causa da criação da PSR-4 (autoload)
  9. Xdebug ➔ Ferramenta de depuração de código ➔ Esqueça o

    print_r e o var_dump (ou o System.out.println do Java) ➔ Permite você enxergar todo o funcionamento do código
  10. PHPUnit ➔ Ferramenta de testes unitários ➔ Mais utilizado entre

    as ferramentas de testes unitários em projetos PHP ➔ Fornece informações de cobertura de código, ou seja, quanto de nosso código foi testado
  11. PHP CodeSniffer ➔ Detecta violações de padrões de escrita de

    código ➔ Permite o usuário definir entre alguns padrões pré-estabelecidos, entre eles a PSR ➔ Ajuda a escrever um código de fácil leitura e manutenção
  12. PHP Mess Detector ➔ Ferramenta de análise de código que

    permite encontrar vários tipos de problemas e analisa a qualidade do código ➔ Alguns dos recursos ◆ Localização de possíveis bugs ◆ Localização de métodos, propriedades e parâmetros não utilizados ◆ Verificar variáveis com nomes curtos ◆ Verificar qualidade, complexibilidade e legibilidade do código
  13. PHP Static Analysis Tool ➔ Ferramenta de análise de código

    que permite encontrar vários tipos de problemas e analisa a qualidade do código ➔ Focado mais em analisar bugs de lógica que o PHP Mess Detector
  14. PHP Insights ➔ Verifica a qualidade de seu código e

    te dá alguns insights importantes ◆ Code style ◆ Complexibilidade ◆ Arquitetura
  15. PHPDocumentor ➔ Análise do código fonte e blocos de comentários

    para gerar uma documentação técnica do código ➔ Diagrama de herança mostrando todas as subclasses e implementações das interfaces ➔ Informa erros em seu código fonte ➔ Informa quais elementos estão marcados como depreciados
  16. OPcache ➔ Cache do código pré-compilado na memória RAM ➔

    PHP por padrão compila todo o código a cada requisição ➔ Com o OPcache o PHP não precisa compilar o código a cada requisição, isso faz com que o tempo de processamento seja significantemente menor
  17. Type Hint ➔ PHP é uma linguagem fracamente tipada ◆

    Não é necessário informar a tipagem da variável ➔ A partir do PHP 7 é possível informar tipos primários nas assinaturas dos métodos
  18. Type Hint ➔ Evita que o desenvolvedor cometa erros, sendo

    obrigatório passar um valor com a tipagem correta ➔ Evita problemas no momento em que o PHP tenta converter uma string em integer. ➔ Desempenho ◆ Com a tipagem na assinatura não é necessário realizar mais a conversão, caso precise ➔ A partir do PHP 8 será possível a tipagem de propriedades ➔ BOA PRÁTICA
  19. Docker ➔ Padronização do ambiente de desenvolvimento ➔ Embora seja

    parecido, ele não é uma máquina virtual ➔ Criação de ambientes estáveis e com configurações idênticas, tanto no desenvolvimento quanto na produção ➔ Possibilidade de rodar múltiplas versões do PHP (e outras linguagens) ao mesmo tempo ➔ NUNCA, JAMAIS, EM HIPÓTESE ALGUMA use XAMPP, WampServer, entre outros para desenvolvimento ◆ Comece da maneira certa!
  20. Sentry ➔ Ferramenta centralizadora de erros (monitoramento de bugs) ➔

    Permite que o desenvolvedor saiba os erros que acontecem no ambiente de produção sem que o usuário necessite informá-lo ➔ Configurável e com suporte a vários projetos e linguagens ➔ Ao instalar via Docker, ele é free