Técnicas para mejorar rendimiento

June 5th, 2009

Existe mucha literatura sobre como mejorar el rendimiento de las aplicaciones, pero a menudo nos olvidamos de ellas, recopilamos aquí, las técnicas más usadas en aplicaciones de escritorio:

1. Cache, cache y mas cache

Es totalmente innecesario acceder a los mismos datos en la base de datos una y otra vez, es mucho mejor, guardar estos datos en memoria o en disco, y utilizarlos en las sucesivas llamadas.

Además de este tipo de datos, están los parámetros, las preferencias de usuarios, etc…

El uso de cache, mejora radicalmente la velocidad de una aplicación.

2. Arranque Rápido.

Esta es mi técnica preferida, ideal para redes lentas. No es fácil de implementar y requiere un poco de lógica. Se recoge estadística de las tablas y recursos más usados por la aplicación cuando arranca, por ejemplo, podemos tener una aplicación que normalmente abre un formulario y que tiene una lista desplegable con provincias.

Basándonos en las estadísticas, hacemos que arranque en paralelo y proceso que precarge los datos más usado, de forma que cuando el usuario acceda, no tiene que esperar que lleguen los datos.

3. Optimización de Base de Datos

No voy a detallar todas las técnicas, pues hay muchas, pero las principales son optimización de índices, minimizar los accesos a bases de datos, desnormalización cuando es necesario, estudio de planes de ejecución de consultas, etc..

4. Escalabilidad

Quizás, la parte más complicada a la hora de desarrollar una aplicación. Lo primero es ¿como sabemos si es escalable? Existen herramientas que simulan la carga de trabajo de miles de usuairos, es un buen punto de partida.

Pero ¿como lo hacemos más escalable? Existen muchas técnicas, pero la más sencilla y útil es diseñar los sistemas para que se puedan ejecutar en paralelo, no diseñar un proceso central que lo hace todo en el servidor, es mejor diseñar, pequeños procesos de trabajo que se pueden ejecutar en paralelo.

Ahora estamos probando la ejecución distribuida de los procesos del servidor, de forma, que todos los ordenadores de la oficina, participan en el proceso global, aportanto parte de su CPU.

5. Sensación y percepción

Un día llegó a mis manos un documento de Microsoft muy curioso, sobre la percepción que tiene el usuario de la velocidad de un programa, y me pareció muy interesante. La típica barra de progreso que tenía Windows al principio al iniciar, fue sustituida por una barra que se movía a toda prisa y daba varias vueltas. La percepción del usuario es importante, y tenemos que cuidar todos los tiempos muertos de la aplicación, utilizar iconos con reloj, animaciones, etc….

jmacias Programación ,

osCommerce vs Magento vs Prestashop vs Zencart vs Drupal

May 28th, 2009

Cuando empezamos hace unos años cuando nuestra pequeña web, instalamos osCommerce, y la verdad, para empezar está bien, los primeros meses instalamos varias contribuciones; editor de pedidos, módulos de pagos, etc.

A medida que ibamos creciendo, nuestras necesidades iban creciendo, en cuanto a marketing, y en cuanto a gestión.

Poco a poco, fuimos instalando más contribuciones, modificando osCommerce, y al mismo tiempo evaluando otros sistemas.

Llegados a un punto, nos dimos cuenta de que osCommerce, había dado todo lo que podía dar, era hora de cambiar. Había dos áreas en las que necesitabamos mejorar, marketing y gestión.

Al evaluar las distintos sistemas de comercio electrónico, llegamos a la conclusión de que Magento era el mejór en marketing, pero sin embargo, tenía muchos problemas de rendimiento adicionales, configuración, gestión de pedidos, etc…

Prestashop, es una gran solución si sabes frances, todo el soporte está en ese idioma, y los desarrolladores ignoran las peticiones en el foro ingles.

Zencart…. pues que quereis que os diga, está muy bien, pero tiene una línea de desarrollo extremadamente lenta, y llevo meses esperando la versión 2 que nunca llega.

Ahora nos vamos a gestión, y me encuentro, que salvo Magento, los demás no aportan mucho a la gestión de pedidos, facturas, pagos, etc., y no digamos de gestión de stock que es penosa.

Así que nos decidimos a realizar entera de nueva la parte de gestión de oscommerce, incorporando áreas de compras, gestión de stock, etc., es decir un ERP.

Ahora que estamos acabando el ERP, se nos queda osCommerce como un simple catálogo, y estamos en la duda de si sustituirlo por Drupal, que nos va a permitir mejorar las capacidades de marketing de nuestra web.

Ya os iremos contando como vá la evolución de nuestro entorno.

admin eCommerce