Práticas recomendadas de gerenciamento de código do Adobe Commerce

Este tópico foi projetado para ajudá-lo a decidir se usará o Git ou o Composer para distribuir código personalizado, considerando o gerenciamento de versões, a complexidade do código e o gerenciamento de dependências.

NOTE
Essas práticas recomendadas são mais adequadas para migrações e implementações; menos para o desenvolvimento de um único módulo.

Produtos e versões afetados

Todas as versõescom suporte de:

  • Adobe Commerce na infraestrutura em nuvem
  • Adobe Commerce no local

Abrange a arquitetura de referência global (GRA) e as instalações de instância única.

Definições

  • Arquitetura de Referência Global (GRA): também conhecida como White Label Architecture ou Common Code Base. Esta é a arquitetura de distribuição do módulo para uma configuração de várias instâncias.
  • Configuração de várias instâncias: o mesmo cliente usa instalações separadas do Adobe Commerce para regiões ou marcas separadas. Cada instalação tem módulos compartilhados e exclusivos.
  • Configuração de instância única: há apenas uma instalação do Adobe Commerce. Várias cópias do código-fonte podem existir para diferentes ambientes de teste, mas há apenas uma versão do código de produção.

Quando usar o Git ou o Composer

Código gerenciado principalmente pelo Git
Código gerenciado principalmente pelo Composer
Quando usar para uma configuração de instância única
  • Abordagem padrão para gerenciar código para uma configuração de instância única
  • Quando a base de código não for parte de um GRA de várias marcas no futuro
  • Quando todas as marcas são executadas em uma única instância como sites
  • Quando a base de código puder ou se tornará parte de uma configuração de várias instâncias no futuro
Quando usar para uma configuração de várias instâncias
  • Quando quase todos os módulos estão interligados (não recomendado)
  • Quando o código é mantido por uma equipe não familiarizada com o Composer
  • Abordagem padrão para gerenciar código para uma configuração de várias instâncias
  • Quando o Adobe mantém a base de código ou a equipe de manutenção está familiarizada com o Composer

Matriz de recursos

Recurso
Git
Compositor
Repositório de código principal
Todo o código reside em um único ou em alguns repositórios Git
Todo o código reside nos pacotes em um repositório do Composer
Cada pacote do Composer é representado por um repositório Git
Local do código
O desenvolvimento acontece no diretório app/
O desenvolvimento acontece no diretório vendor/
Gerenciamento de atualização principal
O núcleo do Adobe Commerce é instalado e atualizado usando o Composer. O resultado é confirmado no Git
O núcleo do Adobe Commerce é instalado e atualizado usando o Composer; o resultado é confirmado no Git
Gerenciamento de módulo de terceiros
Módulos de terceiros são instalados em vendor/ se eles forem instalados por meio do marketplace ou packagist.org. Caso contrário, eles serão instalados em app/
Todos os módulos de terceiros estão instalados no diretório vendor/
Versões
A liberação é caracterizada pelos comandos git merge e git pull ou git checkout
A liberação é caracterizada pelos comandos composer update e git pull ou git checkout
Número de repositórios Git
Poucos
Muitos
Complexidade de desenvolvimento
Simples
Complexo
Complexidade da solicitação de pull
Simples
Complexo
Complexidade da análise do código
Simples
Simples
Complexidade de atualização do ambiente Dev/QA/UAT
Simples
Complexo
Suporte a GRA
Ícone Sim
Ícone Sim
Os módulos podem instalar bibliotecas externas automaticamente
Nenhum ícone
Ícone Sim
Flexibilidade na composição do GRA
Nenhum ícone
Ícone Sim
Gerenciamento de dependência de módulo
Ícone Sim Somente até module.xml, funcionalidade limitada
Ícone Sim Gerenciamento de dependência total até composer.json
Versão do módulo
Ícone Sim Você pode definir uma versão, mas não pode instalar uma versão específica
Ícone Sim Suporte para versão completa
Serviços pagos necessários
Repositório Git
Repositório Git, Private Packagist (± €600 por ano)
Possível integração do Bitbucket com o Jira
Ícone Sim
Ícone Sim
Alterações no código disponíveis instantaneamente para instalação
Ícone Sim
Ícone Sim

Soluções a serem evitadas

  1. Combinando o Compositor e app/code para seus módulos

    Isso resulta na combinação de todas as desvantagens dos dois estilos de gerenciamento de código no seu projeto. Ele acrescenta complexidade desnecessária, instabilidade e falta de flexibilidade.

    Por exemplo:

    • Explique os fluxos de trabalho do Git e do Composer (em vez de apenas um deles) à equipe de desenvolvimento.
    • Instale módulos incompatíveis no app/code, pois não há nada em vigor que impeça isso de acontecer.
    • Mover um módulo do app/code para o Composer (ou vice-versa) é complicado, especialmente com desenvolvimento contínuo.
  2. Gerenciador de Pacotes do Satis

    O Private Packagist custa ± €600 por ano. Este custo é para todo o GRA combinado, não por marca. Não tente evitar esses custos usando a solução gratuita Satis. O Satis não atualiza automaticamente seus pacotes sempre que você envia confirmações para o Git. Além disso, o Satis não tem autorização incorporada. Você deve manter um servidor Web para executar o Satis. Você acaba gastando uma multidão da taxa de assinatura do Private Packagist mantendo o Satis.

  3. Comece com o Git e depois vá para o Composer

    Escolha uma abordagem de gerenciamento de código no início do projeto. Alternar do Git para o Composer ou vice-versa, com desenvolvimento contínuo, é complicado e pode levar à perda de código e/ou perda de histórico de revisão.

recommendation-more-help
754cbbf3-3a3c-4af3-b6ce-9d34390f3a60