Este artículo es el septimo de una series acerca de De cómo aprender python con ChatGPT, en el enlace previo, puedes empezar por el principio si quieres.
Revisiones de Código y
Code Copilot
Como comentamos anteriormente, las revisiones de código son una de las mejores herramientas que tenemos para mejorar nuestras habilidades como programadores. Esta es una práctica muy extendida y todo el mundo está de acuerdo en que mejora notablemente la calidad del código. Los desarrolladores de todos los niveles deberían hacer revisiones de código, ya que, si bien es cierto que los más senior pueden tener más que aportar, los junior pueden hacer preguntas que no solo les ayuden a ellos, sino que también hagan que el código sea más sencillo y fácil de entender. Además, todos tenemos puntos ciegos, y cuanta más gente revise el código, más fiable será.
Cuando trabajamos en un equipo, es fácil implementar este tipo de prácticas, ya que las herramientas para la gestión de código las facilitan. Se pueden añadir comentarios en cada línea de código e incluso bloquear el "merge" del código hasta que un número determinado de miembros del equipo lo haya revisado y aprobado. Pero, ¿Qué pasa cuando estamos programando solos? Aquí es donde las IA nos pueden echar una mano.
En esta ocasión, he querido probar el "Code Pilot" incluido en las versiones de ChatGPT:
Al igual que con "Code Tutor", para utilizarlo hay que ir al menú de la izquierda y pulsar en "Explorar GPT". En la sección de "Programación", veremos "Code Tutor". Una vez que lo abras, a partir de ese momento te aparecerá en el menú de la izquierda.
En sus propias palabras:
El Code Copilot en la sección "Explorar GPT" es una funcionalidad diseñada para ayudar a los desarrolladores a escribir, corregir y mejorar código de manera eficiente mediante inteligencia artificial. Esta herramienta, basada en modelos como GPT, puede sugerir fragmentos de código, autocompletar líneas, detectar errores, y proporcionar explicaciones o alternativas para ciertas implementaciones de programación.
En pocas palabras, es un asistente que acelera el proceso de codificación, ofreciendo recomendaciones inteligentes a medida que el programador escribe, lo cual optimiza el flujo de trabajo y reduce el tiempo que toma desarrollar software o solucionar problemas de código.
Dejo el enlace a la conversación aquí.
Al abrirlo te hace algunas sugerencias:
Como estoy interesado en aprender Python, empiezo con:
/start python
El chatbot responde con una descripción de lo que puede hacer y nos anima a copiar directamente el código para poder ayudarnos. En capítulos posteriores hablaremos sobre las implicaciones de seguridad que esto conlleva, pero por el momento nos centraremos en su utilidad.
También nos ofrece un menú con los comandos básicos disponibles:
Available Commands:
/search [query]: Find real-time information or answers.
/read [urls]: Fetch the contents of a webpage, useful for docs or tutorials.
/quick_fix [issue]: Get an immediate solution with no explanation.
/fix [issue]: Use Rubber Duck Debugging to walk through your code and fix errors.
/explain [code]: Step-by-step explanation of how a code block works.
/review [code]: Get a code review for optimization, readability, or errors.
/help [topic]: More detailed help about me.
Entre las opciones, vemos "review", que es justo lo que estábamos buscando.
El resultado está en línea con lo que hemos estado viendo: Code Copilot realiza un análisis muy interesante. Lo más significativo que encuentra es la duplicidad de código en una función. Esto no es nada novedoso; yo, que vengo del mundo de Java, estoy acostumbrado a que los IDEs, como Eclipse o IntelliJ, hagan este tipo de sugerencias, e incluso te propongan soluciones en forma de refactorizaciones. Sin embargo, el proceso de cambiar el código es tedioso y consume tiempo, mientras que estas herramientas de inteligencia artificial te entregan los cambios ya hechos. Solo hay que copiar y pegar el código, luego volver al IDE y comprobar si todo funciona. Es ahí donde más me ha sorprendido, ya que casi siempre funciona a la primera. Claro, esto es cierto solo para pequeños fragmentos de código. Cuando lo probé con un archivo más grande, falló estrepitosamente. Las mejoras sugeridas eran buenas, pero en el código generado se olvidó de cosas importantes, incluso de sus propias sugerencias. Por ejemplo, el nombre de una de las clases estaba en español, mientras que el resto del código estaba en inglés. La herramienta fue lo suficientemente inteligente para darse cuenta de esto, pero en el código generado no lo corrigió.
Puedes ver los cambios que efectuó en mi GitHub: commit. Hace correcciones incluso en mensajes y comentarios, e intenta ir más allá sugiriendo mejoras como:
a. "¿Te gustaría añadir pruebas unitarias para garantizar que el manejo de errores y las llamadas a la API se comporten como se espera?"
b. "¿Quieres configurar los niveles de registro dinámicamente, según el entorno (por ejemplo, DEBUG para desarrollo, INFO para producción)?"
Estas son justo las sugerencias que un programador junior necesita para entregar un código más maduro.
No hay comentarios:
Publicar un comentario