Características de un buen programa
"Yo codeo", "Estamos codeando con los muchachos", "El finde me dedico a codear". Seguramente hemos escuchado estas expresiones o incluso las hemos usado para referirnos a cuando programamos, pero... ¿programación es sinónimo de codificación? No.
La finalidad de un programa es realizar algún proceso sobre ciertos datos para obtener ciertos resultados. La preparación de un programa implica aspectos como: ¿Para qué sirve el proceso que se desea representar?, ¿qué datos usará, qué resultados producirá y cómo se realizará el proceso sobre los datos para obtener los resultados esperados? Una vez identificado lo anterior, se procede a diseñar la manera como la computadora deberá hacerlo, tomando en cuenta su estructura interna y su funcionamiento. Hasta ese momento no hemos escrito una sola línea de código, solo tenemos diseñado el Algoritmo, que es la representación de la solución, pero una vez hecho esto ya podemos proceder a codificar el programa en un lenguaje que la computadora pueda interpretar (lenguaje de programación).
Ok, una vez entendido que codear no es necesariamente programar, pensemos en lo siguiente...¿Qué características debe tener un buen programa?
Este punto debe interesarnos mucho si queremos ser profesionales del desarrollo, ya que un programa bien escrito no solo operará correctamente, sino que hablará bien de nosotros.
Hablemos de ello entonces...
Características de un buen programa
Operatividad: Lo mínimo que debe hacer un programa es funcionar; es decir, producir los resultados esperados independientemente de cualquier otra característica.
Recomendado por LinkedIn
Legibilidad: Un programa puede hacerse más legible dándole cierto formato al código, utilizando la indentación para reflejar las estructuras de control del programa e insertando espacios o tabuladores. Es conveniente diseñar reglas propias para darle uniformidad a todos los programas. Para ello existen plugins para editores de código que nos ayudan en este aspecto.
Transportabilidad: Un programa transportable es el que puede ejecutarse en otro entorno sin hacerle modificaciones importantes. Mientras menos modificaciones se hagan será más transportable. En el desarrollo web esto podría ser que nuestro código sea soportable en todos los navegadores modernos, por lo que si vamos a usar librerías de terceros estas deben ser compatibles con los diferentes entornos.
Claridad: Esta característica se refiere a la facilidad con que el texto del programa comunica las ideas subyacentes. El programa debe indicar claramente lo que el programador desea. El 80% del tiempo nos pasamos leyendo código de otros y solo el 20% escribiendo el nuestro, por lo tanto debemos tener una coherencia en el nombre de variables, funciones, los comentarios deben ser claros y concisos, etc. Debemos seguir buenas prácticas para favorecer a otros y a nuestro "yo" del futuro.
Modularidad: Dividir el programa en un número de módulos pequeños y fáciles de comprender puede ser la contribución más importante a su claridad. Cada módulo debe realizar solo una tarea específica, y no más. Los módulos tienen la virtud de minimizar la cantidad de código que el programador debe comprender a la vez, además de que permiten la reutilización de código.
En fin, la idea es mejorar la manera en que programamos y codeamos, porque de esta forma nos diferenciaremos de otros que, quizás, solo tocan de oído.
Espero te sirvan estos puntos y los compartas con alguno de tus colegas.
Éxitos!