Revisar el código generado por herramientas de inteligencia artificial como GitHub Copilot, ChatGPT u otros agentes de codificación se está convirtiendo en una parte esencial del flujo de trabajo de desarrollador moderno. En esta guía se proporcionan técnicas prácticas, se destaca la importancia de la supervisión y las pruebas humanas, e incluye indicaciones de ejemplo para mostrar cómo la inteligencia artificial puede ayudar en el proceso de revisión.
En el caso de los códigos base heredados y las solicitudes de incorporación de cambios más grandes en particular, es fundamental un proceso de revisión exhaustivo. La combinación de conocimientos humanos con herramientas automatizadas puede garantizar que el código generado por ia cumpla los estándares de calidad, se alinee con los objetivos del proyecto y cumpla los procedimientos recomendados.
Con Copilot, puedes simplificar el proceso de revisión y mejorar tu capacidad de identificar posibles problemas en el código generado por IA.
1. Empezar con comprobaciones funcionales
Ejecute siempre primero las pruebas automatizadas y las herramientas de análisis estático.
- Asegúrese de que el código se compila y se superan todas las pruebas. Compruebe si hay nuevas advertencias o errores.
- Usa herramientas como CodeQL y Dependabot para detectar vulnerabilidades y problemas de dependencia.
- Consulte Generación de pruebas unitarias y Creación de pruebas de un extremo a otro para una página web para obtener ejemplos de comprobación del código con Copilot.
Ejemplos de indicaciones
What functional tests to validate this code change do not exist or are missing?What possible vulnerabilities or security issues could this code introduce?
2. Comprobación del contexto y la intención
Compruebe que el código generado por ia se ajuste a la finalidad y la arquitectura del proyecto.
- Revise la salida de IA para que cumpla con sus requisitos y patrones de diseño.
- Pregúntese: "¿Este código resuelve el problema correcto? ¿Sigue nuestras convenciones?"
- Utiliza tu README, documentos, y recientes solicitudes de incorporación de cambios como punto de partida para el contexto para la inteligencia artificial. Indique a la INTELIGENCIA artificial qué orígenes confiar, qué no usar y darle buenos ejemplos con los que trabajar.
- Pruebe Síntesis de la investigación para ver cómo Copilot utiliza la documentación e investigación para orientar la generación de código.
- Al pedir a la inteligencia artificial que realice tareas de investigación y planificación, considere la posibilidad de destilar la salida de la IA en artefactos estructurados para que luego se conviertan en el contexto de futuras tareas de inteligencia artificial, como la generación de código.
Ejemplos de indicaciones
How does this refactored code section align with our project architecture?What similar features or established design patterns did you identify and model your code after?When examining this code, what assumptions about business logic, design preferences, or user behaviors have been made?What are the potential issues or limitations with this approach?
3. Evaluar la calidad del código
Las normas humanas siguen siendo importantes.
- Busque legibilidad, mantenimiento y nomenclatura clara.
- Evite aceptar código que sea difícil de seguir o tardaría más tiempo en refactorizarse que volver a escribir.
- Prefiere el código que está bien documentado e incluye comentarios claros.
- Consulte Mejora de la legibilidad y el mantenimiento del código para obtener indicaciones y sugerencias sobre la revisión y refactorización del código generado.
Ejemplos de indicaciones
What are some readability and maintainability issues in this code?How can this code be improved for clarity and simplicity? Suggest an alternative structure or variable names to enhance clarity.How could this code be broken down into smaller, testable units?
4. Examinar las dependencias
Esté atento a los nuevos paquetes y bibliotecas.
- Compruebe si existen dependencias sugeridas y se mantienen activamente. Tenga en cuenta los orígenes y colaboradores de las nuevas dependencias para asegurarse de que proceden de orígenes de confianza y no competidores.
- Revise las licencias. Evite introducir código o dependencias incompatibles con la licencia del proyecto (por ejemplo, AGPL-3.0 en un proyecto con licencia MIT o dependencias sin licencia declarada).
- Tenga cuidado con los paquetes alucinados o sospechosos (como los paquetes que no existen realmente) o la slopsquatting (un ataque teórico en máquinas virtuales que usan paquetes falsos o malintencionados).
-
[AUTOTITLE](/copilot/tutorials/copilot-chat-cookbook/communicate-effectively/creating-templates) muestra cómo Copilot puede ayudar con la configuración de dependencias, pero se recomienda comprobar siempre los paquetes sugeridos usted mismo. - Use Referencia al código de GitHub Copilot para revisar las coincidencias con código disponible públicamente.
Ejemplos de indicaciones
Analyze the attached package.json file and list all dependencies with their respective licenses.Are each of the dependencies listed in this package.json file actively maintained (that is, not archived and have recent maintainer activity)?
5. Identificar problemas específicos de la inteligencia artificial
Las herramientas de inteligencia artificial pueden cometer errores únicos.
- Busque API alucinadas, restricciones ignoradas o lógica incorrecta.
- Presta atención a si hay pruebas eliminadas o omitidas, en lugar de corregidas.
- Sea escéptica del código que "parece correcto", pero no coincide con su intención.
- Vea Depuración de JSON no válido como ejemplo de detección de errores sutiles y depuración con Copilot.
Ejemplos de indicaciones
What was the reasoning behind the code change to delete the failing test? Suggest some alternatives that would fix the test instead of deleting it.What potential complexities, edge cases, or scenarios are there that this code might not handle correctly?What specific technical questions does this code raise that require human judgment or domain expertise to evaluate properly?
6. Uso de revisiones colaborativas
El trabajo en pareja y los aportes del equipo ayudan a detectar problemas sutiles.
- Pida a los compañeros de equipo que revisen los cambios complejos o confidenciales.
- Use listas de comprobación para asegurarse de que se tratan todos los puntos de revisión clave (funcionalidad, seguridad, mantenimiento).
- Comparta indicaciones y patrones exitosos para el uso de IA en todo el equipo.
- Consulte Comunicación eficaz para ejemplos de cómo trabajar colaborativamente con Copilot y documentar resultados.
7. Automatice lo que puede
Deje que las herramientas controle el trabajo repetitivo.
- Configura las comprobaciones de CI para estilo, análisis de código y seguridad.
- Utiliza Dependabot para actualizaciones y alertas de dependencias.
- Aplique CodeQL o escáneres similares para el análisis estático.
-
[AUTOTITLE](/copilot/how-tos/get-code-suggestions/find-matching-code) muestra cómo Copilot puede ayudar a realizar un seguimiento de los patrones de código y automatizar las tareas de búsqueda. - Considere si los agentes de inteligencia artificial con funcionalidades de razonamiento pueden ayudar a automatizar partes del proceso de revisión. Por ejemplo, cree un agente de revisión automática que evalúe los borradores de las solicitudes de extracción según sus estándares, verificando la precisión, el tono adecuado y la lógica empresarial antes de solicitar la revisión humana.
8. Mantener la mejora del flujo de trabajo
Adoptar nuevas herramientas y técnicas de inteligencia artificial puede hacer que el flujo de trabajo sea aún más eficaz.
- Documente las mejores prácticas para revisar el código generado por IA.
- Anime a los "campeones de inteligencia artificial" en su equipo a compartir sugerencias y flujos de trabajo.
- Actualice las guías de incorporación y contribución para incluir las técnicas y los recursos de revisión de inteligencia artificial. Use un
CONTRIBUTING.mdarchivo en el repositorio para documentar sus expectativas de contenido y código fuente generado por IA, consulte Configurar pautas para los colaboradores de repositorios. - Haga referencia a Recetario de GitHub Copilot Chat para inspiración y comparta recetas útiles en los documentos del equipo.
Lectura adicional
-
[Supervisión humana en revisión de código moderno](https://resources.github.com/enterprise/human-oversight-modern-code-review/) en GitHub Recursos