Los profesionales del desarrollo de software son, en muchas ocasiones, autodidactas obligados a una constante evolución para no quedarse obsoletos en un mundo que cambia a velocidad de vértigo, produciendo nuevos lenguajes, componentes y herramientas cada día.
En medio de estos cambios, al menos podemos estar seguros de que algo no pasará de moda: las buenas prácticas, que cada vez se van definiendo y valorando más, a medida que la profesión madura y se consolida.
Ahora bien, si buscamos información sobre buenas prácticas, encontraremos múltiples recomendaciones, principios, acrónimos. Se hace difícil recordarlos todos o escoger cuáles son los más importantes para aplicarlos en el día a día.
Un día, navegando por internet, di con un breve pero interesante artículo de Martin Fowler (conocido por su libro Refactoring), donde explica cuatro reglas sobre el diseño de aplicaciones, definidas por Kent Beck (padre del TDD y del Extreme Programming) y quizás reinterpretadas por Fowler.
Estas cuatro reglas me encantaron porque son fáciles de recordar y son una excelente guía para crear buenas aplicaciones. Según ellas, una aplicación de diseño sencillo (o de buen diseño, diría yo) se caracteriza porque:
Pasa los tests
Revela intención
No hay código duplicado
Tiene los mínimos elementos necesarios
Las explicaré en orden inverso:
La cuarta regla me parece que es la que más encaja con el término de “diseño sencillo”. Si una aplicación tiene menos elementos, será más fácil de entender, de mantener y habrá menos puntos que puedan fallar.
La tercera regla está relacionada con la cuarta, porque cuando eliminamos duplicación estamos simplificando la aplicación. Además, cuando una aplicación tiene código repetido, es fácil caer en la trampa de realizar una modificación en una parte de la aplicación, y olvidar hacerla en la parte duplicada, dejando una inconsistencia peligrosa.
La segunda regla es mi favorita. Insisto en ella cada vez que imparto clases. Cuando leemos el código de un programa, debe estar claro qué está haciendo. Los nombres de los componentes, clases, funciones y variables deben ser claros, precisos, bien escogidos (¡esto es todo un arte!). La secuencia de instrucciones debe tener sentido y deberían ser evidentes incluso para alguien que no haya trabajado nunca con la aplicación.
La primera regla destaca la importancia de los tests. Aunque las demás reglas son igualmente importantes, al final, el objetivo de un programador es que una aplicación funcione como se espera, y no hay manera más evidente de asegurarlo que escribir tests.
Las buenas prácticas son cada vez más valoradas en el mundo del software, y la escritura de tests se está convirtiendo en un requisito indispensable para todo buen profesional. En el Curso de Testing con Java aprenderás los beneficios de los tests, cómo escribirlos y técnicas en auge como el TDD.
Recomiendo leer el libro Código Limpio.