Tirer le meilleur parti de GitHub Copilot

Lorsque GitHub Copilot est sorti, je l'ai immédiatement essayé. Les affirmations semblaient trop belles pour être vraies.
Ce que j'ai trouvé était le contraire - c'était mieux que ce qui était annoncé. J'étais tellement époustouflé par ça que je… n'ai même pas tweeté à ce sujet. Je pensais que c'était un trop gros avantage pour le donner gratuitement !
J'ai trouvé Copilot si percutant que, lors de notre retraite d'équipe en 2021, j'ai consacré une section complète de ma présentation CTO à Copilot. L'utilisation de Copilot est devenue à peu près aussi «requise» que n'importe quel outil chez Infinite Red. C'était un grand changeur de jeu.
Ce que Copilot fait pour mon workflow de codage
Je suis un codeur assez rapide dans des circonstances normales ; Le copilote double ma vitesse.
J'ai un léger TDAH et l'une de mes plus grandes difficultés est de rester concentré. Une fois que j'ai cliqué sur "état de flux", je suis imparable. Je ne pense pas être le seul à lutter contre cela, mais même si ce n'est pas le cas, vous pourriez encore avoir des moments où vous "perdez le fil" et avez besoin d'être encouragé.
J'ai découvert que mon flux de codage idéal implique toujours l'appariement. Une bonne paire me permet de rester concentré, anticipe ce qui était nécessaire ensuite, offre des suggestions et est patient avec moi. Copilot remplit ce rôle maintenant, automatiquement. Je vais écrire du code, atteindre un certain point où mon cerveau essaie de passer à un autre sujet, mais cette légère pause est suffisante pour que Copilot apparaisse avec une suggestion, ce qui déclenche à nouveau ma concentration.
Limites du copilote
Une erreur courante consiste à obtenir de mauvais résultats de Copilot et à blâmer l'outil. Copilot n'écrit pas votre code exactement comme vous en avez besoin dans la plupart des cas. Il fait de son mieux en fonction du contexte, des indices et de la quantité de données d'entraînement auxquelles il a accès. Et comme tout outil, vous devez apprendre à l'utiliser pour en tirer le meilleur parti.
Parlons des moyens de tirer le meilleur parti de Copilot.
Rédiger des commentaires de premier plan pour le contexte
Le contexte est important, à la fois pour un programmeur en binôme et pour un assistant de codage IA. Commencez par rédiger un commentaire clair qui donne, dans un langage simple, une bonne idée de ce à quoi sert une fonction, des arguments qu'elle doit prendre, de ce qu'elle doit renvoyer. Si votre commentaire est vague, attendez-vous à des résultats vagues :

Un meilleur commentaire donnera à Copilot de meilleures informations :

N'hésitez pas à revenir en arrière et à modifier votre commentaire jusqu'à ce que vous obteniez les résultats souhaités. Vous pouvez bien sûr éditer le code à la main, mais si vous réussissez à écrire des commentaires descriptifs, cela fera également un meilleur travail avec le futur code.

Dans ce cas, l'ajout de "Fonction typée" a introduit des types dans les arguments de la fonction.
Ces commentaires ne sont pas nécessairement destinés aux lecteurs humains du code, bien qu'ils soient lisibles tels quels. Je reviens toujours et je les affine pour les lecteurs humains une fois que j'ai terminé.
Apprendre les raccourcis clavier
Si vous utilisez VS Code, vous pouvez trouver une liste de raccourcis ici .
- Accepter une suggestion intégrée :
Tab
- Ignorer une suggestion intégrée :
Esc
- Afficher la suggestion intégrée suivante :
Option (⌥)+]
- Afficher la suggestion intégrée précédente :
Option (⌥)+[
- Déclencher la suggestion intégrée :
Option (⌥)+\
- Ouvrez le copilote GitHub :
Ctrl+Return
Ceux que j'utilise le plus, à part Tab
/ Esc
, sont Option+[
et ]
. Cela me permet de faire défiler les suggestions jusqu'à ce que j'aie la plus utile.
Donner à Copilot une structure de travail avec
Parfois, Copilot insère des éléments que vous souhaitez vraiment extraire dans une fonction d'assistance. Supprimez entièrement la fonction générée, construisez d'abord la fonction d'assistance, et Copilot la reprendra généralement et l'utilisera à l'avenir.

Cela vaut pour d'autres choses, telles que les valeurs constantes codées en dur. Ajoutez des variables bien nommées juste au-dessus du code généré et Copilot les intégrera.

Copilot peut vous aider avec les commandes CLI
Si vous êtes comme moi et que vous ne vous souvenez pas de nombreuses commandes git, Copilot peut également vous aider.
Dans un onglet vide, écrivez quelque chose comme ceci :

Ce n'est pas parfait, mais cela vous donnera suffisamment d'indices pour vous rapprocher !
Copilot est excellent pour les tâches répétitives, comme écrire des tests
L'un de mes moments les plus époustouflants en streaming a été lorsque Copilot a écrit des tests précis pour une fonctionnalité assez complexe que je construisais. Jetez un œil (horodatage 2:23:00):

Copilot peut aussi écrire des commentaires pour vous !
Bien que la rédaction de commentaires puisse aider Copilot avec le code, écrire du code peut également aider Copilot avec des commentaires !
Si vous avez du code existant et que vous avez besoin de le documenter, Copilot aura souvent une idée de ce que c'est.

Copilot peut vous expliquer le code (via Copilot Labs)
Si vous installez l'extension Copilot Labs, vous pouvez l'ouvrir dans le panneau latéral, mettre en surbrillance un bloc de texte et Copilot fera de son mieux pour vous l'expliquer en langage clair.

Je n'ai pas trouvé cela aussi utile car je peux lire le code couramment, mais cela pourrait être utile si certains codes sont particulièrement cryptés.
Copilot peut vous aider à apprendre un nouveau langage de codage
Quand je construisais react-native-colo-loco , j'ai dû écrire un script Gradle, qui est écrit en Groovy. Je connais un peu Groovy, mais pas beaucoup. Je me suis donc concentré sur la rédaction de commentaires précis et précis, et j'ai laissé Copilot suggérer des lignes de code. Je pouvais ensuite m'appuyer sur mon expérience de développement pour reprendre les modèles et la syntaxe, et partir de là.
Vous pouvez voir les résultats ici (j'ai laissé presque tous les commentaires de copilote pour montrer ce qu'ils étaient).
Si le code de Copilot est loin, continuez à construire
Le copilote aime le contexte. Plus vous construisez, plus il a de contexte et plus il devient utile. Lorsque j'ai décidé de reconstruire une partie de MobX-State-Tree , Copilot a été incroyablement utile, car il pouvait examiner le reste de la base de code. (Le refactor n'a jamais été livré, mais c'était un excellent exercice d'apprentissage.)
C'est encore tôt, mais je suis plutôt optimiste sur GitHub Copilot. Si vous avez d'autres astuces, faites-le moi savoir sur Twitter !
Remerciements :
- Merci à Rizèl Scarlett pour sa présentation sur Copilot ici (à regarder aussi !) :https://www.youtube.com/watch?v=CuQSoHbOpTQ
- Merci à Marie Prokopets pour son excellent article sur Copilot (à lire aussi !) :https://nira.com/github-copilot/
- Merci à Jenna Fucci pour le superbe graphique en haut de cet article !