|
Definir qué es elegante a la hora de programar es una cuestión complicada. Al igual que ocurre con la elegancia en el vestir, la elegancia al programar depende de las modas, gustos y la situación concreta de cada momento, pero en líneas generales, intentaremos hacer una lista de cosas que aportan elegancia al código, siempre desde el punto de vista de la humilde opinión de quien escribe estas líneas.
En cualquier ciencia, se entiende la elegancia como una manera de hacer las cosas sencilla, limpia, eficaz, eficiente, robusta y coherente.
-Sencilla: que nadie pueda rebatirnos que existe una solución más simple que la que utilizamos. -Limpia: que se entienda nuestro código con facilidad y no utilice elementos supérfluos. -Eficaz: que haga exáctamente lo que se espera. -Eficiente: que además de ser eficaz, consuma los recursos justos... en especial, memoria y tiempo. -Robusta: que no haya circunstancias que hagan que falle. -Coherente: que tenga un estilo que no desentone con su entorno, que haga las cosas en una línea similar a otras.
Dicho esto, se pueden dar algunas recomendaciones muy genéricas que pueden ayudar a conseguir la elegancia. Por supuesto, los consejos no son para seguirlos... sino para valorarlos en su justa medida y aplicarlos con sentido crítico.
Antes que nada, es necesario hacer hincapié en que la programación de aplicaciones tiene algo de arte, pero mucho de técnica. Los programadores en el mundo real no son (necesariamente) como los que a menudo salen en las películas: huraños, con un aire de sabios locos, y con unos supuestos conocimientos secretos acerca del alma de las máquinas que nadie más sería capaz de entender. Aunque esa imagen bucólica sea válida para mucha gente, la realidad es bien distinta. Las aplicaciones de calidad son programadas por mucha gente trabajando en equipo, cada uno en pequeñas piezas que deben encajar perfectamente. Incluso en pequeños trabajos, que una sola persona es capaz de llevar a cabo por sí misma es necesario tener un enfoque sistemático, metódico y ordenado. Además, las aplicaciones no suelen programarse y ya está... tienden a crecer, a evolucionar. Para que ese crecimiento pueda llevarse a cabo con éxito es necesaria una cierta técnica y planificación. Aunque buena parte de esa técnica se estudia y otra buena parte (la más grande) se aprende mediante la experiencia, una cierta elegancia desde el principio siempre nos va a ayudar a que el camino sea más facil y los errores que cometamos no sean demasiado estrepitosos.
Una de las frases más manidas en este mundillo cuando se critica un código es "PERO SI FUNCIONA...". Para el ámbito profesional no suele ser suficiente que un código "funcione". Debe hacerlo en las mejores condiciones que sea posible. Debe ser inteligible fácilmente por cualquier otro profesional. Debe ser lo más reutilizable que se pueda. No debe comprometer la estabilidad de ningún otro componente. Debe integrarse lo mejor posible con otros componentes, incluso con los que todavía no han sido programados. Debe responder correctamente a cualquier entrada, y para las que no esté preparado, debe señalizarlo correctamente. La historia del desarrollo del software lleva ya varias décadas. Aprender a programar ya no se puede hacer con fascículos comprados en un quiosco. Una aplicación es ya mucho más que "un programilla".
Con este artículo, comenzamos una nueva categoría de artículos titulada El programador elegante, en la que intentaremos hablar acerca de buenas prácticas en la programación. |