Práticas recomendadas de desenvolvimento geral do Adobe Commerce
Este tópico descreve a linha de base para um processo de desenvolvimento saudável do Adobe Commerce. Ele descreve processos fundamentais, princípios de codificação e princípios de design de aplicativos para orientar os desenvolvedores.
Essas práticas recomendadas foram desenvolvidas com base em anos de experiência no desenvolvimento e no fornecimento de projetos do Commerce. A Adobe recomenda que as iniciativas técnicas sigam essas práticas recomendadas e que você melhore os processos e o código existentes para alinhá-los.
Convenções de texto
As palavras-chave "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY" e "OPTIONAL" neste tópico devem ser interpretadas conforme descrito em RFC 2119.
Processo
- Uma metodologia de projeto definida DEVE ser acordada antes do início das atividades do projeto. PODE ser Scrum, Waterfall ou qualquer outra metodologia ou combinação de metodologias, desde que esteja definida.
- O desenvolvimento NÃO DEVE começar até que uma estratégia de ramificação para o sistema de controle de versão esteja disponível para a equipe de desenvolvimento.
- O desenvolvimento NÃO DEVE começar até que as especificações técnicas, as histórias de usuários e os casos de uso sejam aprovados, e a aprovação em casos de teste esteja disponível para a equipe de desenvolvimento.
- O desenvolvimento NÃO DEVE começar até que pelo menos um ambiente de desenvolvimento e controle de qualidade esteja disponível.
- Os requisitos específicos do projeto obrigatórios para o início do desenvolvimento PODEM ser documentados em uma Definição de Pronto.
- A aprovação DEVE ser feita por um representante do cliente autorizado a aprovar os resultados do projeto.
- Nas metodologias de projetos Agile, requisitos adicionais PODEM vir após a aprovação. Esses requisitos DEVEM ser tratados como novos requisitos e DEVEM ser capturados, arquitetados e planejados de acordo.
- Todo o desenvolvimento DEVE ser funcionalmente testado pelo desenvolvedor antes do envio.
- Todo o desenvolvimento DEVE passar por testes automatizados antes de ser enviado para revisão do código. Isso PODE ser configurado como um processo automatizado após a criação da solicitação de pull.
- Todo o desenvolvimento DEVE passar pela revisão manual do código por um arquiteto técnico ou desenvolvedor principal antes de ser enviado para o controle de qualidade.
- Todo o desenvolvimento DEVE passar pela garantia de qualidade antes da entrega ao cliente.
- Os requisitos específicos do projeto que são obrigatórios para entrega PODEM ser documentados em uma "Definição de Concluído".
Ambiente
- Todos os desenvolvedores DEVEM usar o mesmo IDE. O PhpStorm é o IDE recomendado para o desenvolvimento do Adobe Commerce.
- Todos os desenvolvedores DEVEM desenvolver e testar usando a mesma pilha de tecnologia usada nos (futuros) servidores de produção. As versões do software nesta pilha de tecnologia DEVEM corresponder às versões principal e secundária do software instalado nos servidores de produção. Consulte requisitos do sistema para obter detalhes sobre a pilha de tecnologia típica do Adobe Commerce.
- O administrador do sistema ou arquiteto técnico PODE fornecer à equipe um ambiente de desenvolvimento local mantido centralmente para garantir e promover ambientes locais iguais e atualizados.
- Os desenvolvedores e engenheiros de controle de qualidade DEVEM ter acesso à linha de comando, ao banco de dados e aos arquivos de registro do ambiente de controle de qualidade. Isso PODE exigir uma conexão VPN.
Padrões de codificação
- Todos os códigos DEVEM seguir as convenções de arquitetura, metodologia e padrões de codificação. A criatividade é desejada na função, não na forma.
- Todos os códigos DEVEM estar de acordo com o Guia de Arquitetura do Adobe Commerce.
- Todos os códigos DEVEM seguir os Padrões de codificação do Adobe Commerce.
- Todos os códigos DEVEM seguir as Diretrizes Técnicas da Adobe Commerce.
- Todos os códigos DEVEM implementar as Práticas recomendadas da Adobe Commerce, se aplicável.
- Todo código DEVE seguir os padrões do Grupo de Interoperabilidade de PHP (FIG).
- Sempre que possível, é RECOMENDÁVEL considerar as Visões técnicas do Adobe Commerce.
- Todas as integrações com sistemas externos DEVEM ter testes de integração que validem o processo de negócios.
- Todos os módulos DEVEM ter cobertura de teste. O que testar exatamente DEVE ser determinado pela equipe de desenvolvimento, em colaboração com o arquiteto técnico ou o desenvolvedor principal. Essa determinação DEVE ser baseada em medidas qualitativas e não em medidas quantitativas; uma alta porcentagem de cobertura de código não é um indicador de sucesso, nem implica alta qualidade de código. Em vez disso, determine o risco de não cobrir uma parte do código avaliando a probabilidade e a gravidade das regressões nessa parte do programa.
Controle de versão
As versões de módulo DEVEM seguir o Controle de Versão Semântico 2.0.0 padrão.
As dependências na base de código do Adobe Commerce DEVEM seguir as diretrizes de Dependências de Versão de Módulo.
CONTROLE DE REVISÃO
As confirmações DEVEM ser acompanhadas por mensagens de confirmação significativas.
Segurança
- Funções não seguras NÃO DEVEM ser usadas.
- Estratégias de prevenção XSS DEVEM ser aplicadas.
- Políticas de Segurança de Conteúdo DEVEM ser aplicadas.
- As novas instâncias do Adobe Commerce DEVEM ser entregues na versão de segurança mais recente de uma versão que ainda não atingiu a data de "Fim das correções de segurança". Consulte Política de Ciclo de Vida de Software da Adobe Commerce.