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.
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.
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.
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.
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.
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.
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.
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.
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.