22-09-2006 Luis Artola
He estado leyendo dos nuevas revisiones que Martin Fowler está haciendo del patrón que conocemos como Model View Controller. Ambas revisiones son muy interesantes. No las analizaré aquí porque para eso ya tenéis el bliki de Martin, donde él lo explica de forma inmejorable (leed los links del final).
Por encima de todo eso, lo que sí que me parece muy interesante comentar, es cómo se están revisando todos los patrones. Los patrones clásicos fueron pensados antes de la formulación de la Programación Extrema y el principio de Test First con testeo unitario. Yo, actualmente, aplico testeo unitario sobre todas las clases que programo (aunque no lo hago primero “test first”), y conozco bien los quebraderos de cabeza que dan algunos diseños a la hora de testearlos porque, repito, esos diseños fueron creados antes de la idea de testeo unitario.
Por eso, Martin y los suyos, ahora revisando todos los patrones. Comenzando por la idea de Inyección de dependencias, que separa las lógicas de los objetos relacionados para poder testearlos mejor, como Pasive View y Supervising Controller, que tratan de aislar totalmente la lógica de negocio de la aplicación de la lógica de navegación.
En el caso de Pasive View, que es de los dos patrones el que mejor comprendo, dejaremos una “vista tonta” cuyo control dependerá totalmente de un Controller que incluirá parte de la lógica que antes se encontraba en las vistas. Ésta separación más extricta, facilitará el testeo unitario.
Conclusión: los patrones se están refactorizando para soportar mejor el testeo unitario. Pronto el desarrollo de software no se entenderá sin él.
Los links: