Dicas para iniciar um projeto em PHP

Dicas para iniciar um projeto em PHP

Dicas básicas que podem ajudar a criar uma boa base para o desenvolvimento e manutenção de um projeto em PHP, entre essas dicas, algumas também podem ser úteis em projetos desenvolvidos em outras linguagens.

0e7a15e0f82199ba83d4787ffc128bcd?s=128

Lucas de Oliveira

March 16, 2019
Tweet

Transcript

  1. Dicas para iniciar um Dicas para iniciar um projeto em

    PHP projeto em PHP 16/03/2019 16/03/2019
  2. Lucas de Oliveira Lucas de Oliveira Líder de Técnico /

    Desenvolvedor Backend na Acruxx Líder de Técnico / Desenvolvedor Backend na Acruxx deoliveiralucas.net deoliveiralucas.net 16/03/2019 16/03/2019
  3. Sobre as dicas Sobre as dicas 16/03/2019 16/03/2019

  4. 16/03/2019 16/03/2019 Cenário Cenário

  5. Sistemas Sistemas 16/03/2019 16/03/2019 Cenário Cenário

  6. Sistemas Sistemas Longo prazo Longo prazo 16/03/2019 16/03/2019 Cenário Cenário

  7. Sistemas Sistemas Longo prazo Longo prazo Muitas modificações Muitas modificações

    16/03/2019 16/03/2019 Cenário Cenário
  8. Sistemas Sistemas Longo prazo Longo prazo Muitas modificações Muitas modificações

    Nova solução Nova solução 16/03/2019 16/03/2019 Cenário Cenário
  9. Sistemas Sistemas Longo prazo Longo prazo Muitas modificações Muitas modificações

    Nova solução Nova solução Mais de um dev Mais de um dev 16/03/2019 16/03/2019 Cenário Cenário
  10. Sistemas Sistemas Longo prazo Longo prazo Muitas modificações Muitas modificações

    Nova solução Nova solução Mais de um dev Mais de um dev 16/03/2019 16/03/2019 Cenário Cenário
  11. Sites Sites Landing pages Landing pages Projetos de curto prazo

    Projetos de curto prazo 16/03/2019 16/03/2019 Não se aplica Não se aplica
  12. 16/03/2019 16/03/2019 Onde estamos? Onde estamos?

  13. Ideia Ideia 16/03/2019 16/03/2019 Onde estamos? Onde estamos?

  14. Ideia Ideia Descrição macro Descrição macro 16/03/2019 16/03/2019 Onde estamos?

    Onde estamos?
  15. Ideia Ideia Descrição macro Descrição macro Refinamento Refinamento 16/03/2019 16/03/2019

    Onde estamos? Onde estamos?
  16. Ideia Ideia Descrição macro Descrição macro Refinamento Refinamento Definição dos

    requisitos Definição dos requisitos 16/03/2019 16/03/2019 Onde estamos? Onde estamos?
  17. Ideia Ideia Descrição macro Descrição macro Refinamento Refinamento Definição dos

    requisitos Definição dos requisitos Desenvolvimento Desenvolvimento 16/03/2019 16/03/2019 Onde estamos? Onde estamos?
  18. Ideia Ideia Descrição macro Descrição macro Refinamento Refinamento Definição dos

    requisitos Definição dos requisitos Desenvolvimento Desenvolvimento 16/03/2019 16/03/2019 Onde estamos? Onde estamos?
  19. Ideia Ideia Descrição macro Descrição macro Refinamento Refinamento Definição dos

    requisitos Definição dos requisitos Desenvolvimento Desenvolvimento 16/03/2019 16/03/2019 Onde estamos? Onde estamos?
  20. 16/03/2019 16/03/2019 E se não tomarmos boas E se não

    tomarmos boas decisões no inicio... decisões no inicio...
  21. 16/03/2019 16/03/2019 Problemas Problemas

  22. Para membros da equipe Para membros da equipe 16/03/2019 16/03/2019

    Problemas Problemas
  23. Para membros da equipe Para membros da equipe Parâmetros de

    configuração Parâmetros de configuração 16/03/2019 16/03/2019 Problemas Problemas
  24. Para membros da equipe Para membros da equipe Parâmetros de

    configuração Parâmetros de configuração Gerenciamento de dependências Gerenciamento de dependências 16/03/2019 16/03/2019 Problemas Problemas
  25. Para membros da equipe Para membros da equipe Parâmetros de

    configuração Parâmetros de configuração Gerenciamento de dependências Gerenciamento de dependências Execução de funcionalidades Execução de funcionalidades 16/03/2019 16/03/2019 Problemas Problemas
  26. Para membros da equipe Para membros da equipe Parâmetros de

    configuração Parâmetros de configuração Gerenciamento de dependências Gerenciamento de dependências Execução de funcionalidades Execução de funcionalidades Utilização de serviços Utilização de serviços 16/03/2019 16/03/2019 Problemas Problemas
  27. Para membros da equipe Para membros da equipe Parâmetros de

    configuração Parâmetros de configuração Gerenciamento de dependências Gerenciamento de dependências Execução de funcionalidades Execução de funcionalidades Utilização de serviços Utilização de serviços Configuração do projeto Configuração do projeto 16/03/2019 16/03/2019 Problemas Problemas
  28. Para membros da equipe Para membros da equipe Parâmetros de

    configuração Parâmetros de configuração Gerenciamento de dependências Gerenciamento de dependências Execução de funcionalidades Execução de funcionalidades Utilização de serviços Utilização de serviços Configuração do projeto Configuração do projeto ... ... 16/03/2019 16/03/2019 Problemas Problemas
  29. Para novos integrantes Para novos integrantes 16/03/2019 16/03/2019 Problemas Problemas

  30. Para novos integrantes Para novos integrantes Tempo de integração Tempo

    de integração 16/03/2019 16/03/2019 Problemas Problemas
  31. Para novos integrantes Para novos integrantes Tempo de integração Tempo

    de integração Configuração do ambiente Configuração do ambiente 16/03/2019 16/03/2019 Problemas Problemas
  32. Para novos integrantes Para novos integrantes Tempo de integração Tempo

    de integração Configuração do ambiente Configuração do ambiente Conhecer o código-fonte Conhecer o código-fonte 16/03/2019 16/03/2019 Problemas Problemas
  33. Para novos integrantes Para novos integrantes Tempo de integração Tempo

    de integração Configuração do ambiente Configuração do ambiente Conhecer o código-fonte Conhecer o código-fonte Processo de desenvolvimento Processo de desenvolvimento 16/03/2019 16/03/2019 Problemas Problemas
  34. Para novos integrantes Para novos integrantes Tempo de integração Tempo

    de integração Configuração do ambiente Configuração do ambiente Conhecer o código-fonte Conhecer o código-fonte Processo de desenvolvimento Processo de desenvolvimento Processo de entrega Processo de entrega 16/03/2019 16/03/2019 Problemas Problemas
  35. Para novos integrantes Para novos integrantes Tempo de integração Tempo

    de integração Configuração do ambiente Configuração do ambiente Entender o código-fonte Entender o código-fonte Processo de desenvolvimento Processo de desenvolvimento Processo de entrega Processo de entrega ... ... 16/03/2019 16/03/2019 Problemas Problemas
  36. Para novos integrantes Para novos integrantes Tempo de integração Tempo

    de integração Configuração do ambiente Configuração do ambiente Conhecer o código-fonte Conhecer o código-fonte Processo de desenvolvimento Processo de desenvolvimento Processo de entrega Processo de entrega ... ... Problemas dos membros da equipe Problemas dos membros da equipe 16/03/2019 16/03/2019 Problemas Problemas
  37. Para novos integrantes Para novos integrantes Tempo de integração Tempo

    de integração Configuração do ambiente Configuração do ambiente Conhecer o Conhecer o código-fonte código-fonte Processo de desenvolvimento Processo de desenvolvimento Processo de entrega Processo de entrega ... ... Problemas dos membros da equipe Problemas dos membros da equipe 16/03/2019 16/03/2019 Problemas Problemas
  38. Código-fonte Código-fonte 16/03/2019 16/03/2019 Problemas Problemas

  39. Código-fonte Código-fonte Adicionar funcionalidades Adicionar funcionalidades 16/03/2019 16/03/2019 Problemas Problemas

  40. Código-fonte Código-fonte Adicionar funcionalidades Adicionar funcionalidades Reutilizar código Reutilizar código

    16/03/2019 16/03/2019 Problemas Problemas
  41. Código-fonte Código-fonte Adicionar funcionalidades Adicionar funcionalidades Reutilizar código Reutilizar código

    Executar alterações Executar alterações 16/03/2019 16/03/2019 Problemas Problemas
  42. Código-fonte Código-fonte Adicionar funcionalidades Adicionar funcionalidades Reutilizar código Reutilizar código

    Executar alterações Executar alterações Trabalhar em equipe Trabalhar em equipe 16/03/2019 16/03/2019 Problemas Problemas
  43. Código-fonte Código-fonte Adicionar funcionalidades Adicionar funcionalidades Reutilizar código Reutilizar código

    Executar alterações Executar alterações Trabalhar em equipe Trabalhar em equipe Executar a implantação Executar a implantação 16/03/2019 16/03/2019 Problemas Problemas
  44. Código-fonte Código-fonte Adicionar funcionalidades Adicionar funcionalidades Reutilizar código Reutilizar código

    Executar alterações Executar alterações Trabalhar em equipe Trabalhar em equipe Executar a implantação Executar a implantação ... ... 16/03/2019 16/03/2019 Problemas Problemas
  45. 16/03/2019 16/03/2019 Evitando problemas Evitando problemas

  46. 16/03/2019 16/03/2019 Evitando problemas Evitando problemas Organização Organização Documentação Documentação

    Automatização de tarefas Automatização de tarefas Definição de processos Definição de processos ... ...
  47. Defina o repositório e VCS Defina o repositório e VCS

    Github Github Bitbucket Bitbucket Gitlab Gitlab ... ... 16/03/2019 16/03/2019 Dicas Dicas
  48. Consulte a versão atual do PHP Consulte a versão atual

    do PHP Funcionalidades atuais Funcionalidades atuais Revise ferramentas e boas práticas Revise ferramentas e boas práticas PHP The Right Way PHP The Right Way PHP.net PHP.net ... ... 16/03/2019 16/03/2019 Dicas Dicas
  49. 16/03/2019 16/03/2019

  50. Defina uma arquitetura Defina uma arquitetura Entenda bem o problema

    Entenda bem o problema Utilize o conhecimento da equipe Utilize o conhecimento da equipe Busque facilidade de manutenção Busque facilidade de manutenção ... ... 16/03/2019 16/03/2019 Dicas Dicas
  51. Defina uma arquitetura Defina uma arquitetura Entenda bem o problema

    Entenda bem o problema Utilize o conhecimento da equipe Utilize o conhecimento da equipe Busque facilidade de manutenção Busque facilidade de manutenção ... ... 16/03/2019 16/03/2019 Dicas Dicas
  52. Defina uma arquitetura Defina uma arquitetura MVC MVC Action Domain

    Responder Action Domain Responder Clean Architecture Clean Architecture Hexagonal Architecture Hexagonal Architecture CQRS CQRS Event Sourcing Event Sourcing Microservices Microservices SOA SOA ... ... 16/03/2019 16/03/2019 Dicas Dicas
  53. 16/03/2019 16/03/2019

  54. Defina uma arquitetura Defina uma arquitetura Estude a melhor opção

    Estude a melhor opção Resolva o problema Resolva o problema Não crie mais problemas Não crie mais problemas ... ... 16/03/2019 16/03/2019 Dicas Dicas
  55. Escolha soluções prontas Escolha soluções prontas Frameworks Frameworks Micro-frameworks Micro-frameworks

    Componentes Componentes Foque na solução de negócio Foque na solução de negócio ... ... 16/03/2019 16/03/2019 Dicas Dicas
  56. Escolha soluções prontas Escolha soluções prontas Symfony Symfony Laravel Laravel

    Lumen Lumen Zend Framework Zend Framework Zend Expressive Zend Expressive Slim Framework Slim Framework ... ... 16/03/2019 16/03/2019 Dicas Dicas
  57. 16/03/2019 16/03/2019

  58. Escolha soluções prontas Escolha soluções prontas Packagist Packagist Composer Composer

    16/03/2019 16/03/2019 Dicas Dicas
  59. 16/03/2019 16/03/2019

  60. 16/03/2019 16/03/2019

  61. Escolha soluções prontas Escolha soluções prontas Atividade dos mantenedores no

    projeto Atividade dos mantenedores no projeto Issues Issues abertas e resolvidas abertas e resolvidas Quantidade de Quantidade de stars stars Documentação fácil de entender e com Documentação fácil de entender e com exemplos exemplos ... ... 16/03/2019 16/03/2019 Dicas Dicas
  62. 16/03/2019 16/03/2019

  63. Configure os Testes Configure os Testes PHPUnit PHPUnit Behat Behat

    Codeception Codeception ... ... 16/03/2019 16/03/2019 Dicas Dicas
  64. 16/03/2019 16/03/2019

  65. Adicione ferramentas de QA Adicione ferramentas de QA PHP Stan

    PHP Stan PHP Code Sniffer PHP Code Sniffer PHP Depend PHP Depend PHP Mess Detector PHP Mess Detector PHP Copy Paste Detector PHP Copy Paste Detector ... ... 16/03/2019 16/03/2019 Dicas Dicas
  66. 16/03/2019 16/03/2019

  67. Crie uma funcionalidade de Crie uma funcionalidade de exemplo exemplo

    Entendimento da arquitetura Entendimento da arquitetura Separação das camadas Separação das camadas Comunicação entre camadas Comunicação entre camadas Nomeação de arquivos e Nomeação de arquivos e namespaces namespaces ... ... 16/03/2019 16/03/2019 Dicas Dicas
  68. Mantenha os ambientes Mantenha os ambientes semelhantes semelhantes Docker Docker

    Vagrant Vagrant ... ... 16/03/2019 16/03/2019 Dicas Dicas
  69. Automatize o processo de Automatize o processo de implantação implantação

    Heroku Heroku Deployer Deployer ... ... 16/03/2019 16/03/2019 Dicas Dicas
  70. Configure uma ferramenta de Configure uma ferramenta de Integração Contínua

    Integração Contínua TravisCI TravisCI Bitbucket Pipeline Bitbucket Pipeline Jenkins Jenkins ... ... 16/03/2019 16/03/2019 Dicas Dicas
  71. 16/03/2019 16/03/2019

  72. 16/03/2019 16/03/2019

  73. Defina o processo de trabalho no Defina o processo de

    trabalho no código-fonte código-fonte Padrão de Padrão de commit commit Nomeação das Nomeação das branches branches Versionamento Versionamento Documentação das Documentação das releases releases ... ... 16/03/2019 16/03/2019 Dicas Dicas
  74. 16/03/2019 16/03/2019

  75. Fonte: https://br.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow

  76. 16/03/2019 16/03/2019

  77. 16/03/2019 16/03/2019

  78. Adicione a etapa Code Review Adicione a etapa Code Review

    Checklist Checklist para alinhar verificações para alinhar verificações Antes de enviar para o ambiente de teste Antes de enviar para o ambiente de teste Após a execução da ferramenta CI Após a execução da ferramenta CI Melhorar a qualidade do software Melhorar a qualidade do software Compartilhar conhecimento Compartilhar conhecimento 16/03/2019 16/03/2019 Dicas Dicas
  79. 16/03/2019 16/03/2019 Fonte: https://www.evoketechnologies.com/blog/code-review-checklist-perform-effective-code-reviews/

  80. Estude/Revise os 12 fatores Estude/Revise os 12 fatores The Twelve

    Factors Apps The Twelve Factors Apps 12factor.net 12factor.net 16/03/2019 16/03/2019 Dicas Dicas
  81. 16/03/2019 16/03/2019

  82. Adicione tudo no repositório Adicione tudo no repositório Documentação (Markdown/Wiki)

    Documentação (Markdown/Wiki) Scripts de correção/jobs Scripts de correção/jobs Exemplos de comandos Exemplos de comandos Links para outras documentações Links para outras documentações Tudo que for parte da aplicação Tudo que for parte da aplicação 16/03/2019 16/03/2019 Dicas Dicas
  83. 16/03/2019 16/03/2019

  84. 16/03/2019 16/03/2019 Prepare uma boa base para Prepare uma boa

    base para construção do software e evite construção do software e evite problemas ao decorrer do problemas ao decorrer do desenvolvimento. desenvolvimento. Conclusão Conclusão
  85. 16/03/2019 16/03/2019 Perguntas? Perguntas?

  86. 16/03/2019 16/03/2019 Obrigado! Obrigado! deoliveiralucas.net deoliveiralucas.net phpvale.com.br phpvale.com.br