Refactorización de funciones grandes mediante el modo del agente de GitHub Copilot

Completado

El uso del modo agente de Copilot de GitHub es como tener un asistente que siempre está ahí para ayudarle a desarrollar y mantener el código.

En el modo agente, asignará tareas a GitHub Copilot mediante mensajes de lenguaje natural en el panel de chat. GitHub Copilot comienza mediante el análisis del código base mediante la tarea asignada para establecer el contexto necesario. El agente genera un plan para realizar la tarea y muestra la lista de las subtareas necesarias. A continuación, se abre y edita los archivos asociados en el editor de código. El agente completa el análisis, la planificación y la implementación de forma autónoma y proporciona un comentario continuo en el panel de chat para que puedas supervisar su progreso. Si es necesario, el agente solicita aclaraciones, información adicional o permiso para continuar con una acción específica. Una vez que el agente complete la tarea, puede revisar las modificaciones y aprobar (o rechazar) los cambios individuales. Usted permanece en control a lo largo del proceso.

procedimientos recomendados

Tenga en cuenta estas sugerencias para sacar el máximo partido al modo agente:

  • Divida la refactorización en pequeños pasos.
  • Revise cuidadosamente cada cambio.
  • Compile y pruebe después de cada paso.

Comandos comunes de refactorización

Estos son algunos ejemplos de solicitudes de refactorización comunes:

  • "Extraiga el código de validación seleccionado en un nuevo método privado denominado ValidateOrder que toma un parámetro Order y devuelve una bool. Asegúrese de que toda la lógica de validación se transfiera y el punto de llamada original use el valor devuelto adecuadamente.
  • "Revise el código seleccionado. Identifique y extraiga toda la lógica de cálculo fiscal repetida en un nuevo método CalculateTax estático privado que tome los parámetros necesarios (cantidad, taxRate, región) y devuelva el importe de impuestos calculado. Reemplazar todos los cálculos duplicados con llamadas a este método.
  • "Revise el código seleccionado. Convierta esta estructura if/else en una expresión de switch moderna, asegurándose de que todos los casos se cubren y la lógica sigue siendo equivalente. Use la coincidencia de patrones cuando corresponda y mantenga el mismo tipo de valor devuelto".
  • "Revise el código seleccionado. Extraiga todos los precios y los cálculos totales en un nuevo método ComputeTotals privado que tome un parámetro Order, realice todos los cálculos y actualice las propiedades totales del pedido. Asegúrese de que no haya ninguna lógica de cálculo en el método original".

Flujo de trabajo de ejemplo

Supongamos que tiene una función ProcessOrder grande que controla el procesamiento de pedidos, incluida la validación, los cálculos de precios, el guardado en la base de datos y el envío de notificaciones. La función tiene más de 200 líneas de longitud y debe dividirse.

Puede usar los pasos siguientes para refactorizar la función:

  1. Extraiga el primer segmento:

    "Extraiga la validación de entrada en la parte superior de ProcessOrder en un nuevo método ValidateOrder(order) que devuelva bool".

  2. Extraiga el segundo segmento:

    "Mueva los cálculos de precios a un nuevo método ComputeTotals(order) que actualiza order.Total".

  3. Gestione la lógica restante:

    Extraiga la lógica de guardado y notificación de forma similar o deje en la función principal si ahora es corta y clara.

  4. Limpiar:

    Cambie el nombre de las variables, quite el código sin usar y asegúrese de la coherencia.

Aplicar sugerencias del modo Ask

Usa el desglose del modo Preguntar para guiar el modo Agente.

  • Revisar el plan propuesto por Ask mode y sus preguntas de seguimiento.
  • Formulación de un plan de refactorización final para el modo agente.
  • Use el análisis del modo Preguntar para crear una serie de avisos claros y específicos para el modo agente. Use los nombres de función sugeridos y las listas de parámetros en las indicaciones cuando corresponda.

Sugerencia

Trata el modo agente como un desarrollador junior en tu equipo. Proporcione instrucciones claras, revise su trabajo y corrija según sea necesario.

Aspectos a vigilar durante la revisión

Revise siempre los cambios realizados por el agente. Tenga en cuenta la siguiente lista de comprobación:

  • Conservación de lógica: Asegúrese de que no se cambia ningún comportamiento.
  • Control de parámetros: Copilot puede olvidarse de pasar una variable necesaria.
  • Modificadores de nomenclatura y acceso: Confirme que coinciden con el estilo de código base.
  • Líneas perdidas: Si Copilot omite una línea, muévalo manualmente o vuelva a preguntar.

Administrar resultados inesperados

Cuando el agente genera un resultado que no es lo que esperaba:

  • Deshaga el cambio o revierta el archivo.
  • Pruebe un paso más pequeño o un aviso más preciso.
  • Corrija los problemas menores manualmente o pida a Copilot que los corrija.

Resumen

El uso del modo agente de Copilot de GitHub simplifica el proceso de refactorización de funciones grandes. Al dividir la tarea en pasos fáciles de administrar y usar avisos de lenguaje natural, mantiene el control al tiempo que permite al agente controlar el trabajo pesado. Revise siempre los cambios cuidadosamente para garantizar la calidad del código y la integridad de la lógica.