Refactorización de código mediante los modos de chat de GitHub Copilot

Completado

GitHub Copilot se puede usar para refactorizar código en el código base. Puede usar los agentes de vista de chat para analizar, planear e implementar tareas de refactorización de código. Los agentes de vista de chat proporcionan una interfaz fácil de usar para administrar conversaciones de chat y acceder a las características de GitHub Copilot. La vista Chat incluye los siguientes agentes integrados:

  • Preguntar: Usar Preguntar para formular preguntas sobre tu base de código o conceptos de tecnología. Puede usar Preguntar para explicar el código, sugerir revisiones o correcciones, o proporcionar información relacionada con el código base.
  • Plan: use el agente de plan para crear un plan de implementación estructurado y paso a paso antes de escribir cualquier código. Cuando el plan tenga el aspecto correcto, entrególo a un agente de implementación para ejecutarlo.
  • Agente: use el agente para iniciar un flujo de trabajo de codificación agente. Puede usar el Agente para ejecutar comandos, ejecutar código o realizar otras tareas en el área de trabajo.

Importante

Al usar el Agente, GitHub Copilot puede realizar varias solicitudes Premium para completar una sola tarea. Las solicitudes Premium se pueden usar mediante avisos iniciados por el usuario y acciones de seguimiento, que GitHub Copilot realiza en su nombre. El total de solicitudes premium usadas depende de la complejidad de la tarea, del número de pasos implicados y del modelo seleccionado.

Uso de Preguntar para refactorizar código

Puede usar Ask para obtener ayuda con las tareas de codificación, comprender los conceptos complicados y mejorar el código. Ask está diseñado para conversaciones interactivas con GitHub Copilot Chat. Puede formular preguntas, obtener explicaciones o solicitar sugerencias en tiempo real.

  1. Abra la vista Chat y seleccione Preguntar.

  2. Agregue contexto al chat.

    Ask admite participantes de chat, comandos de barra diagonal y variables de chat. Puede agregar al participante del chat @workspace o #codebase al chat para proporcionar contexto con archivos o carpetas.

  3. Realice preguntas que le ayuden a comprender el código que desea refactorizar y los cambios que desea realizar.

    Por ejemplo, puede pedir a GitHub Copilot que le ayude a comprender su código de autenticación existente y actualizar el método actual utilizando OAuth.

  4. Construya un indicador que describa la actualización que desea implementar.

    El mensaje debe incluir una descripción de la característica de código que desea implementar. Por ejemplo:

    @workspace I need to refactor the `EnumHelper` class and remove any code that uses reflection. Use static dictionaries to supply enum description attributes. Use a separate dictionary for each enum. The dictionaries should use values from the `LoanExtensionStatus.cs`, `LoanReturnStatus.cs`, and `MembershipRenewalStatus.cs` files. Explain how to update the EnumHelper class using dictionaries and show me the updated code.
    
  5. Revise el código sugerido en la vista Chat.

    La respuesta que se muestra en la vista Chat incluirá un fragmento de código que puede usar para implementar la característica. Puede escribir avisos actualizados para refinar el código o solicitar más detalles.

  6. Para implementar código sugerido, puede mantener el puntero del mouse sobre el fragmento de código y, a continuación, seleccionar entre las opciones Aplicar, Insertar y Copiar .

    • Aplicar: aplica la sugerencia de código al archivo actual en el editor.
    • Insertar: inserta la sugerencia de código en la posición actual del cursor en el editor.
    • Copiar: copia la sugerencia de código en el Portapapeles.
  7. Pruebe el código refactorizado para asegurarse de que se ejecuta sin errores y genera el resultado esperado.

Utilice el plan para refactorizar el código

Puede usar el agente de plan cuando quiera crear un plan de implementación estructurado y paso a paso antes de realizar cambios. El agente de plan analiza el código base, formula preguntas aclarantes y genera un plan detallado. Cuando el plan parezca correcto, puede entregarlo a un agente de implementación para ejecutarlo.

Sugerencia

Use Ask para evaluar el código que le interesa refactorizar y evaluar las opciones antes de empezar a realizar cambios. Puede usar Plan para crear un plan estructurado y, a continuación, entregarlo a un agente de implementación.

  1. Abra la vista Chat y seleccione Plan.

  2. Agregue contexto al chat.

    Especifique el contexto del área de trabajo mediante #codebase y agregando archivos al chat.

  3. Cree una instrucción que describa la característica de código que desea implementar.

    El mensaje debe incluir una descripción de la característica de código que desea implementar. Por ejemplo:

    
    #codebase I need to refactor the `EnumHelper` class and remove any code that uses reflection. Use static dictionaries to supply enum description attributes. Use a separate dictionary for each enum. The dictionaries should use values from the `LoanExtensionStatus.cs`, `LoanReturnStatus.cs`, and `MembershipRenewalStatus.cs` files.
    
    
  4. Revise el plan de implementación estructurado que GitHub Copilot genera.

    El agente de plan crea un plan paso a paso que puede revisar antes de realizar cualquier cambio de código.

  5. Cuando el plan tenga el aspecto correcto, entrególo a un agente de implementación para ejecutarlo.

    Puede entregar el plan al Agente para aplicar los cambios en el código base.

  6. Revise las modificaciones sugeridas en el editor de código.

  7. Acepte o descarte las modificaciones sugeridas.

    Puede navegar por las ediciones mediante las flechas arriba y abajo. Puede conservar (aceptar) o deshacer (descartar) las modificaciones sugeridas individualmente mediante el menú emergente que aparece sobre cada edición. También puede aceptar o rechazar todas las modificaciones a la vez mediante los botones Mantener y Deshacer de la parte inferior de la pestaña del editor (o vista chat).

  8. Pruebe el código refactorizado para asegurarse de que se ejecuta sin errores y genera el resultado esperado.

Uso del agente para refactorizar el código

Puede usar el Agente cuando quiera automatizar el proceso de refactorización de código. El agente actúa como agente autónomo que puede realizar acciones en su nombre. Puede pedir GitHub Copilot para realizar tareas específicas y genera código basado en las solicitudes.

Con el Agente, puede usar lenguaje natural para especificar una tarea de alto nivel y dejar que GitHub Copilot razone de forma autónoma sobre la solicitud, planifique el trabajo necesario y aplique los cambios en su base de código. El Agente usa una combinación de edición de código e invocación de herramientas para realizar la tarea especificada. A medida que procesa la solicitud, supervisa el resultado de las ediciones y las herramientas, e itera para resolver los problemas que surjan.

Importante

Al usar el Agente, GitHub Copilot puede realizar varias solicitudes Premium para completar una sola tarea. Las solicitudes Premium se pueden usar mediante avisos iniciados por el usuario y acciones de seguimiento que GitHub Copilot realiza en su nombre. El total de solicitudes premium usadas depende de la complejidad de la tarea, del número de pasos implicados y del modelo seleccionado.

  1. Abra la vista Chat y seleccione Agente.

  2. Cree un comando que describa la tarea que desea GitHub Copilot para realizar.

    Supongamos que tiene un proyecto de código que usa dos o más procesos o técnicas para realizar la misma tarea. Puede pedir GitHub Copilot refactorizar el código mediante un único enfoque para mejorar la coherencia, el mantenimiento y el rendimiento.

    Por ejemplo:

    
    Review the LINQ code used in the JsonData and JsonLoanRepository classes. Refactor the methods in the JsonPatronRepository class using LINQ queries. Ensure that existing code functionality is maintained.
    
    
  3. El agente puede invocar varias herramientas para realizar diferentes tareas. Opcionalmente, seleccione el icono Herramientas para configurar qué herramientas se pueden usar para responder a la solicitud.

  4. Confirme las invocaciones de herramientas y los comandos de terminal.

    Antes de ejecutar un comando de terminal o una herramienta no integrada, GitHub Copilot solicita confirmación para continuar. Se requiere confirmación porque es posible que las herramientas se ejecuten localmente en el equipo y realicen acciones que modifiquen archivos o datos.

  5. GitHub Copilot detecta problemas e inconvenientes en ediciones de código y comandos de terminal, e itera y realiza acciones para resolverlos.

    Importante

    Aunque GitHub Copilot es capaz de la recuperación automática, es posible que no siempre pueda resolver problemas por sí mismos. Puede pausar el proceso y proporcionar más contexto para ayudar a GitHub Copilot comprender el problema. También puede cancelar el proceso y empezar de nuevo con una nueva indicación.

  6. Revise las modificaciones sugeridas y acepte o descarte las modificaciones sugeridas.

  7. Pruebe el código refactorizado para asegurarse de que genera el resultado esperado.

    El agente debe resolver los problemas por sí solos, pero debe probar el código para asegurarse de que funciona según lo previsto.

    Puede revertir las modificaciones realizadas por el Agente mediante el botón Deshacer de la vista Chat. También puede usar la opción Revertir en el editor para revertir los cambios realizados por el Agente.

Cuándo elegir el Agente sobre el Plan

Tenga en cuenta los siguientes criterios para elegir entre plan y agente:

  • Planeación: el plan crea un plan de implementación estructurado paso a paso antes de escribir cualquier código. El Agente determina de forma autónoma el contexto y los archivos pertinentes que se van a editar y comienzan a realizar cambios directamente.
  • Complejidad de tareas: el agente es más adecuado para tareas complejas que requieren modificaciones de código y la invocación de herramientas o comandos de terminal.
  • Duración: el agente usa varios pasos para procesar una solicitud, por lo que puede tardar más tiempo en generar una respuesta. Por ejemplo, para determinar el contexto y los archivos pertinentes que se van a editar, determine el plan de acción, etc.
  • Auto-reparación: El Agente evalúa el resultado de las ediciones generadas y puede realizar iteraciones múltiples para resolver problemas intermedios.
  • Cuota de solicitudes: cuando se usa el modo agente, en función de la complejidad de la tarea, un mensaje podría dar lugar a muchas solicitudes al back-end.

Resumen

GitHub Copilot se puede usar para refactorizar código en el código base. Puede usar los agentes de vista de chat para analizar, planear e implementar tareas de refactorización de código. La vista Chat incluye tres agentes integrados: Ask, Plan y Agent. Puede usar Ask para formular preguntas sobre su base de código o conceptos tecnológicos. Puede usar Plan para crear un plan de implementación estructurado antes de escribir código. Puede usar el Agente para iniciar un flujo de trabajo de codificación agente.