Many thanks to Tristan Morris for creating a beautiful illustrated hardcover print edition of the site

tcc-case-title
muy geeky  muy geeky

Caso 134

Hielo fino

El monje Djishin se volvió desanimado de trabajar duro en proyectos oscuros para el Clan de un Zapato, muy alejado del ajetreo de la vida del templo. Él le pidió al maestro Banzen un trabajo más significativo.

Dijo Banzen, “Puedo pensar en una aplicación cuya base de código creció confundida durante los años, debido a sus varios dueños. Sospecho que oculta mucha basura que puede ser limpiada.”

Cuando Banzen examinó la refactorización de Djishin halló el código bien organizado y enormemente simplificado. La reducción más dramática estuvo en el número de las clases Data Transfer Object.

“Retuve sólo aquellas clases que mapean directamente las tablas de las bases de datos,” explicó Djishin orgullosamente. “Mira, aquí hay una consulta que une las tablas Campaña, Soldado, y Especialidad, trayendo sólo dos columnas de cada una. Antes había un DTO cuyo único propósito era devolver los seis valores de cada fila—¡vergonzoso! Ahora la consulta devuelve una lista de instancias de Campañas, cada una conteniendo una lista de Soldados, y cada una conteniendo una lista de Especialidades. Es cierto, la capa de presentación debe ahora atravesar esos objetos, pero son comunes a lo largo de la aplicación y será familiar para quienes trabajen con ella.”

Banzen acarició su barba. “Adoptaste los caminos del Mapeo Objeto-Relacional, en una plataforma de tu idea. Soy familiar con las virtudes de este enfoque, pero también con sus vicios. Esas tres tablas tienen veinte columnas cada una; los objetos de dominio que las reproducen también tienen veinte campos. Así que en vez de traer seis columnas por fila, ¿estás trayendo sesenta? ¿O ejecutas la consulta en tres fases? ¿O empleas alguna cache?”

“Ninguna de estas opciones,” dijo Djishin con satisfacción. “Sólo traigo las seis columnas originales, más las claves primarias. Todos los demás campos en los objetos de dominio simplemente se los deja sin inicializar.”

Banzen suspiró y buscó su bastón.

- - -

Djishin se despertó afuera con un fuerte dolor de cabeza, cubierto por una manta de nieve recién caída. Estaba sólo en medio de un campo plano perfecto rodeado de pinos grandes. Todo brillaba de blanco en la luz de la mañana, y unas pocas ráfagas aún estaban girando por el aire.

A sus pies un palo largo había sido encajado en el piso. Una nota estaba atada en el medio. Djishin la desenrolló.

Ordené al Clan de un Zapato que quite toda la basura del basural del templo. ¿No está bonito ahora?
Tristemente, eso dejó atrás muchos hoyos profundos que requerían mucho esfuerzo para llenarlos, así que cubrimos las superficies muy astutamente con la capa más fina de ramas y hojas. Como una buena nevada fue pronosticada para esta tarde, espero que te despiertes ante una imágen de perfección.
Fíjate donde pisas,
B.