Identificación y evaluación de funciones de gran tamaño mediante el modo Ask de GitHub Copilot
El uso del modo Preguntar de Copilot de GitHub es como tener un compañero con conocimientos que esté siempre disponible para responder a sus preguntas. GitHub Copilot puede responder a preguntas sobre el código base, las bibliotecas de código, los procedimientos recomendados y el entorno de desarrollo. El modo Preguntar no modifica el código directamente, pero proporciona explicaciones, conclusiones y sugerencias que puede usar para mejorar el código.
El modo Ask de GitHub Copilot es útil cuando se trabaja con funciones grandes complejas y difíciles de entender. Al formular preguntas dirigidas, puede dividir una función grande en partes manejables, identificar áreas para mejorar y planear los esfuerzos de refactorización de código de forma eficaz.
Casos de uso generales para el modo Ask de GitHub Copilot
El modo Ask de GitHub Copilot está integrado en Visual Studio Code a través de la extensión GitHub Copilot Chat. Puede iniciar una conversación en el modo Preguntar abriendo el panel de chat y escribiendo sus preguntas en lenguaje natural. Estos son algunos casos de uso comunes para el modo de consulta:
- Explicación y resumen del código: Genere un desglose del lenguaje natural de lo que hace el código. Puede pedir a GitHub Copilot que resuma un código base completo o cualquier clase, método o bloque de código.
- Identificar secciones lógicas: A menudo, devuelve una lista numerada de tareas distintas o pasos que realiza el código.
- Resaltar problemas: Puede señalar la repetición o la complejidad.
- Responder a preguntas específicas: "¿Qué hace este bucle?" o "¿Por qué se necesitan estos parámetros?"
- Sugerir enfoques de refactorización: "Puede extraer estos pasos en funciones independientes..."
Identificación y evaluación de funciones de gran tamaño mediante el modo Ask de GitHub Copilot
Hay varios escenarios en los que el modo Ask puede ayudar a identificar y analizar funciones grandes:
- Identificación de funciones grandes potencialmente problemáticas: Pida a Copilot que busque funciones que superen un determinado recuento de líneas o umbral de complejidad.
- Descripción de la funcionalidad: Pregunte qué hace la función en un nivel alto.
- Desglosar la lógica: Solicite una explicación paso a paso de la lógica de la función.
- Identificación de problemas: Pregunte sobre posibles problemas o olores de código.
- Sugerencias de refactorización: Busque consejos sobre cómo refactorizar la función para mejorar la legibilidad y el mantenimiento.
- Explorar alternativas: Pida diferentes formas de implementar la misma funcionalidad.
- Procedimientos recomendados de aprendizaje: Solicite procedimientos recomendados de codificación relacionados con el propósito de la función.
Este es un proceso de alto nivel que usa GitHub Copilot para identificar y analizar funciones de gran tamaño:
Identificar funciones de gran tamaño problemáticas: use el modo Preguntar para identificar las funciones que superan los umbrales especificados.
Revise los hallazgos de GitHub Copilot: analice la lista de funciones identificadas y priorícelas en función de la complejidad y el impacto. Use su criterio para seleccionar funciones que se beneficiarían más de la refactorización.
Evaluar una función grande específica: use el modo Preguntar para analizar la función en detalle.
Haga una pregunta con un mensaje de lenguaje natural, como:
- "Analice la función seleccionada y proporcione un resumen general de su propósito y responsabilidades principales. Incluya cualquier preocupación sobre la complejidad o el mantenimiento que tenga en cuenta".
- "Divida la función seleccionada en sus distintas tareas lógicas o responsabilidades. Para cada tarea, indique qué líneas de código están implicadas y si cada tarea se puede extraer en una función independiente".
- "Identificar oportunidades de refactorización específicas en la función seleccionada. Sugiera qué bloques de código se podrían extraer en métodos independientes, cuáles deben denominarse esos métodos y qué parámetros necesitarían".
- "Analice la complejidad ciclomática de la función seleccionada. Identifique los puntos de decisión (instrucciones if, bucles, casos modificadores) que contribuyen más a la complejidad y sugieren estrategias específicas para reducirla, como cláusulas de protección, devoluciones anticipadas o patrones de estrategia."
- "Evalúe la función seleccionada con los principios SOLID. ¿Qué principios infringen y cómo?"
- Identifique cualquier mal olor de código en la función seleccionada, como listas de parámetros largas, condicionales anidados o patrones de código repetidos. Proporcione ejemplos específicos".
- "Sugerir un plan de refactorización paso a paso para la función seleccionada, priorizando los cambios que tendrían el mayor impacto en la legibilidad y mantenimiento".
Revise la respuesta de GitHub Copilot en el panel de chat:
Aplique su comprensión del código base y las reglas de negocio aplicables. Use sus propios conocimientos para comprobar el análisis de GitHub Copilot.
Busque información procesable en la respuesta. Por ejemplo, puede encontrar tareas específicas o secciones de código que se podrían extraer en funciones independientes.
Hacer preguntas de seguimiento:
- "Revise los patrones de control de errores en la función seleccionada. ¿Hay oportunidades para consolidar el control de errores, mejorar los mensajes de error o extraer el control de errores en componentes reutilizables?"
- "Evaluar la función seleccionada con el principio de responsabilidad única. Si tiene varias responsabilidades, identifique cada una de ellas y sugiera cómo podrían dividirse en funciones centradas y de un solo propósito".
- "Revise el plan de refactorización sugerido para la función seleccionada. ¿Hay alguna implicaciones de seguridad, rendimiento o mantenimiento que necesito tener en cuenta? Explicar."
Planifica la refactorización:
Use la información para describir una estrategia de refactorización.
Decida qué partes se van a extraer en funciones o clases independientes.
Sugerencias para usar el modo Preguntar de forma eficaz
Para obtener el máximo beneficio del modo Ask de GitHub Copilot, tenga en cuenta las siguientes sugerencias:
- Sea específico: Pregunte sobre secciones concretas si es necesario.
- Mantener el contexto visible: Asegúrese de que GitHub Copilot puede "ver" toda la función. Agregue archivos relacionados al contexto de chat si es necesario.
- No confíe ciegamente en sugerencias: Use su juicio.
- Utilice la salida del Modo Ask como plan: Planifique los esfuerzos de refactorización del código basándose en el desglose de GitHub Copilot.
Nota:
Los desarrolladores experimentados pueden usar el modo Ask como segunda opinión y validar sus propios planes para refactorizar funciones grandes. Si GitHub Copilot identifica las mismas funciones que identificó, sabe que está en la pista correcta. Si GitHub Copilot sugiere refactorizar otras funciones, puede usar la información de GitHub Copilot para evaluar lo que perdió.
Resumen
El modo Ask de GitHub Copilot es una herramienta eficaz para analizar y comprender funciones grandes. Al formular preguntas dirigidas, puede desglosar código complejo, identificar áreas para mejorar y planear el proyecto de refactorización de código de forma eficaz. Use el modo Preguntar como asistente de planificación antes de empezar a refactorizar para garantizar un enfoque bien pensado.