L’intégration continue, la garantie d’un code de qualité ?
Le développement d’applications web, lorsqu’il est réalisé en équipe, nécessite une attention toute particulière dans son organisation : respect des bonnes pratiques établies par l’équipe ou encore des conventions de nommage. Le développement à plusieurs mains, va nécessiter que l’ensemble des éléments apportées par chaque développeur puisse fonctionner ensemble, c’est l’un des principaux enjeux de l’intégration continue.
L’intégration continue, qu’est-ce que c’est ?
C’est un ensemble de pratiques et d’outils qui permettent le développement d’applications web en intégrant de manière continue les modifications de code d’un ou plusieurs développeurs.
L’intégration continue est constituée d’une phase de test automatique ou non (en fonction de la taille du projet), permettant de valider la mise en production d’une évolution. Si un problème est détecté, alors la mise en production est stoppée.
Dans notre usage quotidien, lors de développement de thème WordPress sur-mesure par exemple, les modifications sont publiées sur le dépôt, sans phase de test automatisée. On passe alors par une vérification manuelle sur l’environnement de pré-production, avant de fusionner les modifications avec le code utilisé en production, une fois que le résultat est conforme à nos attentes.
Gestion et contrôle des versions
La création d’une application web nécessite de pouvoir garder une trace des modifications effectuées lors de son développement.
Sur des petits projets, on peut par exemple faire des sauvegardes régulières manuellement. Mais plus le projet grandit (et son équipe avec) plus cela devient complexe à réaliser.
C’est pour répondre à ces problèmes que le contrôle de version de fichiers a été pensé. Cet outil va permettre de gérer les fichiers de votre projet web, tout en gardant une trace de l’historique des modifications effectuées par votre équipe.
Comment ça marche :
Le système de contrôle de version de fichiers le plus utilisé est Git. Il est mis à disposition des développeurs grâce aux plateformes en lignes comme GitHub et GitLab notamment. C’est cette dernière que nous utilisons chez Cobalt.
Concrètement, chaque membre de l’équipe va envoyer ses fichiers sur un “dépôt”, correspondant à un serveur distant. Une fois les fichiers reçus sur ce dépôt, des actions automatiques pourront être déclenchées comme la vérification du code, des tests ou l’envoi des fichiers sur un hébergement.
Le principal avantage est de pouvoir modifier le même fichier par deux personnes différentes. Une fois les développements réalisés, l’ensemble des fichiers est regroupé et s’ils peuvent vivre ensemble sans interférer les uns avec les autres, le code est jugé acceptable. L’ensemble des éléments pourront fusionner automatiquement.
Dans le cas contraire, le système mettra en avant les conflits et l’équipe de développement devra arbitrer pour choisir quel code conserver et ainsi poursuivre la mise en production.
Il est important de disposer d’un environnement de pré-production pour pouvoir tester en condition réelle les développements réalisés avant la mise en production finale (article en lien à retrouver sur le blog).
Pourquoi l’intégration continue est-elle si importante pour votre projet web ?
Des projets plus rapide à développer
L’intégration continue permet d’éliminer les intermédiaires et les temps morts entre chaque phase de développement du projet. C’est une sorte de chef d’orchestre qui permet d’automatiser les actions pour que les développeurs se concentrent sur leur métier, par exemple en automatisant les phases de déploiement, les validations peuvent se faire plus rapidement.
Avec l’intégration continue, on pourra également automatiser la détection des erreurs et conflits au sein d’un dépôt de code. Les corrections sont donc plus rapides pour les équipes, ce qui entraine une validation plus rapide des tâches. Le projet web gagne en agilité et productivité, ce gain de temps s’accompagne aussi d’un gain économique potentiel.
Un code de qualité
Si vous intégrez une partie automatisation des tests au sein de votre projet, à chaque nouvelle version, votre code sera testé. Avec un code qui est plus souvent mis à l’épreuve des tests, celui-ci devient de plus en plus robuste et nécessitera au fur et à mesure des mises en production de moins en moins de corrections. Les développeurs moins expérimentés gagneront en autonomie également, car les corrections se feront plus rapidement en anticipant les cas d’échecs aux tests avant de publier le code. La qualité de l’application web s’en retrouve améliorée au fil du temps.
Meilleure communication et organisation
Faire de l’intégration continue, c’est utiliser un système de suivi de version. Comme mentionné précédemment, on évite ainsi de perdre du temps et de créer une confusion entre les membres de l’équipe. Enfin, en partageant et confrontant leurs codes constamment, les développeurs sont en contact permanent les uns avec les autres et cela contribue à améliorer la communication au sein de l’équipe technique.
Quels outils utiliser pour démarrer ?
Plusieurs outils (dont certains sont gratuits) permettent d’appliquer ce principe d’intégration continue :
- GitHub Actions
- GitLab CI
- Jenkins
- Travis CI
Chez Cobalt, l’intégralité des développements sur mesure que nous effectuons sont versionnés en utilisant Git. Que ce soit pour un thème sur mesure WordPress, un plugin personnalisé, une application web spécifique, tous se retrouvent sur notre GitLab.
L’avantage d’une telle plateforme est qu’elle permet de mettre en place des outils d’intégration continue en plus du suivi de version.
Ces outils sont intégrés au service, et donc leur mise en place est facilitée. Une fois une partie du code déployée, un script permet de lancer automatiquement la compilation du code, son nettoyage, des tests s’ils existent et enfin de publier les changements sur le serveur.
De manière générale, l’intégration continue permet d’avoir une méthode de travail optimisée et d’obtenir un code plus robuste afin d’atténuer les risques lors des mises en production de vos applications web.
Si vous souhaitez en savoir plus ou être accompagné pour la mise en place de cette méthode, n’hésitez pas à nous contacter sur contact@cobalt-studio.fr