PHP programado en Objetos o sin Objetos

17 Nov

Hoy mismo hemos levantado el nuevo código a producción. Este nuevo código trae novedades que los usuarios no ven, pero que harán que sus páginas vayan más rápido y que dejen de haber errores extraños por la página -alguno quedará seguro, pero al menos la gran mayoría ya no!.

Este nuevo código está en gran parte ya orientado a objetos. Cosas como el tratamiento de las imágenes y las etiquetas están en objetos, así como los usuarios. Esto hace que la lógica en el código sea más rubusta y que por ello hayan menos errores. Así mismo deja la puerta abierta a los programadores del front-end para que les sea más sencillo programar y no tengan que vérselas con las odiosas SQLs y menos con lógicas del PHP profundo que no deberían tocar.

¡Pero no todo son maravillas en el paraíso de la orientación a objetos! Al subir el código y reabrir el portal nos hemos dado cuenta de que nuestros frontales, de estar completamente ociosos (de media un 5% de uso de CPU en dias de pico) han empezado a trabajar. Básicamente donde ayer teníamos un uso en los frontales de un 4% hoy lo tenemos de un 20%. Es decir, que ahora esta programación por objetos se nos ha comido ciclos de los procesadores de nuestros frontales.

Cierto es que hemos añadido lógica más tediosa a los objetos en sí, que hacen llamadas a los byte-coded cachés -APC en concreto- y luego al Memcached. Por lo que puede que todo en conjunto sea el aglutinante de este vertiginoso crecimiento. Pero os puedo decir que es impresionante el crecimiento de uso de CPU que se ha experimentado en tan sólo 4 horas!

Definitivamente puedo decir que la programación por Objetos en PHP tiene muchas ventajas de cara a la producción de código, pero tiene muchas desventajas de cara a los servidores que lo tienen que soportar… Estando en un entorno de alto uso -no voy a decir números- puedo hablar con datos y pruebas sobre ello.

Si quieres una programación limpia y un código sostenible, programa bien. Y si además quieres que ese código sea reusable y que tus programadores de front puedan desarrollar más rápido, programa Objetos! Pero eso sí, ten unos cuantos servidores de reserva preparados, porque los vas a necesitar.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: