Skip to main content

Inicia sesión en CleanKata

Sigue tu progreso, gana XP y desbloquea todas las lecciones.

Al iniciar sesión aceptas nuestros Términos de uso y Política de privacidad.

Calistenia de Objetos

Nueve reglas para transformar cómo escribes código orientado a objetos.

9 lecciones

Usa Colecciones de Primera Clase

Cualquier clase que contenga una colección no debe tener otras variables miembro — envolver las colecciones da a los filtros, ordenaciones y reglas un hogar semántico y cohesivo.

Ganar +70 XP7 min

Mantén Todas las Entidades Pequeñas

Ninguna clase supera 50 líneas, ningún paquete supera 10 archivos — las clases pequeñas caben en una pantalla, fuerzan el enfoque y se organizan naturalmente en paquetes cohesivos.

Ganar +60 XP6 min

No Abrevies

Las abreviaciones enmascaran problemas más profundos — si un nombre es demasiado largo para escribir completo, el método tiene demasiadas responsabilidades. Los nombres deben ser una o dos palabras claras.

Ganar +50 XP5 min

No Uses la Palabra Clave Else

Reemplaza if/else con cláusulas de guarda y retornos tempranos — else es generalmente señal de un flujo poco claro que puede simplificarse en una secuencia directa.

Ganar +60 XP6 min

No Uses Getters/Setters/Properties

Di, no preguntes — en lugar de obtener datos para tomar decisiones fuera del objeto, dile al objeto qué hacer y déjalo usar sus propios datos.

Ganar +80 XP8 min

Un Punto por Línea

Basado en la Ley de Deméter — no atravieses las partes internas de un objeto. Pide al objeto que haga el trabajo en lugar de navegar sus partes.

Ganar +70 XP7 min

Un Nivel de Indentación por Método

Cada método debe hacer una sola cosa a un nivel de abstracción — las estructuras de control anidadas son señal de extraer un método.

Ganar +60 XP6 min

Sin Clases con Más de Dos Variables de Instancia

Limitar el estado a dos variables de instancia aumenta drásticamente la cohesión — si necesitas más, descompón en una jerarquía de objetos colaboradores.

Ganar +70 XP7 min

Envuelve Todos los Primitivos y Cadenas

Un int o string primitivo no tiene significado de dominio — envolverlo en una clase como Money o Email permite al compilador hacer cumplir la intención y da un hogar natural al comportamiento.

Ganar +70 XP7 min