Técnicas aplicadas de GitHub Copilot

Completado

En unidades anteriores, se mostró cómo configurar Copilot y se mencionó cómo puede ayudarle a ser más rápido como desarrollador que empieza a escribir código.

En esta unidad, vamos a analizar cómo Copilot puede ayudarle con proyectos existentes y con tareas más complicadas.

Tareas avanzadas con GitHub Copilot

Es habitual trabajar con un proyecto existente como ingeniero. Al corregir código o implementar características, es necesario escribir documentación y pruebas, y trabajar con comandos del terminal. Veamos algunas maneras de hacerlo mediante GitHub Copilot.

Mensajes implícitos

Aunque puede ser específico en los mensajes para obtener instrucciones de GitHub Copilot, puede aprovechar las características que proporcionan implícitamente un aviso creado previamente para obtener una buena respuesta.

Por ejemplo, si está trabajando en un proyecto de Python y tiene un archivo abierto con el código siguiente que tiene un error:

with open("file.txt", "r") as file:
    # Read the file and print the content
    contents = file.read

Después de seleccionar el código y usar Ctrl+i en Windows o Cmd+i en un equipo Mac, puede pedir a GitHub Copilot que le ayude a corregir el código mediante el chat insertado y el comando de barra diagonal /fix.

Si solo escribe /fix, podría obtener una respuesta de GitHub Copilot similar a esta sugerencia: "Para corregir el código, agregaría paréntesis después de file.read para llamar al método read y corregir el error tipográfico en el nombre del método".

Los comandos de barra diagonal se pueden usar tanto en el chat insertado como en la interfaz de chat. Además del /fix comando, estos son algunos de los comandos de barra diagonal más útiles que puede usar en el chat de Copilot:

  • /doc: agrega comentarios al código especificado o seleccionado.
  • /explain: obtiene explicaciones sobre el código.
  • /generate: genera código para responder a la pregunta especificada.
  • /help: obtiene ayuda sobre cómo usar el chat de Copilot.
  • /optimize: analiza y mejora el tiempo de ejecución del código seleccionado.
  • /tests: crea pruebas unitarias para el código seleccionado.

El uso de comandos de barra diagonal permite una interacción más sencilla con GitHub Copilot y le ayuda a obtener mejores respuestas sin tener que escribir solicitudes más largas.

La combinación de características como los comandos de barra diagonal con el chat en línea le permite elegir la manera que mejor se adapte a usted y al código en el que esté trabajando.

Contexto selectivo

GitHub Copilot se puede personalizar para proporcionar sugerencias en función del contexto en el que trabaja. Por ejemplo, puede pedir a GitHub Copilot que proporcione sugerencias basadas en todo el área de trabajo o en la salida del terminal.

Sin necesidad de abrir muchos archivos, GitHub Copilot puede proporcionarle una sugerencia precisa para el proyecto. Imagine que necesita empaquetar el proyecto mediante un Dockerfile. Un Dockerfile es un archivo especial que debe tener instrucciones específicas para empaquetar el proyecto. Puede usar el @workspace agente para preguntar a GitHub Copilot cómo ayudarle. Por ejemplo, abra GitHub Copilot Chat y escriba el siguiente comando:

@workspace I need to create a Dockerfile for this project, can you generate one that will help me package it?

Obtendrá una respuesta que explica los pasos para crear un Dockerfile para el proyecto junto con una explicación sobre lo que debe hacerse en los pasos del archivo.

Como siempre, si las sugerencias no son exactamente lo que está buscando, puede volver a escribir el mensaje y ser más específico. Por ejemplo, podría pedir a GitHub Copilot que use un paso específico al crear el Dockerfile:

@workspace help me create a Dockerfile to package this project but make sure you are using a Virtual Environment for Python.

Además del agente @workspace, puede usar otros agentes como @terminal, @file y @directory para obtener sugerencias específicas para el contexto.

  • @terminal: proporciona sugerencias basadas en la salida del terminal.
    • Ejemplo: @terminal ¿Cómo se corrige el mensaje de error que veo?
  • @file: se centra en el contenido de un archivo específico.
    • Ejemplo: @file ¿Puede ayudarme a refactorizar esta función en main.py?
  • @directory: tiene en cuenta el contenido de un directorio específico.
    • Ejemplo: @directory ¿Cómo puedo optimizar los scripts en el directorio utils?

Si no logra avanzar o no obtiene los resultados que desea, puede replantear la consulta o empezar a escribir código para que Copilot lo autocomplete.

Nota

Aunque puede ser específico con @workspace, de manera predeterminada GitHub Copilot usa los archivos abiertos en el editor de texto como contexto adicional.