Cómo utilizar GitHub Copilot y mejorar el desarrollo de Software

La próxima era en el desarrollo de software ha llegado, y se llama GitHub Copilot. Una herramienta que puedes comprar e instalar en menos de 10 minutos en tu editor de código o IDE favorito. Es la mezcla perfecta entre la potencia de la inteligencia artificial y el aprendizaje automático en el proceso de escritura.
En este artículo exploraremos cómo sacar el máximo provecho de GitHub Copilot y potenciar tu eficiencia en el desarrollo de software.
Antes de empezar con GitHub Copilot
En este caso, vamos a centrarnos en el uso de GitHub Copilot en Visual Studio Code. Para ello, primero debemos tenerlo instalado, y lo podemos obtener desde aquí. Una vez instalado, accede al Marketplace de extensiones y buscar la que nos interesa, tal y como se ilustra en la siguiente imagen:

Una vez encontrada, solo tenemos que darle al botón de instalar y ya tendremos todo configurado. Se recomienda reiniciar la aplicación después de la instalación.
Tras esto, tenemos que asegurarnos de que la extensión esté correctamente activada. En la esquina inferior derecha de la ventana de Visual Studio Code podremos ver el icono de GitHub Copilot. Si pulsamos en él, podremos encontrar el siguiente error:

Tras pulsar en el botón, se abrirá una ventana en el navegador para iniciar sesión en nuestra cuenta de GitHub. Para que esto funcione, la cuenta de GitHub deberá tener pagada la suscripción al servicio de GitHub Copilot. Puedes obtener información relacionada con el pago desde la página oficial.
Tras autorizar el uso de la cuenta de GitHub en aplicaciones externas ya lo tendremos todo configurado. A partir de aquí, solo tenemos que ponernos manos a la obra.
Una herramienta casi a medida para GitHub Copilot
Desde la sección de configuración (File > Preferences > Settings) podemos acceder a las configuraciones de la extensión. Por ejemplo, podríamos editar un atajo de teclado para activar o desactivar Copilot, modificar la cantidad de sugerencias que ofrece o cambiar los idiomas en los que se puede utilizar.
A medida que vayamos corrigiendo el texto sugerido por Copilot, este irá aprendiendo del código que vamos introduciendo a los distintos ficheros y mejorará futuras sugerencias. Cuantas más veces interactuemos con la herramienta más precisa y adaptada será la generación de código.
Si trabajamos en un equipo en el que todos utilizan GitHub Copilot sería interesante establecer unas pautas comunes para el uso de la herramienta con el fin de mantener cierta coherencia en el estilo de codificación del equipo.
Personalizar las preferencias y entrenar a GitHub Copilot es esencial para aprovechar al máximo sus capacidades y ajustarlo a nuestro estilo de desarrollo. Esto aumentará significativamente la calidad de nuestro código.
¿Cuáles son las limitaciones de GitHub?
A pesar de ser una herramienta revolucionaria no está exenta de limitaciones y desafíos que debemos tener en cuenta. Aunque GitHub Copilot sea potente, no siempre genera código 100% preciso. Puede cometer errores o producir soluciones poco fiables. Es esencial que el desarrollador revise y valide el código generado para evitar problemas. Es una herramienta en manos del desarrollador, no un sustituto.
Puesto que se alimenta del código subido a los servidores de GitHub Copilot, debemos tener cuidado al utilizar la herramienta. Especialmente, si estamos tratando información sensible o confidencial en los archivos del proyecto.
La herramienta depende del lenguaje de programación y del concepto del proyecto, por lo que pueden haber casos en los que ciertos lenguajes o dominios puedan resultar más desafiantes para la herramienta.

¿Cómo empezar a utilizar GitHub?
Respuesta corta: dentro de un comentario introduce lo que desees para que lo genere la herramienta.

Respuesta larga: GitHub Copilot, cómo otras herramientas de IA del momento, no puede suponer automáticamente lo que necesitamos. En otras palabras, cuanta más información y contexto le proporcionemos sobre lo que estamos buscando, más precisa será su respuesta. Siguiendo el ejemplo anterior, si deseamos que la aplicación nos proporcione algo específico debemos solicitarlo de manera explícita.

Con este ejemplo hemos logrado generar una interfaz en lenguaje natural sin tener que preocuparnos por el tipo de nomenclatura a utilizar.
¿Puede también generar métodos con más o menos lógica? Por supuesto, siempre y cuando proporcionemos una indicación específica en la cabecera del método para informarle sobre lo que deseamos. Un ejemplo sencillo sería el siguiente:

También podemos agregarle un nivel de complejidad adicional:

Este ejemplo es perfecto para ilustrar que esta herramienta puede no tener en cuenta todos los aspectos de nuestro prompt. Con nombre compuesto, como podría ser “Juan Alberto”, si el usuario lo escribe en minúsculas la herramienta devolvería su nombre como “Juan Alberto”. Para evitar esto, podríamos agregar un simple recordatorio en el código en forma de comentario:

Una buena forma de entrenar a la herramienta es eliminando la propuesta que no nos encaja y volver a crearla hasta encontrar una solución que sea satisfactoria. Otra forma de entrenar a la GitHub es escribir parte del código y permitir que la herramienta lo complete. De manera que se vaya “acostumbrando” a nuestro estilo de desarrollo de software.
¿Cómo mejorar los prompts en GitHub Copilot?
En realidad, el prompt es la parte más importante a la hora de utilizar cualquier IA, incluso más que la herramienta en sí. En él reside la responsabilidad de obtener resultados precisos y útiles. Varios consejos que se pueden utilizar son los siguientes:
1. Nada de ambigüedades
GitHub Copilot es una IA, no nuestro compañero de trabajo, por lo que especifiques exactamente lo que necesitas. Por ejemplo, en lugar de “Genérame un gráfico de barras para un objeto”, se puede introducir “Genera un gráfico de barras para el objeto chartData, ordenando los ítems de menor a mayor según el valor de la variable measure“.
2. Un ejemplo vale más que mil palabras
Incluir un ejemplo del contexto que estás abordando puede ayudar a la IA a comprender mejor lo que estás esperando. En caso de que el código generado no sea lo esperado, puedes añadir un comentario que diga: “No es lo que necesito. Por favor, genera el código siguiendo estas indicaciones”, junto con una lista de las cosas que precisas. Siguiendo el ejemplo anterior, podemos añadir el prompt: “Genera el gráfico de barras tomando como ejemplo este conjunto de datos, que tiene la misma estructura que la entrada: [ejemplo de datos usando un JSON]”.
3. Probar, rehacer y rehacer
Ya hemos visto que es una herramienta imperfecta. Si no nos gusta lo que nos genere la IA, podemos refinar la salida de la IA proporcionando un feedback preciso. Por ejemplo, si no nos convence el gráfico de barras generado, podemos solicitar que nos lo genere en una librería concreta. Introduciendo un nuevo comentario que diga: “Necesito que el gráfico de barras lo generes utilizando la librería Kendo”.
La comunidad, una gran fuente de conocimiento
Existen comunidades activas de usuarios de herramientas de IA, como puede ser el r/OpenAI de Reddit, donde siempre hay otros desarrolladores que comparten sus tips sobre cómo hacen ellos sus prompts y cómo los han mejorado. Participa en foros de usuarios, grupos de desarrollo de proyectos open-source y redes sociales como LinkedIn para compartir y aprender nuevas estrategias de ingeniería de prompts.
A lo largo del artículo hemos podido comprobar que GitHub Copilot es más que un simple asistente de código. Es un compañero de desarrollo que te entiende, te sugiere soluciones y te ahorra tiempo. Con GitHub Copilot, puedes crear aplicaciones increíbles con menos esfuerzo. ¿Quieres saber más sobre esta revolucionaria tecnología? Te invitamos a leer nuestro artículo “GitHub Copilot: Mejora la velocidad de desarrollo“, donde te contamos cómo funciona, qué ventajas tiene y cómo puedes empezar a usarla hoy mismo.
No dejes pasar esta oportunidad de mejorar tu productividad y creatividad con GitHub Copilot. ¡Contáctanos ahora y descubre todo lo que podemos hacer por ti!
Elio San Martín Gallart – Software developer at Itequia