code review herramientas ia glboalcobots

Code review con IA

Code review con IA

No siempre tienes a alguien que revise tu repo, y pedir ayuda cada vez puede ser incómodo o poco práctico.
No siempre tienes a alguien que revise tu repo, y pedir ayuda cada vez puede ser incómodo o poco práctico.

Introducción

Mejorar como desarrollador no es solo cuestión de escribir más código. Lo difícil empieza cuando ese código “funciona”, pero no sabes si está bien hecho. Ahí es donde el feedback marca la diferencia. Pero claro, no siempre tienes a alguien que revise tu repo, y pedir ayuda cada vez puede ser incómodo o poco práctico.

Así que me hice una pregunta: si la IA ya escribe parte de mi código… ¿podrá también dar buen feedback sobre él?

Decidí probarlo.

  • Tomé varios de mis repos públicos y los pasé por herramientas de análisis basadas en IA. La idea era ver si podían señalarme errores, sugerencias de estilo, mejoras en rendimiento o estructura, como lo haría un revisor humano.
  • En este artículo te cuento qué usé, qué encontré, cómo puedes automatizarlo en tus flujos de CI/CD y, sobre todo, si este tipo de feedback realmente ayuda a crecer como desarrollador.

Porque, seamos sinceros, revisar tu propio código es como leer lo que escribiste ayer por la noche. Si, en tu cabeza sonaba mejor.

Tener una segunda opinión —aunque venga de un modelo entrenado con millones de líneas de código— puede darte una perspectiva que tú, enfrascado en tus propias decisiones, no ves.

¿Está claro lo que hace cada función?

¿Hay código repetido que podrías abstraer?

¿Estás siguiendo las buenas prácticas del lenguaje?

Y lo más interesante no es solo el resultado puntual de ese análisis, sino cómo puedes integrar ese feedback en tu día a día.

¿Podrías automatizarlo cada vez que haces un push?

¿Podrías recibir recomendaciones en cada pull request?

¿Puede la IA ayudarte a mantener un estándar de calidad en tus proyectos personales o profesionales sin depender de terceros?

Te lo cuento.

Herramientas que usé para analizar mis repos

Empecé por lo más directo: subir archivos a ChatGPT y preguntarle sin rodeos: ¿Qué mejorarías en este código? Así, directamente.

Para mi sorpresa, la respuesta fue bastante útil. Comentarios sobre funciones demasiado largas, nombres de variables poco claros y hasta sugerencias de refactorización. Y lo mejor: sin juicio. Solo observaciones, recomendaciones y algún que otro “ojo con esto” que uno agradece. Pero claro, subir manualmente cada archivo puede volverse tedioso, así que empecé a explorar otras herramientas más enfocadas.

Usé GitHub Copilot Chat directamente en VS Code, el asistente que llevo usando desde hace tiempo, lo que me permitió revisar partes del código en contexto, sin tener que salir del entorno. Aquí el punto fuerte fue la interacción rápida: bastaba con seleccionar una función y preguntar si se podía mejorar. También probé CodeWhisperer, que si bien está más centrado en la escritura asistida, me dio algunas sugerencias útiles sobre buenas prácticas y estructura.

Luego pasé a herramientas más serias de análisis estático, como SonarQube. Estas sí que no se andan con rodeos: te dan informes completos, con puntuaciones, categorías de errores, duplicaciones, posibles bugs y recomendaciones alineadas con las mejores prácticas del lenguaje que estés usando. Lo más parecido a tener un equipo de calidad revisando tu código línea por línea.

Y como el proceso de subir manualmente los archivos o copiar fragmentos se volvía repetitivo, me monté unos scripts en Python para automatizarlo un poco: generaban un resumen del repositorio (archivos clave, número de líneas, dependencias, funciones principales, etc.) y se lo pasaban como contexto a la IA. Porque seamos honestos, soltarle un main.py de 900 líneas a una IA sin explicaciones…es como tirarle un diccionario y pedirle que te haga un resumen.

¿El resultado?

En cuestión de segundos tenía observaciones que parecían sacadas de una revisión a fondo hecha por un senior con café de más y tiempo libre de menos. No todas las sugerencias eran perfectas, pero muchas apuntaban justo a detalles que yo ya sospechaba… y otros que ni se me habían ocurrido.

Comentarios de estilo, rendimiento y estructura 

La IA no se anduvo con rodeos. A diferencia de un compañero que puede suavizar la crítica con un “no está mal, pero…”, aquí el feedback iba directo al grano. Y oye, se agradece.

herramientas low code globalcobots

Aquí algunos ejemplos reales que me soltó sin pestañear:

  • “La función procesar_datos hace demasiadas cosas a la vez.” Bien, vale… sí. También hace café si le das tiempo. Tenía sentido: esa función estaba cargando datos, limpiándolos, transformándolos y hasta generando un gráfico. Todo en uno. Era más un procesar_todo_y_esperar_que_no_pete. Gracias.
  • “Estas variables x, y, z no explican nada del propósito del código.”Touché. En su momento pensé que eran nombres “temporales”, pero claro… ahí seguían tres meses después.
  • Podrías usar un diccionario en lugar de estos if encadenados.”Le di la razón. Y me reí. Porque era justo el tipo de consejo que yo daba cuando revisaba código ajeno hace un tiempo atrás. Ironías de la vida.
  • “Este bloque se repite varias veces, ¿has pensado en abstraerlo a una función?” Sí, IA, lo había pensado… pero lo olvidé entre commits. Gracias por recordármelo.
  • “Añade docstrings para describir la intención de cada función. Te lo agradecerás en una semana.” Y tenía razón otra vez. Incluso, cuando estaba de humor, me soltaba docstrings con emojis, no falla.

Lo interesante es que no solo se fijaba en errores típicos de sintaxis o en el uso de buenas prácticas, sino que también apuntaba a aspectos más profundos del diseño del código. 

En resumen, fue como tener a un reviewer incansable y un poco sarcástico, que siempre te devuelve algo útil y que nunca se cansa de decirte que puedes hacerlo mejor.

Comparación con feedback humano 

He tenido la suerte de contar con compañeros que revisaron mi código en distintos momentos, y eso me dio una buena base para comparar.

¿Qué tan diferente es el feedback de una IA respecto al de una persona?

 

En muchos casos, la IA coincidía bastante: señalaba funciones que hacían demasiado, nombres de variables poco claros, estructuras que podían simplificarse… Lo típico que te dice un colega cuando ya lleva un café encima y algo de paciencia. Incluso noté que algunas observaciones eran prácticamente idénticas, como si la IA hubiera hecho prácticas en el mismo equipo.

Pero en otros casos, las diferencias fueron claras.

Una vez, la IA marcó como “innecesario” un fragmento de código que estaba ahí a propósito, para hacerlo más legible. Era redundante, sí, pero también más comprensible para otros (o para mí dentro de tres semanas cuando ya no recuerde ni qué hacía el script). Un humano probablemente lo habría valorado. La IA, en cambio, solo vio ineficiencia.

También noté que a la IA le cuesta entender el contexto emocional o pedagógico del código. En uno de mis repos de ejercicios para enseñar a otros, sus sugerencias iban todas orientadas a rendimiento y concisión, ignorando que lo importante allí era que el ejemplo fuera claro, no rápido ni elegante. Como explicarle a alguien que lee por primera vez un for que mejor lo haga con una list comprehension… pues no.

El resultado: 

  • La IA es rápida, objetiva y está despierta a cualquier hora.
  • El humano entiende tu intención, tu estilo y tu contexto.

Juntos, son un combo bastante potente.

Cómo automatizar estos análisis en CI/CD 

Una vez que vi lo útil que era tener la IA revisando el código automáticamente, decidí llevar la automatización un paso más allá: ¿y si este análisis pudiera ejecutarse cada vez que subo un cambio a mi repositorio? Para lograrlo, recurrí a herramientas como GitHub Actions, una de las muchas que forman parte del ecosistema DevOps que nos ayudan a integrar y automatizar procesos dentro del ciclo de desarrollo.

code review con ia

Monté un workflow sencillo para un proyecto de análisis de datos, de modo que cada vez que hago un push o un pull request al repositorio, se activa una serie de pasos automáticos. Primero, el sistema revisa que el código esté bien estructurado y libre de errores básicos usando linters. Luego, ejecuta los scripts de análisis de datos, como si estuviera haciendo el trabajo por mí. Al final, se genera un reporte con los resultados del análisis, que incluye estadísticas y visualizaciones.

Lo más práctico de todo es que, al finalizar, el sistema me envía ese reporte directamente a mi correo electrónico. Así, sin tener que hacer nada extra, recibo un resumen automático de los resultados, ¡y todo el proceso ocurre en segundo plano! Esto no solo ahorra tiempo, sino que también asegura que siempre tengo acceso a los resultados más recientes sin tener que preocuparme por la ejecución manual.

¿Sirve realmente para mejorar como dev?

apps code review low code Hagen llm

Porque incluso el Caballero Oscuro necesita pasar un linter antes de lanzar a producción.

Después de varias pruebas, mi conclusión rápida es que sí sirve, pero con criterio.

Pedirle feedback a una IA ha sido como tener un revisor que no duerme, no se distrae con notificaciones y no te dice “ahora no puedo, lo veo luego”. Me ayudó a detectar errores comunes, a escribir pensando en quien va a leer el código (aunque sea un modelo de lenguaje) y a ganar confianza en mis decisiones técnicas. Pero como todo, tiene matices.

Por ejemplo, una vez la IA me sugirió eliminar un gráfico de barras que ocupaba media pantalla. Según ella, “no aporta información relevante”. El problema es que ese gráfico era la presentación. Lo había hecho así para que un cliente entendiera de un vistazo el impacto de las ventas por región. Claro, desde la lógica puramente técnica, parecía innecesario… pero desde lo humano, era clave.

Otro día me marcó como “mala práctica” una celda donde definía una función dentro de un bucle. ¿Por qué? Porque según su lógica, eso era ineficiente. Lo que no entendió es que estaba dentro de un ejemplo didáctico para explicar closures, y la intención era precisamente esa.

Y luego están las joyas como: “Evita nombres de variables como df_final_FINAL_bueno.” Tiene razón. Pero dime tú cómo nombrar al sexto dataframe refinado sin perder la cordura.

En resumen, la IA es una gran herramienta para mejorar como desarrollador, si sabes cómo usarla. No como juez final, sino como ese espejo incómodo que te muestra lo que podrías estar pasando por alto. Te ayuda a revisar con más objetividad y te entrena para pensar como alguien que lee tu código por primera vez. Lo importante es mantener el criterio humano, entender cuándo ignorar una sugerencia y cuándo vale la pena ajustarla.

¿La mejor parte? Puedes automatizarlo y tener siempre a tu robot revisor esperando pacientemente. ¿La peor? Que a veces te diga verdades que duelen…pero te hacen crecer.

Comparte esta noticia si crees que puede ser interesante. Gracias por leernos.

Entradas relacionadas