Overblog
Editer l'article Suivre ce blog Administration + Créer mon blog
7 à voir

A la découverte des technologies

GitHub Copilot : l'outil indispensable du développeur

J'utilise GitHub Copilot depuis plusieurs mois. Comment ça marche ? Pour quoi l'utiliser ? Est-ce sécurisé ? Voici mon retour d'expérience à travers quelques cas d'usages réels. 

Qu'est-ce que c'est ?

GitHub Copilot est une IA générative spécialisée dans le code. Elle permet d'assister les développeurs dans leurs tâches. Autrement dit, au lieu de générer du texte comme ChatGPT ou des images comme Midjourney, Copilot génère principalement du code. 

Concrètement, Copilot s'appuie sur le LLM Codex d'Open AI. Il a été entraîné sur des grandes quantités de code public - GitHub étant par ailleurs la plateforme de référence sur l'Open Source. Il s'intègre dans votre environnement de développement - par exemple Visual Studio Code - ce qui permet de l'utiliser en s'appuyant sur votre contexte actuel : votre projet, votre langage de programmation, votre style.

Schéma de fonctionnement de GitHub Copilot

Schéma de fonctionnement de GitHub Copilot

Cas d'usages

L'avantage de son intégration dans l'environnement de développement est qu'on l'utilise sans avoir besoin de le solliciter (en mode "Intellisense"). Au fur et à mesure que l'on tape du code il fait des suggestions dynamiques que l'on accepte simplement en appuyant sur TAB ou qu'on peut ignorer complétement en continuant à taper. 

Les cas d'usages sont très divers car il essaye en permanence de "deviner" ce que vous voulez faire. Voici quelques exemples de mon utilisation. 

Générer du code répétitif

En développement on a souvent tendance à répéter des traitements ou des bouts de code. GitHub Copilot est d'une grande aide lorsqu'on veut refaire plusieurs fois la même chose. Dans l'exemple suivant, il s'agit de rajouter un paramètre à un script Shell existant.

GitHub Copilot : l'outil indispensable du développeur

Juste en se positionnant sur le ligne à ajouter et en tapant le premier caractère, il suggère  - en se basant sur d'autres fichiers du projet et sur son entraînement - un argument à ajouter ("-f") et le code pour le faire. En se positionnant sur les lignes suivantes il comprend que vous voulez rajouter le test pour s'assurer que le nouvel argument est présent et génère de lui-même le code nécessaire en s'inspirant de ce qui existe déjà. 

Compléter votre code

Les suggestions de GitHub Copilot sont aussi intéressantes dans l'écriture de nouveau code. Il parait comprendre ce que vous faites et propose au fur et à mesure la suite. Dans l'exemple suivant, il s'agit de construire une variable "query" contenant une requête SQL dynamique. Il comprend que pour cette requête il y a un filtre (FILTER) à utiliser et un identifiant (id) à tester.

GitHub Copilot : l'outil indispensable du développeur

Il génère de lui-même le texte à rajouter à la requête et s'assure que si les 2 tests sont présents il faut ajouter un "AND" entre les deux. Il est bluffant de constater que pour écrire ces 10 lignes de code j'ai juste à appuyer plusieurs fois sur TAB ! 

Générer du code à partir d'un commentaire

GitHub Copilot s'appuie aussi sur vos commentaires pour générer du code correspondant. Ainsi si vous avez l'habitude de commenter votre code, il suffit parfois d'écrire le commentaire pour que Copilot vous suggère le code à écrire. Dans l'exemple suivant, j'ai besoin de filtrer puis de trier un tableau. J'ai juste à écrire le commentaire et me laisser guider.

GitHub Copilot : l'outil indispensable du développeur

Il comprend quelles variables et propriétés je veux utiliser en s'appuyant sur le code précédent et suggère les méthodes adaptées à mon langage de programmation actuel (JavaScript ici). Il respecte également mes règles de nommage.

Générer de la documentation à partir du code

Inversement, GitHub Copilot peut générer de la documentation à partir du code. Dans l'exemple ci-dessous, je veux résumer en une ligne l'objectif du code contenu dans le fichier courant. Je me place au début du fichier et je laisse faire Copilot. Il comprend quelles méthodes contient le fichier et génère une description pertinente.

GitHub Copilot : l'outil indispensable du développeur

Générer du code de debug

Anecdotique mais pratique, GitHub Copilot vous aide à rajouter du code de debug. Dans l'exemple suivant, je me place à l'endroit où je veux ajouter mon code de debug, je commence à taper "console" (la fonction d'affichage en JavaScript) et il comprend que je veux afficher l'objet courant et génère le code associé.

GitHub Copilot : l'outil indispensable du développeur

Trouver l'inspiration

Dans les exemples précédents, je sais ce que je recherche, GitHub Copilot me sert à générer plus rapidement du code que je pourrais écrire. Il est aussi possible de lui demander des choses que vous ne savez pas faire. Dans l'exemple ci-dessous, je veux générer un fichier Excel en node.js et je ne sais pas le faire. J'écris ma demande dans un commentaire et je me laisse guider TAB après TAB.

GitHub Copilot : l'outil indispensable du développeur

Il suggère une librairie JavaScript (xlsx) et génère un exemple d'utilisation qu'il est facile d'adapter. 

Et la sécurité ?

Pour fonctionner et vous faire des suggestions pertinentes, GitHub Copilot utilise votre code. Est-il raisonnable d'exposer son code source, qui est peut-être sensible, de cette manière ? 

Oui, car les clauses de confidentialité de GitHub Copilot (voir ici) sont précises là-dessus: votre code n'est pas partagé avec d'autres.  

Et pour plus de sécurité, vous pouvez également décocher la case dans les options pour indiquer que votre code ne doit pas être utilisé non plus pour améliorer l'outil.

Paramétrage de GitHub Copilot

Paramétrage de GitHub Copilot

Autre question: GitHub Copilot peut-il produire du code non sécurisé ?

Oui bien sûr ! Il peut même produire du code faux !  GitHub Copilot n'est qu'une aide à la saisie, c'est à vous de vous assurer du fonctionnement de ce qui est généré.  

Conclusion

J'étais sceptique au démarrage mais à l'usage GitHub Copilot est très utile. Il fait incontestablement gagner du temps et augmente la productivité: au moins de 10 à 20% selon moi. 

Il n'est pas intrusif, son utilisation est donc très fluide. Au même titre qu'un IDE remplace avantageusement une ligne de commande, GitHub Copilot me parait donc un élément indispensable de la boite à outils du développeur. A 20€ par mois, il ne faut pas s'en passer ! 

Aujourd'hui lorsqu'il n'est pas là à regarder au dessus de mon épaule - quand je suis hors ligne par exemple - Copilot me manque…

Article précédent
Retour à l'accueil
Partager cet article
Repost0
Pour être informé des derniers articles, inscrivez vous :
Commenter cet article
A
Merci pour votre retour sur cet outil. Il semble intéressant à en lire votre partage et fait gagner du temps.
Répondre