10 reglas que uso para que Cursor, Claude Code o ChatGPT entreguen código de calidad
Date Published
Esta tarde he encontrado mi primera factura de Cursor, que data de septiembre del 2024. Me ha hecho darme cuenta de que hace más de un año desde que me entregué al futuro que viene y empecé a integrar completamente la IA en mi día a día. Antes de eso había usado ChatGPT para hacerle preguntas sobre una función que no funcionaba bien, entender algún error que aparecía en consola o generar tests y mock data. Cosa poco seria comparado con lo que hago ahora.
Pero para mi, en ese momento realmente me entregué a la IA porque ya no la usaba solo como un apoyo, sino que empezó a ser una parte nuclear de mi trabajo. Tengo que reconocer que hoy en día escribo poco código, pero soy 10 veces más productivo sin lugar a dudas. Para llegar a ese punto he tenido que aprender como usar esta herramienta de manera efectiva, y hoy quiero compartir contigo las 10 reglas que me han servido para mejorar considerablemente la calidad del código que obtengo.
1. Lee completamente todos los ficheros que afectan al problema que vas a resolver, antes de hacer cualquier modificación
Los agentes están instruidos para optimizar recursos, así que cuando le pidas algo van a ir a las líneas de código que afectaban directamente a esa solicitud, y eso tiene el riesgo de que obvien el contexto. Esto es un problema porque lo más probable es que en la pieza de código que quieres modificar haya un método que invoca a una función en otro fichero, que a su vez usa funciones de otros ficheros.. así que pare poder entender bien todo lo que ocurre forzamos a léerlo todo antes de hacer nada
2. Pregunta por cualquier aclaración que consideres relevante en lugar de hacer cualquier asunción
Esta es una de las reglas que más han mejorado la calidad del código que me entregan Cursor y Claude Code. Ten en cuenta que estas herramientas usan un LLM como motor, que al final sirve para "generar" texto, por lo tanto lo más natural es que rellenen esos huecos que quedan indefinidos con lo que sea que crea que puede encajar, y esto es de lo que más ruido mete en el código.
3. NO hagas refactor a no ser que te lo pida explícitamente
Muy importante establecer esta norma para que la IA no modifique código que no esté relacionado con lo que estamos trabajando.
4. Planifica antes de programar
Para mi esto no es solo una regla para la IA, si no para cualquier persona que vaya a resolver un problema. Recuerdo que en el colegio me enseñaron en clases de matemáticas que para resolver un problema eficientemente había que: 1) leer el enunciado y entenderlo, 2) buscar los datos de los que dispongo, 3) plantear la estrategia para resolverlo y 4) resolverlo
Pues aquí es lo mismo. Además, esto no es solo una instrucción que se haga una vez, sino una fase en la que debes dialogar con la IA para aterrizar el problema, definir estrategias
5. Aplica los principios SOLID.
Fundamental para tener un código que se pueda mantener y escalar; porque aunque lo esté haciendo una IA, en algún momento tendrás que leerlo y actuar sobre el. ¡No más métodos y ficheros que hagan veinte cosas!
6. Apóyate SIEMPRE en los agentes que tienes a tu disposición y que puedan ayudarte a resolver el problema en el que estés trabajando.
Con esta instrucción consigo 2 cosas principales; que se definan tareas bien acotadas por área de experiencia, (por ejemplo, que un agente experto en UX defina un botón, y otro experto en frontend lo implemente) y que de inicio se planteen tareas que potencialmente pueden ejecutarse en paralelo para que se puedan completar más rápido.
7. NUNCA dejes ficheros "basura" en los que te apoyes; tests, backups...etc
Si has trabajado con Cursor seguro que esto te suena; le pides que implemente una feature, o resuelva un error, y aparte de hacerlo te crea 8 ficheros entre tests, documentación...etc que ha ido usando durante el proceso. Pues de esta forma le decimos que solo deje los ficheros que implementen lo que le hemos pedido.
8. NO añadas comentarios a no ser que sean JSDoc para documentar o TODOs para recordar tareas pendientes
Parece que la IA tiene arraigada una fuerte vocación educativa y va añadiendo comentarios de absolutamente TODO lo que hace. A mi personalmente me molesta, porque creo que el código mejor documentado es el que se lee fácilmente (por eso lo de los principios SOLID).
Así que quiero comentarios fuera. Solo permito aquellos que me sirvan para documentar el código (me encanta poder leer la explicación de qué hace un método y cómo se usa cada parámetro) y comentarios para indicar que hay algo que queda pendiente por hacer. Desde que uso esta regla mi código es bastante más limpio.
9. SIEMPRE que vayas a trabajar con fechas, COMPRUEBA la fecha y hora del sistema para asegurar que coincide con tu asunción
Eso de usar la fecha para ordenar cronológicamente ficheros lo lleva bastante mal la IA. En especial, cada vez que se creaba una migración para la base de datos era un desastre, porque le ponía la fecha que le daba la gana. Pero la solución es bastante sencilla; ¿necesitas una fecha? mira a ver que día es hoy en el sistema. Cero errores en este aspecto desde que uso esta instrucción.
10. NUNCA ejecutes 'git add ', 'git commit' o migraciones en base de datos. Si crees que es necesario, pídeme confirmación
Soy consciente de que normalmente los sistemas preguntan que si pueden ejecutar algunas instrucciones, pero venga ya; no voy a dejar de picar código para estar esperando a que salga un botón y darle a aceptar. Así que le digo lo que no puede hacer, y el resto está restringido con esta instrucción.