Encontrar errores en código ajeno o mejorar consultas que ya funcionan puede consumir horas valiosas de trabajo. La buena noticia es que herramientas como GitHub Copilot y ChatGPT permiten acelerar ese proceso de forma notable, tanto para optimizar rendimiento como para detectar y corregir bugs en distintos lenguajes de programación.
¿Cómo mejorar el rendimiento de consultas SQL con inteligencia artificial?
Uno de los primeros pasos para optimizar una base de datos es la creación de índices adecuados. A partir de una consulta que realiza un inner join entre las tablas customer y orders, con un filtrado por fecha y un agrupamiento por company_name, Copilot sugiere índices precisos [01:17]:
- Un índice sobre
order_date, porque es la columna utilizada en el filtro WHERE.
- Un índice sobre
customer_id en la tabla orders, ya que es la columna involucrada en el join.
- Un índice sobre
customer_id en la tabla customer, por la misma razón.
Estas sugerencias coinciden con las mejores prácticas de optimización de bases de datos. La herramienta no solo opera a nivel de sintaxis, sino que comprende la lógica de acceso a datos para proponer mejoras estructurales.
¿Qué diferencia hay entre subconsultas y joins en términos de rendimiento?
Otro ejemplo muestra una consulta que busca detalles de pedidos cuyo producto es "Chai" usando una subconsulta con igualdad directa. Al pedir que mejore la sintaxis y el performance, Copilot propone dos alternativas [02:43]:
- Usar
EXISTS en lugar de la igualdad, lo cual consume menos recursos.
- Reemplazar la subconsulta por un join directo entre
order_details y products, filtrando luego sobre la tabla de productos.
Ambas opciones devuelven el mismo resultado, pero la versión con join resulta más eficiente y legible. Esto demuestra que la IA puede evaluar múltiples estrategias de optimización y ofrecer la más adecuada.
¿Puede la IA detectar errores de agrupamiento en SQL?
Un error frecuente en SQL ocurre cuando las columnas del SELECT que no son funciones de agregación no aparecen en el GROUP BY. Al ejecutar una consulta con este problema, el motor de base de datos lanza un error [04:08]. Copilot identifica la causa y agrega las columnas faltantes al GROUP BY, corrigiendo el problema automáticamente.
Tanto Copilot como ChatGPT y otros modelos LLM que saben escribir código son capaces de entender la intención detrás de una query y detectar errores de sintaxis con precisión.
¿Cómo corregir errores de Python con GitHub Copilot?
En un ejemplo con programación orientada a objetos, se presenta una clase Persona y una clase Estudiante que hereda de ella [05:15]. El código tiene un error muy común: dentro de los métodos, las variables se referencian sin usar self, lo que impide acceder a los atributos de la instancia.
Usando la función quick fix de Copilot:
- Detecta que
nombre debe ser self.nombre.
- Corrige
grado a self.grado.
- Muestra las soluciones propuestas antes de aplicarlas.
Después de aceptar los cambios, el código ejecuta correctamente: "Mi nombre es Juan, tengo veinte años, estoy en grado tercero" [06:48].
¿Cómo usar ChatGPT para depurar código con errores de sintaxis y lógica?
Cuando se prefiere otra herramienta, ChatGPT funciona igual de bien. Un segundo ejemplo en Python presenta una función que calcula el promedio de notas, pero contiene múltiples errores [07:10]:
for notas on notas en lugar de for nota in notas.
- Faltan los dos puntos (
:) después de if, for y definiciones de función.
- Al concatenar texto con números, no se convierten las variables numéricas a string.
Al enviar el código a ChatGPT 3.5 con el prompt "Eres un experto en Python. Ayúdame a detectar y corregir los errores" [07:38], el modelo devuelve el código corregido con explicaciones claras de cada cambio. No es necesario usar versiones superiores del modelo para tareas sencillas, lo que permite ahorrar recursos.
El resultado final ejecuta sin problemas: promedio de 72, estado aprobado.
¿Qué es el pair programming con inteligencia artificial?
Esta técnica se conoce como pair programming [09:16]: programar junto a un par evaluador que, en este caso, es una inteligencia artificial en lugar de otra persona del equipo. El concepto está creciendo constantemente y permite que cualquier desarrollador, científico de datos o miembro técnico de un equipo mejore su productividad al escribir, revisar y corregir código de forma más ágil.
¿Ya probaste el pair programming con IA? Comparte en los comentarios cómo piensas integrarlo en tu flujo de trabajo.