Recientemente, he realizado una kata en Java, que consistía en implementar un parseador de plantillas.
Existe un método que recibe como parámetros la plantilla (String) a parsear, y un diccionario (Map) con todas las claves que vamos a sustituir en la cadena anterior. Es éste método el encargado de cambiar cada variable en la cadena por cada variable en el diccionario.
Para el desarrollo del ejercicio, seguí la metodología de TDD, por lo que primero expuse una serie de casos en los que se definen como se debería comportar éste parseador testando la salida que devuelve con lo que esperamos, y poco a poco, realizando un test y el código justo y necesario para cada caso, fui viendo como llevar casos muy específicos hasta casos muy generales, llegando hasta la iteración sólo en el momento necesario, para no tener a una solución muy complicada desde el principio por intentar precipitarse en generalizar cuando solo necesitamos cubrir un caso específico.
Desarrollar de ésta forma, me aporta el control del problema, además, me brinda tanto la seguridad de que estoy creando una solución funcional como simple y legible. Gracias a que fue desarrollada en su mayoría en pair programming se pudo exponer una serie de casos de prueba que cubrían muy bien el método a testear.
Por aquí comparto mi desarrollo en la kata mediante un repositorio de GitHub.
TemplateEngineKata(https://github.com/raulpadilladelgado/TemplateEngineKata)