Errores comunes a la hora de optimizar
Interesantes consejos que nos ofrece Ilia Alshanetsky sobre la optimización de nuestras aplicaciones. Resumiendo el PDF de una charla que dió que ha compartido, tenemos:
- Ten claro que va a hacer tu aplicación antes de meterte a optimizar
- Basa tus cálculos sobre crecimiento y escalabilidad sobre datos reales, no sobre pajaras mentales de los comerciales
- Más código no implica más lentitud, modulariza tu código para obtener mejores resultados
- Piensa sobre el tiempo/gasto de desarrollo por ingenieros y el gasto en nuevo hardware. Esta solución no siempre es válida, ya que evitar cuellos de botella añadiendo servidores puede ser causa de mayores problemas en el futuro. Si tu código o consultas a la BD no son eficiente, es mejor optimizarlas. Para conseguir una mejora de rendimiento del 5% mejor no te molestes en optimizar el código.
- La optimización de código puede originar fallos en otras partes de la aplicación
- Cuidado con los includes: la compilación puede tardar más que la propia ejecución
- Cache, preferiblemente en memoria, tanto datos recuperados de la BD como procesos que tarden en ejecutarse
- No todo tiene que ser en tiempo real
- Fíjate sobre todo en la base de datos, suele ser lo primero que necesita optimización
- Usa herramientas para encontrar los cuellos de botella
- Micro-optimizaciones no solucionarán tus problemas de rendimiento
- Si crees que vas a crecer, la escalabilidad es más importante que la velocidad
- No reinventes la rueda, crearte funciones que hacen lo mismo que funciones nativas de PHP es inutil
Vía / iBlog – Ilia Alshanetsky

PHPUnit es un framework para PHP que nos facilita la creación de juegos de tests y la ejecución de estos y analiza sus resultados. Aunque inicialmente PHP empezó como complemento dinámico para pequeñas páginas web, actualmente PHP se utiliza para desarrollar aplicaciones web complejas, por lo que es importante poder realizar las pruebas pertinentes a nuestro código.
Qooxdoo es un framework para crear aplicaciones AJAX de forma sencilla, permitiendo crear aplicaciones web estilo escritorio.