En esta charla de RailsConf 2014, la programadora y autora Sandi Metz propone una idea central: cuando el código orientado a objetos se vuelve difícil de mantener, la solución suele ser hacer cosas más pequeñas — clases más cortas, métodos más breves y con el menor conocimiento posible entre ellos. A partir de esa premisa, Metz analiza el conocido kata Gilded Rose, un caso real de producción con un método tick de 43 líneas formado por condicionales anidados, cadenas y números mágicos. La métrica Flog otorga a esa clase una puntuación de complejidad de 50, con 45 atribuidos al único método, evidencia objetiva de que el fragmento resulta difícil de leer y razonar.
Metz introduce además el «squint test», una técnica visual para detectar problemas: los cambios de forma en el código revelan condicionales anidados, siempre costosos de entender, mientras que los cambios de color señalan saltos entre niveles de abstracción distintos, lo que dificulta seguir la historia que cuenta el código. Con ese diagnóstico, la charla muestra estrategias concretas para reemplazar condicionales complejas por pequeños objetos, cada uno con una responsabilidad clara, siguiendo principios de diseño orientado a objetos como el principio de responsabilidad única y la ocultación de información. El objetivo es pasar de bloques monolíticos difíciles de testear a un diseño modular, reusable y barato de modificar, aplicable más allá del kata a cualquier aplicación Rails heredada.
