Cuando tu proyecto web se encuentra listo para el servidor de producción, hay varias cosas a tomar en cuenta una de ellas es la optimización de los archivos que contienen el código fuente. Una forma de optimización es eliminar todo el espacio en blanco que contienen los archivos y también los comentarios incluidos en el código, el espacio en blanco y los comentarios, solo aumenta el tamaño de los archivos y estos solo sirven para los humanos encargados de leer y desarrollar el código, pero una ves en el servidor de producción ninguno de ellos es necesario, si se dejaran (a) solo toma mas tiempo leer el archivo y (b) estas dejando muchas pistas para otros.
Lo que se describe a continuación puede ser aplicado a PHP, Javascript (muy recomendable), (x)html y css, para otros lenguajes (alguien dijo python o ruby) los conceptos también aplican.
Entonces el afán de optimizar cada bit que es transmitido (y de paso hacer un poco ininteligible el código ajajaja no se rían que esto es serio), me he encontrado con dos conceptos, de los cuales conocía un poco, pero no sabia que tenían nombre:
1. Minification
2. Obfuscation
¿Que son preguntas? Pues sigue leyendo.
Minification
Básicamente consiste en quitar espacios en blanco del código fuente aunque algunos minifiers hacen mucho mas:
– Quitan comentarios
– Remueven espacios en blanco al inicio del las lineas de código
– Remueven espacios en blanco al final de una linea de código
– Eliminan múltiples lineas en blanco
– Remueven caracteres de nueva linea (\n\r / \n)
– Eliminan los espacios en blanco usados entre operadores
– Remueven el espacio en blanco alrededor de las llaves o corchetes
Después de pasar los archivos por un minifier se obtienen archivos a la mitad de su peso, lo cual es muy bueno.
Obfuscation
Los obfuscators hacen exactamente lo mismo que los minifiers, pero además agregan las siguientes funciones:
– Cambia los nombres de variables
– Cambian los nombres de funciones
Con eso se consigue hacer el código fuente menos entendible :) pero cuidado aplicando algún obfuscator es mucho mas complicado modificar algo en caliente.
Conclusión: Solo usemos minifiers, los archivos estarán un poco mas optimizados y como ventajas ahorraras ancho de banda y brindaras un mejor servicio a tus navegantes.
Nota.- Estoy explorando otras alternativas de optimización, por ejemplo para Dojo que es muy usado aquí en la ofna. esta el Dojo’s Compressor y para PHP estoy leyendo acerca de memcached, que es usado en LiveJournal, y esta el Zend Optimizer o el Zend Platform, cada uno merece por si solo un post, pronto muy pronto muahaha!
Saludos.