[PaaS uniquement]{class="badge informative" title="S’applique uniquement aux projets Adobe Commerce on Cloud (infrastructure PaaS gérée par Adobe) et aux projets On-premise."}

Bonnes pratiques de gestion du code pour Adobe Commerce

Cette rubrique est conçue pour vous aider à décider d’utiliser Git ou le compositeur pour distribuer du code personnalisé, en prenant en compte la gestion des versions, la complexité du code et la gestion des dépendances.

NOTE
Ces bonnes pratiques sont mieux adaptées aux migrations et aux mises en œuvre, et moins au développement de modules uniques.

Produits et versions concernés

Toutes les versions prises en charge de :

  • Adobe Commerce sur les infrastructures cloud
  • Adobe Commerce On-Premise

Définitions

  • architecture de référence globale (GRA) également appelée architecture en marque blanche ou base de code commune. Il s’agit de l’architecture de distribution de module pour une configuration multi-instance.
  • Configuration multi-instance : le même client utilise des installations Adobe Commerce distinctes pour des régions ou des marques distinctes. Chaque installation comporte des modules partagés ainsi que des modules uniques.
  • Configuration d’instance unique : il n’existe qu’une seule installation Adobe Commerce. Plusieurs copies du code source peuvent exister pour différents environnements de test, mais il n’existe qu’une seule version du code de production.

Quand utiliser Git ou le compositeur

Code géré principalement par le biais de Git.
Code géré principalement par l’intermédiaire du compositeur
Quand utiliser pour une configuration à instance unique
  • Approche standard de la gestion du code pour une configuration à instance unique
  • Lorsque la base de code ne fera plus partie d’un GRA multi-marque à l’avenir
  • Lorsque toutes les marques s’exécutent sur une seule instance en tant que sites web
  • Le moment où la base de code peut ou va faire partie d’une configuration multi-instance à l’avenir
Quand utiliser pour une configuration multi-instance
  • Lorsque presque tous les modules sont interconnectés (non recommandé)
  • Lorsque le code est conservé par une équipe qui ne connaît pas le compositeur
  • Approche standard de la gestion du code pour une configuration multi-instance
  • Lorsque Adobe conserve la base de code ou que l’équipe de maintenance connaît le compositeur

Matrice des fonctionnalités

Fonctionnalité
Git
Compositeur
Référentiel de code principal
Tout le code réside dans un ou plusieurs référentiels Git uniques
Tout le code réside dans les packages d’un référentiel Composer
chaque package Composer est représenté par un référentiel Git
Emplacement du code
Le développement se fait dans le répertoire app/
Le développement se fait dans le répertoire vendor/
Gestion de la mise à niveau principale
Adobe Commerce Core est installé et mis à niveau à l’aide du compositeur, le résultat est validé dans Git.
Adobe Commerce Core est installé et mis à niveau à l’aide du compositeur ; le résultat est validé dans Git.
Gestion de modules tiers
Les modules tiers sont installés dans vendor/ s’ils le sont via Marketplace ou packagist.org. Sinon, ils sont installés dans app/
Tous les modules tiers sont installés dans le répertoire vendor/
Versions
La libération se caractérise par des commandes git merge et git pull ou git checkout
La libération se caractérise par des commandes composer update et git pull ou git checkout
Nombre de référentiels Git
Peu
Plusieurs
Complexité du développement
Simple
Complexe
Complexité de la demande d’extraction
Simple
Complexe
Complexité de la révision du code
Simple
Simple
Complexité de mise à jour de l’environnement Dev/QA/UAT
Simple
Complexe
Prise en charge de la loi GRA
icône Oui
icône Oui
Les modules peuvent installer automatiquement des bibliothèques externes
Aucune icône
icône Oui
Flexibilité dans la composition des GRA
Aucune icône
icône Oui
Gestion des dépendances des modules
Icône Oui Uniquement par le biais de module.xml fonctionnalités limitées
Icône Oui Gestion complète des dépendances via composer.json
Contrôle de version des modules
Icône Oui Vous pouvez définir une version, mais vous ne pouvez pas installer une version spécifique
Icône Oui Prise en charge complète des versions
Services payants nécessaires
référentiel Git.
Référentiel Git, Packagiste privé (± 600 € par an)
Intégration de Bitbucket à Jira possible
icône Oui
icône Oui
Les modifications apportées au code sont immédiatement disponibles pour installation
icône Oui
icône Oui

Solutions à éviter

  1. Combinaison du compositeur et du app/code pour vos modules

    Combinez dans votre projet tous les inconvénients des deux styles de gestion de code. Cela ajoute une complexité, une instabilité et un manque de flexibilité inutiles.

    Par exemple :

    • Expliquez les workflows Git et Compositeur (au lieu de l’un d’eux uniquement) à l’équipe de développement.
    • Installez les modules incompatibles dans app/code, car rien n’est en place pour empêcher cela.
    • Le déplacement d’un module de app/code vers le compositeur (ou inversement) est fastidieux, en particulier avec le développement en cours.
  2. Gestionnaire de packages Satis

    Le forfait privé coûte ± 600 € par an. Ce coût est pour l'ensemble de la GRA, et non par marque. N'essayez pas d'éviter ces coûts en utilisant la solution gratuite Satis. Satis ne met pas automatiquement à jour vos packages chaque fois que vous envoyez des validations à Git. Satis n'a pas non plus d'autorisation intégrée. Vous devez disposer d'un serveur Web pour exécuter Satis. Vous finissez par dépenser une multitude de frais d'abonnement de Packagiste Privé pour le maintien de Satis.

  3. Commencez par Git, puis passez au compositeur

    Choisissez une approche de gestion du code au début de votre projet. Le passage de Git au compositeur ou inversement, avec un développement en cours, est fastidieux et peut entraîner une perte de code et/ou une perte d’historique de révision.

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