L'expérimentation du Copilot de Git Hub : témoignages de José et Simon, développeurs

Sommaire

Vous l’aurez sûrement noté, l’intelligence artificielle s’est imposée dans beaucoup de domaines tels que la médecine, la finance ou l’éducation ; de nouvelles fonctionnalités de type “assistant” apparaissent dans les solutions logicielles offrant ainsi des avantages supplémentaires aux utilisateurs. Mais comment un développeur peut-il s’approprier l’intelligence artificielle dans son quotidien pour améliorer ses performances en développement ? Chez NAOMIS, deux développeurs, Simon Laurent et José Alvarado, ont testé la fonctionnalité Copilot de l’outil GitHub et nous racontent.

GitHub Copilot, qu’est-ce que c’est ?

José : En 2021, Git Hub et Open AI collaborent et créent GitHub Copilot, une extension d’IDE (Integrated Development Environment) qui utilise l’intelligence artificielle pour aider les développeurs à écrire du code plus rapidement et efficacement. L’avantage de Git Hub Copilot est qu’il est compatible avec différents langages de programmation, ce qui le rend très polyvalent !

Comment avez-vous initié votre expérimentation de l'outil GitHub Copilot ?

Simon : En juin 2023, on nous a donné la mission d’expérimenter GitHub Copilot pour notre équipe de développement. Le but était de savoir si l’intelligence artificielle avait sa place dans notre quotidien de développeur. Notre équipe travaille sur Visual Studio, un IDE qui permet d’écrire, compiler et exécuter le code. Pour expérimenter GitHub Copilot, nous avons installé l’extension dans Visual Studio Code.

José : Lorsqu’on nous a donné cette mission, je n’étais absolument pas convaincu de l’utilité de l’intelligence artificielle dans mon travail mais j’ai quand même accepté de me prêter au jeu !

Concrètement, à quoi vous sert Git Hub Copilot ?

José : Tout d’abord, GitHub Copilot peut nous suggérer des lignes de codes entières, des expressions ou des déclarations de fonctions. On peut soit les accepter ou les modifier selon nos besoins. Il peut également refactoriser et optimiser notre code, il va le rendre plus “propre” (moins de lignes). Git Hub Copilot peut également répondre à nos questions en analysant le code déjà présent dans notre environnement de travail.

Par exemple, en lui soumettant l’extrait de code suivant :

Le Copilot nous précise que l‘extrait de code fourni peut être simplifié en utilisant un objet de mappage au lieu de plusieurs conditions if-else, et nous propose cette amélioration :

Il la commente ainsi  : « Dans cette version, j’ai créé un objet de correspondance etatToIndex qui associe chaque ETAT_OPERATION à l’index correspondant dans le tableau de données. »

Cette optimisation proposée par l’outil nous permet d’incrémenter l’élément correct dans le tableau de données avec une seule ligne de code, éliminant ainsi le besoin de multiples conditions if-else.

Simon : Une autre fonctionnalité incontournable de GitHub Copilot est qu’il peut décrypter le code. Parfois, on se retrouve face à un code long, complexe et qui n’est pas commenté. Face à cela, GitHub Copilot a la faculté d’utiliser les fichiers présents, de les décrypter et les expliquer.

Par exemple, nous souhaitions avoir un éclairage sur ce code et voici quel a été son retour :

« La fonction est un gestionnaire d’événements qui est déclenché lorsque l’utilisateur effectue une recherche.Elle prend en entrée un événementde type AutoCompleteCompleteEvent qui contient la requête de recherche de l’utilisateur.

Au début de la fonction, un service de recherche est sélectionné en fonction de la valeur de this.label. Si this.label est égal à « siret », le service de recherche par SIRET est utilisé. Sinon, le service de recherche par nom est utilisé.

Ensuite, la fonction s’abonne au service de recherche sélectionné. Lorsque le service de recherche renvoie des résultats, la fonction de rappel passée à subscribe est exécutée. Cette fonction de rappel transforme chaque client renvoyé par le service de recherche.

Enfin, la liste des clients transformés est affectée à this.clients, qui est probablement utilisée ailleurs dans le composant pour afficher les résultats de la recherche. »

Après cette expérimentation, quels bénéfices tirez-vous de GitHub Copilot ?

José : Moi qui étais réticent à intégrer l’IA au développement, je reconnais maintenant l’utiliser de façon régulière !

Simon : En tant que développeur débutant, je demande régulièrement à GitHub de réécrire ou de simplifier mon code afin qu’il soit plus optimisé ou performant. C’est un outil qui me fait réellement gagner du temps.

Avez-vous noté des limites dans l’utilisation de GitHub Copilot ?

José : Oui bien sûr ! Bien que nous l’utilisions souvent, GitHub Copilot a ses limites et n’est pas fiable à 100%. Il arrive parfois que ses suggestions soient fausses ou que certaines fonctionnalités ne soient plus d’actualités. Nous vérifions toujours que les informations données sont correctes afin d’éviter que le code généré soit inutilisable ou les données périmées. Pour cela, il suffit de le tester dans l’application. Par exemple, je lui ai demandé de limiter le nombre d’éléments maximum à 5 à afficher dans un dropdown. Il me propose un attribut : data-max-items, qui en réalité n’existe pas. Je le requestionne à ce sujet et voici sa réponse quand je le lui fais remarquer : « Vous avez raison, l’attribut data-max-items n’est pas un attribut standard ou reconnu par le composant p-dropdown de PrimeNG. » Ensuite il me propose une solution qui fonctionne.

Simon : En tant qu’alternant dans le développement, je pense qu’une utilisation excessive de l’intelligence artificielle dans le codage ne permet pas d’acquérir les mécanismes et les logiques pour devenir un bon développeur. Il est important de combiner l’assistance de l’intelligence artificielle et l’apprentissage humain, il est essentiel de comprendre le code que l’on compose et de veiller à sa qualité avant de l’intégrer dans nos projets.

Pensez-vous que l’intelligence artificielle pourrait vous remplacer ?

Simon et José : “NON !”

José : Même si l’intelligence artificielle se développe énormément, l’intelligence humaine sera toujours nécessaire. La création d’un site internet ou d’une application doit répondre aux besoins spécifiques du client qui nécessitent une compréhension humaine approfondie. Le métier de développeur a encore de beaux jours devant lui, bien sûr !

Pour NAOMIS, l’expérimentation de GitHub est une réussite grâce au gain de temps et de qualité que l’outil apporte. On estime que le temps gagné sur certaines tâches assez répétitives et basiques est de 80% ! Ces progrès ont été très rapides puisqu’au bout d’une semaine d’utilisation, sans approfondir et utiliser toutes les possibilités, le développeur constatait déjà un gain de 20% de temps sur une journée de code pur. Une amélioration importante de la qualité a également été observée pour un même temps de développement.

Comme l’essayer c’est l’adopter, une licence est désormais disponible pour l’équipe de développement de Naomis qui en a fait un outil quotidien…


LES AUTEURS

José ALVARADO
José, développeur Full Stack chez NAOMIS, a pour mission la conception d'interfaces utilisateur intuitives. Il assure des connexions harmonieuses entre le front-end et le back-end, optimisant ainsi l'interaction avec les bases de données. José maintient le code existant et déploie de nouvelles fonctionnalités pour améliorer en permanence nos projets !
Simon LAURENT
Simon est alternant développeur Full Stack chez NAOMIS. Durant ses journées de travail ses missions sont plutôt diverses. Il conçoit et développe la partie Front et Back des outils, il travaille sur l'amélioration des fonctionnalités existantes et la création de nouvelles solutions. Il contribue également à l'intégration d'outils d'intelligence artificielle comme Git Hub Copilot et Chat GPT au sein de l'équipe Dev.

Ces articles peuvent également vous intéresser

Inspiré par l'entreprise libérée, comment transformer sa structure ?

Par Christophe DALICHAMPT

Numérique utile : pensez l'humain d'abord, encore et toujours !

Par Sophie BLANCHET

Et l’Homme créa les SIG !

Par Zazie CASIMIR-FAVROT
Retour en haut