Peppol est obligatoire pour les factures électroniques depuis cette année.

Peppol est obligatoire pour les factures électroniques depuis cette année.

Image
Choisissez votre pays

Blog d'ingénierie : Automatisez tout !

Personne
Image

Quel est le moyen le plus simple de rester informé des actualités techniques chez Payt ? Pour nous, les blogs techniques sont un excellent moyen de communiquer ces informations. Je m’appelle Ivan Malykh et je suis développeur chez Payt. Afin de vous donner un aperçu de notre logiciel, nous publions un article de blog technique chaque mois. Je vous propose donc une immersion chez Payt.

Lorsque j'ai commencé cet article, j'ai rédigé une introduction à Create React App, l'un des outils utilisés par notre équipe front-end. L'objectif était d'expliquer comment cet outil nous avait permis de gagner un temps précieux et d'économiser des efforts considérables lors du choix, de l'installation et de la configuration des différents packages tiers nécessaires. Si cet article vous intéresse, poursuivez votre lecture ici.

Au fil de mes recherches, j'ai réalisé que le premier article sur l'ingénierie logicielle chez Payt, au lieu d'entrer dans les détails, gagnerait à être un peu plus général. J'ai donc choisi de modifier légèrement l'objectif de cet article. Aujourd'hui, nous aborderons différentes mesures de notre flux de travail qui augmentent la productivité de l'équipe d'ingénierie et nous permettent de nous concentrer pleinement sur le développement de nouvelles fonctionnalités.

Mais d'abord, un petit aperçu de notre pile logicielle.

Payt propose le logiciel le plus complet en matière de gestion des comptes clients. Ce logiciel se compose de plusieurs applications web, notamment l' application de gestion des comptes clients et le portail des comptes clients . Ces deux applications sont alimentées par une seule et même application dorsale.

Au moment de la rédaction de ce document, l'application backend de Payt se compose, entre autres, des technologies suivantes :

Les applications frontales des applications Payt utilisent notamment ces technologies :

Le backend et les frontends communiquent entre eux via des API REST et GraphQL et sont hébergés sur l'infrastructure Amazon AWS.

Payt existe depuis un peu plus de huit ans. Durant cette période, le système a considérablement évolué et s'est enrichi de divers processus, fonctionnalités et de la logique métier associée. Maintenir un tel volume de logique représente un défi de taille, mais reste tout à fait réalisable.

Tester, tester et encore tester.

Cela peut paraître évident, mais de nombreuses entreprises n'utilisent aucune forme de test dans leurs logiciels.

Chez Payt, le développement de nouvelles fonctionnalités s'accompagne systématiquement de tests. Ces tests peuvent être exécutés de différentes manières. Chez Payt, nous avons choisi de faire écrire et exécuter nos tests par les développeurs. C'est ce qu'on appelle le développement piloté par les tests (TDD). Lors du développement d'une fonctionnalité, le développeur doit écrire les tests unitaires. Ces tests unitaires font partie intégrante du code. Si un autre développeur commence à travailler sur une nouvelle fonctionnalité et endommage accidentellement une fonctionnalité existante, la suite de tests l'avertit du problème.

Git, GitHub et les avis

Git est un outil de gestion de versions. Chez Payt, la fonctionnalité Git la plus utilisée est celle des « branches ». Une branche est une portion du code produit existant permettant de développer de nouvelles fonctionnalités indépendamment du code de production. Une fois la fonctionnalité terminée et les tests écrits, le développeur peut soumettre son travail pour relecture. GitHub, plateforme de collaboration pour le développement via Git, offre la possibilité de créer des demandes de fusion (Pull Requests). Une demande de fusion correspond à la différence entre la branche principale et la branche de la nouvelle fonctionnalité (« branche de fonctionnalité »). Pour qu'une demande de fusion soit intégrée à la branche principale, les vérifications automatisées doivent être réussies et le code approuvé par un ou deux collègues.

Contrôles automatisés

Comme indiqué précédemment, les tests font partie intégrante du code. Lors du développement d'une fonctionnalité, un développeur peut exécuter des tests pour s'assurer du bon fonctionnement du code. À l'heure actuelle, notre suite de tests comprend 11 051 tests. Certains d'entre eux vérifient l'intégration entre les différents composants et sont donc longs à exécuter. Ce serait une perte de temps considérable que de devoir exécuter l'ensemble des 11 051 tests avant de développer une fonctionnalité.

Par conséquent, nous disposons d'un système externe qui garantit que chaque commit Git sur la branche racine est entièrement testé. Ce système (intégration continue, ou CI) assure également que les branches de fonctionnalités sont testées avant d'être examinées par d'autres développeurs.

Outre les tests unitaires, d'acceptation et d'intégration, de nombreux autres contrôles garantissent la qualité du code. En voici quelques exemples :

  • Vérifiez le pourcentage du code qui a été traité par des tests

Nous visons les 100 % et, au moment où nous écrivons ces lignes, nous nous situons en moyenne légèrement au-dessus de 90 %.

  • Vérifiez le style du code

La vérification du style de code garantit la cohérence de l'écriture du code. Un style de code clair et uniforme facilite l'intégration des nouveaux membres de l'équipe et permet aux membres actuels de l'équipe d'explorer plus rapidement les parties inconnues de l'application.

  • vérification de compatibilité API

Chez Payt, le backend et le frontend sont des bases de code indépendantes, chacune avec son propre dépôt Git. L'interface utilisateur dépend des données fournies par le backend via l'API. Le frontend requiert également une structure de données spécifique. Cette vérification permet de s'assurer que le développeur est familiarisé avec les modifications importantes apportées à l'API.

Si l'un des contrôles ne satisfait pas aux exigences de qualité, le développeur concerné doit corriger les erreurs ou imperfections. Son travail ne pourra être déployé sur la branche principale qu'après correction.

Déploiements

Les développeurs ne seraient pas développeurs s'ils n'automatisaient pas l'ensemble de leur travail. De même, le déploiement des fonctionnalités développées chez Payt est automatisé. Chaque nouvelle fonctionnalité, testée et approuvée, est déployée sur nos serveurs de manière entièrement automatique.

Faire

Malgré le nombre de flux de travail automatisés, l'équipe d'ingénierie de Payt doit encore relever de nombreux défis. Par exemple, nous devons consacrer moins de temps à la configuration, à l'administration et aux tâches répétitives et automatisables, afin de pouvoir en consacrer davantage au développement de nouvelles fonctionnalités et à l'amélioration des fonctionnalités existantes de nos applications.

Par exemple, nous travaillons actuellement à l'automatisation de la configuration des serveurs hébergeant nos applications. L'objectif est de définir notre infrastructure directement dans le code. Nous disposerons ainsi d'un modèle unique du logiciel nécessaire à l'exécution de nos applications, ce qui accélérera le déploiement de nouvelles instances de serveur et garantira la cohérence entre les différentes machines.

Image

Par Ivan Malykh

Ivan est développeur chez Payt. Il se concentre principalement sur le frontend, mais le backend retient également son attention.

Partagez cet article

Image Lightbox
Supprimer le cookie