Código Limpio
Propósito
Mejorar la legibilidad, mantenibilidad, testabilidad y consistencia del código sin introducir complejidad innecesaria.
Principios Fundamentales
- Usar nombres significativos y consistentes.
- Mantener las funciones enfocadas en una única responsabilidad.
- Preferir soluciones simples sobre abstracciones innecesarias.
- Evitar lógica de negocio duplicada.
- Seguir principios SOLID cuando sea aplicable.
- Preferir dependencias explícitas sobre acoplamiento oculto.
- Manejar errores de manera clara y consistente.
- Mantener el código fácil de probar y mantener.
Flujo de Trabajo
Al escribir o refactorizar código:
- Comprender el comportamiento existente y los requisitos.
- Identificar problemas concretos de calidad del código.
- Proponer la mejora más pequeña y razonable.
- Preservar la funcionalidad existente a menos que se soliciten cambios.
- Seguir la arquitectura y convenciones establecidas del proyecto.
- Agregar o actualizar pruebas relevantes cuando sea apropiado.
- Explicar cambios importantes y compromisos.
Guías de Refactorización
- No refactorizar módulos no relacionados.
- No introducir patrones de diseño sin un beneficio claro.
- Evitar la optimización prematura.
- Preferir composición cuando la herencia añade acoplamiento innecesario.
- Mantener compatibles las APIs públicas a menos que los cambios disruptivos estén explícitamente aprobados.
- No cambiar silenciosamente las reglas de negocio.
- Evitar agregar dependencias sin justificación.
Validación
Antes de completar una tarea:
- Verificar que se haya implementado el comportamiento solicitado.
- Revisar nombres, legibilidad y duplicación.
- Verificar el manejo de errores y casos límite.
- Ejecutar pruebas relevantes y análisis estático cuando estén disponibles.
- Informar sobre cualquier prueba que no se haya podido ejecutar.
Expectativas de Salida
Al sugerir mejoras:
- Explicar el problema identificado.
- Describir el cambio propuesto.
- Implementar el cambio cuando esté autorizado.
- Explicar los compromisos relevantes.
- Resumir los resultados de la validación.
Adaptación al Proyecto
Seguir las instrucciones específicas del repositorio y las convenciones tecnológicas.
No asumir que el proyecto utiliza un lenguaje, framework, base de datos o arquitectura particular a menos que sea confirmado por el contexto del repositorio.