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

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.

Lucas de Oliveira

March 16, 2019
Tweet

Other Decks in Programming

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. 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
  4. 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
  5. 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
  6. 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
  7. 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?
  8. 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?
  9. 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?
  10. 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?
  11. 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...
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. Para novos integrantes Para novos integrantes Tempo de integração Tempo

    de integração 16/03/2019 16/03/2019 Problemas Problemas
  19. 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
  20. 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
  21. 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
  22. 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
  23. 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
  24. 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
  25. 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
  26. 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
  27. 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
  28. 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
  29. 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
  30. 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 ... ...
  31. 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
  32. 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
  33. 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
  34. 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
  35. 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
  36. 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
  37. 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
  38. 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
  39. 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
  40. Configure os Testes Configure os Testes PHPUnit PHPUnit Behat Behat

    Codeception Codeception ... ... 16/03/2019 16/03/2019 Dicas Dicas
  41. 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
  42. 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
  43. Mantenha os ambientes Mantenha os ambientes semelhantes semelhantes Docker Docker

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

    Heroku Heroku Deployer Deployer ... ... 16/03/2019 16/03/2019 Dicas Dicas
  45. 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
  46. 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
  47. 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
  48. 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
  49. 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
  50. 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