Aprovechar al máximo GitHub Copilot

Cuando se lanzó GitHub Copilot , lo probé de inmediato. Las afirmaciones parecían demasiado buenas para ser verdad.
Lo que encontré fue lo contrario: era mejor que lo anunciado. Me impresionó tanto que… ni siquiera twitteé al respecto. ¡Pensé que era una ventaja demasiado grande para regalar!
Descubrí que Copilot fue tan impactante que, cuando tuvimos nuestro retiro de equipo de 2021, dediqué una sección completa de mi presentación de CTO a Copilot. El uso de Copilot se convirtió en algo tan "requerido" como cualquier otra herramienta en Infinite Red. Fue un gran cambio de juego.
Qué hace Copilot por mi flujo de trabajo de codificación
Soy un codificador bastante rápido en circunstancias normales; El copiloto duplica mi velocidad.
Tengo TDAH leve y una de mis mayores luchas es mantener la concentración. Una vez que llego a "estado de flujo", soy imparable. No creo que esté solo luchando con esto, pero incluso si no lo hace, es posible que aún tenga momentos en los que "pierda el hilo" y necesite ayuda.
Descubrí que mi flujo de codificación ideal siempre implica el emparejamiento. Un buen par me mantiene enfocado, anticipa lo que se necesita a continuación, ofrece sugerencias y es paciente conmigo. El copiloto cumple ese rol ahora, automáticamente. Escribiré un código, llegaré a cierto punto en el que mi cerebro está tratando de pasar a otro tema, pero esa pequeña pausa es suficiente para que Copilot aparezca con una sugerencia, lo que activa mi enfoque nuevamente.
Limitaciones del copiloto
Un error común es obtener malos resultados de Copilot y culpar a la herramienta. Copilot no escribe su código exactamente como lo necesita en la mayoría de los casos. Hace lo mejor que puede en función del contexto, las pistas y la cantidad de datos de entrenamiento a los que tiene acceso. Y como cualquier herramienta, debe aprender a usarla para aprovecharla al máximo.
Hablemos de las formas de aprovechar al máximo Copilot.
Escribir comentarios principales para el contexto
El contexto es importante, tanto para un programador en pareja como para un asistente de codificación de IA. Comience escribiendo un comentario claro que dé, en lenguaje sencillo, una buena idea de para qué sirve una función, qué argumentos debe tomar, qué debe devolver. Si su comentario es vago, espere resultados vagos:

Un mejor comentario le dará mejor información a Copilot:

No dude en volver atrás y modificar su comentario hasta que obtenga los resultados que desea. Por supuesto, puede editar el código a mano, pero si se le da bien escribir comentarios descriptivos, también funcionará mejor con el código futuro.

En este caso, agregar "Función con tipo" introdujo tipos a los argumentos de la función.
Estos comentarios no son necesariamente para los lectores humanos del código, aunque se pueden leer tal cual. Siempre vuelvo y los ajusto para los lectores humanos una vez que termino.
Aprende los atajos de teclado
Si usa VS Code, puede encontrar una lista de accesos directos aquí .
- Aceptar una sugerencia en línea:
Tab
- Descartar una sugerencia en línea:
Esc
- Mostrar la siguiente sugerencia en línea:
Option (⌥)+]
- Mostrar sugerencia en línea anterior:
Option (⌥)+[
- Activar sugerencia en línea:
Option (⌥)+\
- Abra el copiloto de GitHub:
Ctrl+Return
Los que más uso, aparte de Tab
/ Esc
, son Option+[
y ]
. Esto me permite recorrer las sugerencias hasta que tenga la más útil.
Proporcione a Copilot una estructura con la que trabajar
A veces, Copilot integrará cosas que realmente desea extraer en una función de ayuda. Elimine por completo la función generada, cree primero la función auxiliar y, por lo general, Copilot la detectará y la usará en el futuro.

Esto se aplica a otras cosas, como los valores constantes codificados de forma rígida. Agregue variables bien nombradas justo encima del código generado y Copilot las integrará.

Copilot puede ayudar con los comandos CLI
Si eres como yo y no recuerdas muchos comandos de git, Copilot también puede ayudarte.
En una pestaña vacía, escribe algo como esto:

No es perfecto, ¡pero te dará suficientes pistas para acercarte!
Copilot es excelente para tareas repetitivas, como escribir exámenes
Uno de mis mayores momentos alucinantes en la transmisión fue cuando Copilot escribió pruebas precisas para una función bastante compleja que estaba creando. Eche un vistazo (marca de tiempo 2:23:00):

¡Copilot también puede escribir comentarios por usted!
Si bien escribir comentarios puede ayudar a Copilot con el código, ¡escribir código también puede ayudar a Copilot con los comentarios!
Si tiene un código existente y necesita documentarlo, Copilot a menudo tendrá una idea de lo que es.

Copilot puede explicarle el código (a través de Copilot Labs)
Si instala la extensión de Copilot Labs, puede abrirla en el panel lateral, resaltar un bloque de texto y Copilot hará todo lo posible para explicárselo en un inglés sencillo.

No he encontrado esto tan útil ya que puedo leer el código con fluidez, pero podría ser útil si algún código es particularmente críptico.
Copilot puede ayudarlo a aprender un nuevo lenguaje de codificación
Cuando estaba creando react-native-colo-loco , tenía que escribir un script de Gradle, que está escrito en Groovy. Sé un poco de Groovy, pero no mucho. Así que me concentré en escribir comentarios precisos y precisos, y dejé que Copilot sugiriera líneas de código. Entonces podría apoyarme en mi experiencia de desarrollo para captar patrones y sintaxis, y partir de allí.
Puedes ver los resultados aquí (dejé casi todos los comentarios principales de Copilot para mostrar cuáles eran).
Si el código de Copilot está muy lejos, sigue construyendo
Copilot ama el contexto. Cuanto más construyes, más contexto tiene y más útil se vuelve. Cuando decidí reconstruir una parte de MobX-State-Tree , Copilot fue increíblemente útil, porque podía examinar el resto del código base. (El refactor nunca se envió, pero fue un gran ejercicio de aprendizaje).
Todavía es pronto, pero soy bastante optimista con GitHub Copilot. Si tienes otros consejos, ¡házmelo saber en Twitter !
Agradecimientos:
- Gracias a Rizèl Scarlett por su charla sobre Copilot aquí (¡también vale la pena verla!):https://www.youtube.com/watch?v=CuQSoHbOpTQ
- Gracias a Marie Prokopets por su excelente artículo sobre Copilot (¡también deberías leerlo!):https://nira.com/github-copilot/
- ¡Gracias a Jenna Fucci por el increíble gráfico en la parte superior de este artículo!