Alberto Gutierrez nos comparte su punto de vista sobre lo que es la característica fundamental del Buen Código: la simpleza. El código simple es fácil de leer y fácil para cambiar. Y como es simple, es menos propenso a errores (mientras más complejo sea el algortimo que creamos, más probable que nos equivoquemos).
Como dicen: "No hay problemas dificiles, sólo soluciones difíciles". Así que cuando nos pongamos a escribir código tengamos presente los siguientes 7 consejos.
El código simple no necesita documentación adicional para comprenderlo, o sólo necesita una documentación mínima.
El código es intuitivo para usar, sin importar quién lo use.
La simplificación significa que no hay lógica duplicada. Un cambio debería impactar una única parte del código.
A muchos desarrolladores les encanta usar tecnologías, herramientas y frameworks sólo para hacer que el proyecto sea más "copado". Cada vez que agregamos una herramienta externa estamos agregando complejidad adicional, y la complejidad adicional significa que es más dificil de comprender, de mantener y de equivocarse.
Si no se ve simple, no es simple! Una forma de saber si el código es simple es, al terminarlo, quedarnos sorprendidos de lo simple que era la solución, y preguntarnos cómo fue posible que nos llevara tanto encontrarla.
El código sólo hace lo que es necesario, y nada más. Creo que la mayoría de los desarrolladores experimentados saben que es imposible anticiparl os problemas futuros.
El código no utiliza indirecciones innecesarios; las operaciones más importantes sólo necesitan de una invocación a algún método.
La clave para producir código simple es el refactor continuo, que sólo puede lograrse con las pruebas continuas.
Vamos a necesitar un refactor continuo porque cada vez que agregamos una nueva línea a nuestro algoritmo lo estamos haciendo más complejo. Por lo tanto, cada tanto vamos a necesitar hacer un refactor para que vuelva a ser simple.
Y necesitamos muchas pruebas para hacer tanto refactor, porque si no tenemos una red de seguridad vamos a agregar muchos errores al sistema.