Refactorización de código mediante los modos de chat de Copilot de GitHub
GitHub Copilot se puede usar para refactorizar el código en el código base. Puede usar los modos de vista chat para analizar, planear e implementar tareas de refactorización de código. Los modos de vista 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 modos de chat:
- Modo de preguntas: use el modo de preguntas para formular preguntas sobre los conceptos de código base o tecnología. Puede usar el modo de pregunta explicar el código, sugerir revisiones o correcciones, o proporcionar información relacionada con el código base.
- Modo de edición: use el modo de edición para realizar modificaciones en varios archivos del código base. Puede usar el modo de edición para refactorizar el código, agregar comentarios o realizar otros cambios en el código.
- Modo de agente: use el modo de agente para iniciar un flujo de trabajo de codificación agente. Puede usar el modo de agente para ejecutar comandos, ejecutar código o realizar otras tareas en el área de trabajo.
Importante
Cuando se usa el modo de 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 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 del modo ask para refactorizar código
Puede usar el modo de pregunta para obtener ayuda con las tareas de codificación, comprender los conceptos complicados y mejorar el código. El modo Ask está diseñado para conversaciones interactivas con Copilot Chat. Puede formular preguntas, obtener explicaciones o solicitar sugerencias en tiempo real.
Abra la vista Chat en modo de pregunta.
Agregue contexto al chat.
El modo de pregunta admite participantes del chat, comandos de barra oblicua y variables de chat. Puede agregar al participante del chat
@workspace
o#codebase
al chat para proporcionar contexto con archivos o carpetas.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 el código de autenticación existente cómo actualizar el método actual mediante OAuth.
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.
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.
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.
Pruebe el código refactorizado para asegurarse de que se ejecuta sin errores y genera el resultado esperado.
Uso del modo de edición para refactorizar código
Puede usar el modo de edición cuando desee un control más pormenorizado sobre las ediciones que Copilot propone. En el modo de edición, elige los archivos en los que Copilot puede realizar cambios, proporciona contexto a Copilot con cada iteración y decide si aceptar o no las modificaciones sugeridas.
Sugerencia
Use el modo ask para evaluar el código que le interesa refactorizar y evaluar las opciones antes de empezar a realizar cambios. Puede usar el modo de edición para realizar los cambios en el código.
Abra la vista Chat en modo de edición.
Agregue contexto al chat.
El modo de edición no admite participantes de chat. Especifique el contexto del área de trabajo mediante
#codebase
y agregando archivos al chat.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.
Revise las modificaciones sugeridas en el editor de código.
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).
Pruebe el código refactorizado para asegurarse de que se ejecuta sin errores y genera el resultado esperado.
Uso del modo de agente para refactorizar código
Puede usar el modo de agente cuando quiera automatizar el proceso de refactorización de código. En el modo de agente, Copilot actúa como agente autónomo que puede realizar acciones en su nombre. Puede pedir a Copilot que realice tareas específicas y genera código basado en las solicitudes.
En el modo de agente, puede usar lenguaje natural para especificar una tarea de alto nivel y permitir que Copilot razon de forma autónoma sobre la solicitud, planee el trabajo necesario y aplique los cambios en el código base. El modo de agente usa una combinación de la edición de código y la 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
Cuando se usa el modo de 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 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.
Abra la vista Chat en modo agente.
Crea un mensaje que describa la tarea que deseas que realice GitHub Copilot.
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 a GitHub Copilot que refactorice 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.
El modo de 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.
Confirme las invocaciones de herramientas y los comandos de terminal.
Antes de que Copilot ejecute un comando de terminal o una herramienta que no esté integrada, 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.
Copilot detecta cuestiones y problemas en las ediciones de código y comandos de terminal y iterará para realizar acciones para resolverlos.
Importante
Aunque 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 Copilot a comprender el problema. También puede cancelar el proceso y empezar de nuevo con una nueva indicación.
Revise las modificaciones sugeridas y acepte o descarte las modificaciones sugeridas.
Pruebe el código refactorizado para asegurarse de que genera el resultado esperado.
El modo de agente debería resolver los problemas por sí solo, pero aún deberías probar el código para asegurarte de que funciona según lo previsto.
Puede revertir las modificaciones realizadas por el modo de 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 modo de agente.
Cuándo elegir el modo de agente sobre el modo de edición
Tenga en cuenta los siguientes criterios para elegir entre el modo de edición y el modo de agente:
- Ámbito de edición: el modo de agente determina de forma autónoma el contexto y los archivos pertinentes que se van a editar. En el modo de edición, debe especificar el contexto usted mismo.
- Complejidad de tareas: el modo de 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 modo de 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.
- Autocuración: el modo de agente evalúa el resultado de las ediciones generadas y puede realizar múltiples iteraciones para resolver problemas intermedios.
- Cuota de solicitudes: en 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 el código en el código base. Puede usar los modos de vista chat para analizar, planear e implementar tareas de refactorización de código. La vista Chat incluye tres modos de chat: Modo de preguntas, Modo de edición y Modo agente. Puede usar el modo de preguntas para formular preguntas sobre los conceptos de código base o tecnología. Puede usar el modo de edición para realizar modificaciones en varios archivos del código base. Puede usar el modo de agente para iniciar un flujo de trabajo de codificación agente.