Buenas prácticas
Escribiendo buen código
Antes de lanzarte a la piscina, comenzar a estudiar este lenguaje y escribir tus primeros scripts, viene bien tener algunas normas para lograr obtener un buen código.
¿Porqué?¿No basta con que funcione? Pues no del todo, ten en cuenta que un buen código
- Facilita encontrar los inevitables errores
- Hace más cómodo modificar el script
- Hace más fácil actualizar los scripts
- Otros programadores también pueden trabajar en el programa
Para códigos difíciles y enmarañdos ya está el lenguaje C. Los programas en javascript deben ser fácilmente entendibles por el ser humano.
¿Y esto como se consigue? Pues siguiendo unas buenas prácticas en programación, que no solo valen para Javascript, sino para cualquier otro lenguaje, ncluso son aplicables a las hojas de estilos CSS y el HTML de las páginas web.
La programación tiene un punto de arte y pueden existir múltiples soluciones para un mismo problema. Esto hace que cada programador tenga un cierto estilo que lo caracteriza. Pero en general hay algunas reglas o tips que ayudan aconseguir un buen código.
- Primero proyecta
- Antes de ponerte a escribir código Javascript, escribe tu programa usando lenguaje cotidiano, lo que se conoce como algoritmo. Te permitirá tener una idea clara de lo que vas a hacer y te facilita la buena documentación de tus programas.
- Divide para vencer
- No enfrentes una gran tarea de golpe. Intenta dividirla en pequeñas tareas. Te será más fácil y encontaras una solución más eficiente que si tratas de solucionarlo todo de golpe.
- Comentarios de código
- Todos los lenguajes de programación poseen algún sistema para insertar comentarios en los programas. Sirven para explicar lo que hace el programa. No debe faltar por ejemplo al crear una función o un objeto.
- Comentarios de datos
- No solo el código debe ser explicado, tampoco está de más dejar claro para que se van a usar las variables, con comentarios explícitos o con nombres significativos.
- Código autodocumentado
- Hay que hacer el código claro. Llama a las funciones y variables con nombres relativos a lo que hacen. Si defines una variable para guardar una altura no la llames x, llámala altura. si usas una función para abrir una ventana llámala abreVentana() por ejemplo
- Líneas e instrucciones
- Para tener un código claro y fácil de analizar usa una linea para cada instrucción. No crres bloques de lineas muy comactos que haga difícil un analisis visual.
- Indentados
- Usa las indentaciones, espacios en blanco delante de las lineas del programa, para destacar bloques de código como definiciones de funciones o bloques condicionales o cuerpos de bucles.
- Variables
- Trabaja en modo esctricto: usa el punto y coma al final de cada instrucción y declara las variables que vayas a usar.
- Variables globales
- Minimiza el uso de variables globales (esas que son accesibles desde cualquier parte del programa).
- Preveer
- Siga la máxima de si puede fallar fallará. Si hay que ser muy torpe para provocar un determinado error, ten por seguro que habrá alguien con ese grado de torpeza. Así que siempre que veas un punto donde pueda producirse un error, prevé que hacer cundo se produzca.
- Refactoriza
- Al terminar tu programa vuelve a revisarlo para eliminar posibles errores o mejorar algunas soluciones o completar los comentarios.... Es como darle el pulido final.
Todos estos puntos son opcionales, puedes seguirlo o no. Pero un buen código no solo denota un buen programador sino que logra programas más eficientes.
Javascript no es nada estricto en sus normas. Considera el cambio de linea como el fin de una instrucción y las variables pueden ser usardas sin una declaración (defnición) previa. Detalles como estos hacen que muchos vean Javascript como un lenguaje poco serio.
No obstante existe un modo estritcto ("use strict") que te va a obligar, por ejemplo a usar los puntos y coma y a declarar las variables antes de usarlas.
Puedes pensar que este código ocupa más espacio, y es cierto. pero hay utilidades para comprimir los archivos incluso para ofuscarlos (hacerlos ilegibles). Puedes usar una versión comprimida en producción, mientras tus archivos originales están descomprimidos y claros de leer.
Un caso ilustrativo
Esta función determina si un número es divisible por otro
function x(a,b){ return a%b==0}
Magnífico, en una línea, estupendo... pues no tanto.
/*Función para....
numero: entero
divisor: entero no 0
*/
function esDivisor(numero, divisor)
{
var esdivisor;
//No podemos dividir por 0
if (b==0){
esdivisor = "error, el divisor es 0";
}
else
//Si el resto es cero si es un divisor esdivisor = (numero % divisor == 0);
return esdivisor;
}