Gestion du code source
La gestion du code source (SCM) permet de suivre les modifications apportées à un dépôt de code source. La SCM suit un historique des changements apportés à une base de code et aide à résoudre les conflits lors du merge de mises à jour provenant de plusieurs contributeurs. Elle est également synonyme de contrôle de version.
Les projets logiciels impliquent de plus en plus de lignes de code et de collaborateurs, ce qui entraîne une augmentation des coûts de communication et une gestion plus complexe. La SCM est un outil essentiel pour alléger la pression organisationnelle liée à l'augmentation des coûts de développement.
L'importance des outils de gestion du code source
Lorsque plusieurs développeurs travaillent au sein d'une base de code partagée, il est fréquent d'apporter des modifications à un code partagé. Des développeurs différents peuvent travailler sur une fonctionnalité apparemment isolée, mais cette fonctionnalité peut utiliser un module de code partagé. Par conséquent, le développeur 1 travaillant sur la fonctionnalité 1 pourrait apporter quelques modifications et découvrir plus tard que le développeur 2 travaillant sur la fonctionnalité 2 a effectué des modifications contradictoires.
Avant l'adoption de la SCM, ce scénario était un cauchemar. Les développeurs modifiaient directement les fichiers texte et les déplaçaient vers des sites distants en utilisant FTP ou d'autres protocoles. Le développeur 1 pouvait apporter des modifications et le développeur 2 pouvait, sans le savoir, enregistrer par-dessus le travail du développeur 1 et effacer ses changements. Le rôle de la SCM en tant que mécanisme de protection contre ce scénario spécifique est connu sous le nom de contrôle de version.
La SCM a apporté des mesures de contrôle de version pour éviter les pertes de travail dues à l'écrasement de conflits. Ces protections fonctionnent en suivant les changements apportés par chaque développeur, en identifiant les zones de conflit et en empêchant les écrasements. La SCM communiquera ensuite ces points de conflit aux développeurs afin qu'ils puissent les examiner et les résoudre en toute sécurité.
Ce mécanisme fondamental de prévention des conflits a pour effet secondaire de fournir une communication passive à l'équipe de développement, qui peut ensuite contrôler et discuter des travaux en cours surveillés par la SCM. Cette dernière suit l'historique complet des changements apportés à la base de code, ce qui permet aux développeurs d'examiner et de revoir les modifications qui peuvent avoir introduit des bugs ou des régressions.
Ressource connexe
Fiche de révision sur Git
DÉCOUVRIR LA SOLUTION
Découvrir Git avec Bitbucket Cloud
Les avantages de la gestion du code source
Outre le contrôle de version, la SCM fournit une suite d'autres fonctionnalités utiles pour rendre le développement de code collaboratif plus convivial. Dès que la SCM commence à suivre tous les changements apportés à un projet au fil du temps, un historique détaillé de la vie du projet est créé. Cet enregistrement historique peut ensuite être utilisé pour « annuler » les changements apportés à la base de code. La SCM peut rétablir instantanément la base de code à un point antérieur dans le temps. Cela est extrêmement utile pour éviter les régressions sur les mises à jour et pour annuler les erreurs.
L'archive SCM de chaque changement au cours de la durée de vie d'un projet permet de conserver des informations précieuses pour les notes de version d'un projet. Un journal d'historique de la SCM propre et mis à jour peut être utilisé de manière interchangeable en tant que notes de version. Cela permet de partager un aperçu avec les utilisateurs finaux ou les équipes non chargées du développement, et d'être transparent sur l'avancement d'un projet.
La SCM permet de réduire les besoins de communication d'une équipe et d'accélérer la livraison. Sans elle, le développement est plus lent, car les contributeurs doivent faire un effort supplémentaire pour planifier une séquence de développement sans chevauchement pour la livraison. Avec la SCM, les développeurs peuvent travailler indépendamment sur des branches distinctes du développement de fonctionnalités, puis les merger.
Globalement, la SCM apporte une aide considérable pour les équipes d'ingénierie, puisqu'elle réduit les coûts de développement en permettant une exécution plus efficace des ressources d'ingénierie. La SCM est devenue incontournable à l'ère moderne du développement logiciel. Les équipes professionnelles utilisent le contrôle de version, et votre équipe devrait faire de même.
Bonnes pratiques en matière de gestion du code source
Faites des commits régulièrement
Les commits ne coûtent pas grand-chose et sont faciles à faire. Ils doivent être régulièrement effectués pour capturer les mises à jour d'une base de code. Chaque commit est un instantané auquel la base de code peut être ramenée si nécessaire. Des commits fréquents offrent de nombreuses opportunités de revenir en arrière ou d'annuler le travail. Un groupe de commits peut être combiné en un seul commit en utilisant un rebase pour clarifier le journal de développement.
Assurez-vous de travailler à partir de la dernière version
La SCM permet des mises à jour rapides par plusieurs développeurs. Il est facile d'avoir une copie locale de la base de code derrière la copie globale. Assurez-vous de faire un git pull ou de fetcher le code le plus récent avant de procéder à des mises à jour. Cela permettra d'éviter les conflits au moment du merge.
Prenez des notes détaillées
À chaque commit correspond une entrée de journal. Lorsque le commit est créé, cette entrée de journal est complétée par un message. Il est important de laisser des messages explicatifs dans le journal de commit. Ces messages de journal de commit doivent expliquer le « pourquoi » et le « quoi » du commit. Ces messages de journal deviennent l'histoire canonique du développement du projet et laissent une trace que les futurs contributeurs pourront passer en revue.
Vérifiez les changements avant de les commiter
Les SCM offrent une « zone de staging ». Cette zone peut être utilisée pour rassembler un groupe de changements avant de les écrire dans un commit. La zone de staging peut être utilisée pour gérer et revoir les changements avant de créer l'instantané du commit. Cette utilisation de la zone de staging fournit une zone tampon qui permet d'affiner le contenu du commit.
Utilisez des branches
La création de branches est un mécanisme puissant de la SCM qui permet aux développeurs de créer une ligne de développement distincte. Les branches doivent être fréquemment utilisées, car elles sont rapides et peu coûteuses. Les branches permettent à plusieurs développeurs de travailler en parallèle sur des lignes de développement distinctes. Ces lignes de développement sont généralement des caractéristiques de produit différentes. Lorsque le développement est terminé sur une branche, elle est ensuite mergée dans la ligne de développement principale.
Mettez-vous d'accord sur un workflow
Par défaut, les SCM proposent des méthodes de contribution très libres. Il est important que les équipes établissent des modèles communs de collaboration. Les workflows de SCM établissent des modèles et des processus pour le merge des branches. Si une équipe n'est pas d'accord avec un workflow partagé, la communication risque de ne pas être aussi efficace lorsqu'il s'agira de merger les branches.
Résumé
La SCM est un outil précieux pour le développement moderne des logiciels. Les meilleures équipes de développement utilisent la SCM, et votre équipe devrait faire de même. La SCM est très facile à mettre en place sur un nouveau projet, et le retour sur investissement est élevé. Atlassian propose certains des meilleurs outils d'intégration SCM au monde qui vous aideront à vous lancer.
Partager cet article
Thème suivant
Lectures recommandées
Ajoutez ces ressources à vos favoris pour en savoir plus sur les types d'équipes DevOps, ou pour les mises à jour continues de DevOps chez Atlassian.