Entradas etiquetadas ‘Programacion

La escalabilidad es la habilidad de un sitio web de poder hacerse mas grande sin perder llegar a perder calidad, en la gran mayoría de casos la pérdida de calidad viene dada por la ralentización de los tiempos de acceso y la perdida de funcionalidades.
Uno de los grandes errores que se puede cometer a la [...]

1 – Inicializa las variables antes de utilizarlas.

2 – Dedica tiempo a estudiar PHP, está es un lenguaje en continuo proceso de crecimiento y sus características van cambiando con el tiempo.

3 – Incrementar una variable en un método es lo mas rápido, del mismo modo que hacerlo en una función.

4 – Incrementar una variable global es dos veces mas lento que una variable local.

5 – Incrementar una variable local en un método es lo más rápido. Casi lo mismo que llamar a una variable local en una función.

6 – Incrementar una variable indefinida es 9 ó 10 veces más lento que una ya pre-declarada.

7 – El hecho de declarar una variable global a pesar de que no la utilices en ninguna función realentiza tu script, PHP tiene que chequear si la variable existe.

8 – La llamada a una función con un parametro toma aproximadamente el mismo tiempo que de 7 a 8 operaciones con variables locales, y esa misma llamada a un método supondrían unas 15 operaciones.

9 – Si necesitas saber el timestamp de acceso a un script, considera utilizar $_SERVER['REQUEST_TIME'] en lugar de time().

10 – $row['id'] es hasta 7 veces más rápido que $row[id].

11 – $localvar++ es hasta 15 veces más rápido que function inc(){ $localvar++; }.

12 – Los scripts PHP se “compilan” cada vez que son ejecutados a menos que se guarde el código objeto en un cache. Las diferentes herramientas de compilación de PHP incrementan el rendimiento hasta un 100%.

Aquí os dejo unos pocos trucos para escribir menos código PHP en tus scripts, seguro que algunos de estos trucos ya los conocías pero bueno me parece interesante recopilar estos trucos.

Reducir las sentencias if()


if($variable == 2)
{
$valor = true;
}
else
{
$valor = false;
}

Podríamos condensar esas 8 líneas de código en una única línea:

$valor = ($variable == 2) ? true : false;

Declarando variables

A menudo declaramos multiples variables cada una en líneas separadas, todas estas variables se podrían llegar a agrupar en una única declaración.

$variable1 = 7;
$variable2 = 12;
$variable3 = 9;

Podríamos declarar varias variables con diferente valor en una única línea de la siguiente manera:

list($variable1 ,$variable2 ,$variable3) = array(7,12,9);

Y más fácil todavia si las variables declaradas coinciden en el valor asignado:

$variable1 = $variable2 = $variable3 = “Prueba”;

Usar switch() en lugar de if()

Parece algo lógico pero muchas veces utilizamos if() dónde podríamos ahorrar código usando switch():

if($opcion == “menu”)
{
//cargar menu
}
elseif($opcion == “portada”)
{
//cargar portada
}
else
{
//no cargar nada
}

Usando switch() podríamos reducir el código ostensiblemente:

switch($opcion)
{
case ‘menu’:
//cargar menu
break;
case ‘portada’:
//cargar portada
break;
default:
//no cargar nada
}

Son sólo tres trucos pero seguramente te pueden ahorrar muchas líneas de código si sabes aplicarlos correctamente.

* Si alguien tiene pequeños trucos para optimizar código PHP le animo a que lo comente y enriquecer un poco esta entrada.

Estas son algunas reglas básicas a la hora de desarrollar un buen “producto web”, probablemente si desarrollas aplicaciones con asiduidad tienes en cuenta algunas de ellas pero si no las conoces y te gustaría empezar un proyecto seguro que te vendrá bien echarle un vistazo.

Desconfia de los usuarios

Suena duro pero es la verdad, no quiero decir con esta afirmación que todos los usuarios sean maliciosos pero lo que si es cierto es que mientras más desconfies más preparado estarás cuando algo no deseado suceda, intenta comprometer lo menos posible tu aplicación evitando todos aquellos agujeros de seguridad que esten en tu mano, tambien es importante que no te centres unicamente en la seguridad… ten en cuenta que muchos usuarios por desconocimiento de la aplicación harán un uso incorrecto de la misma, un buen ejemplo de ello lo tenemos a la hora de rellenar los formularios, hay que asegurarse y validar todos los datos introducidos por los usuarios.

Seguro que has escuchado infinidad de veces que Google Chrome es el navegador perfecto pero que no dispone de las extensiones y complementos necesarios para poderlo utilizar como navegador principal a la hora de trabajar, Chrome hasta el momento admitía los complementos necesarios para navegar por Internet sin problemas (Flash, Acrobat Reader, Java, Windows Media Player, Real Player, Quicktime, etc…), pero muchos usuarios necesitan poder personalizar el navegador acorde con sus necesidades, este es sin duda el punto fuerte de Mozilla Firefox su gran competidor si atendemos al perfil de usuario de ambos navegadores, por el momento la batalla con la gran mayoría de los usuarios está perdida ya que estos usuarios utilizaran Internet Explorer al tratarse del navegador por defecto, nunca mejor dicho lo de defecto.

Por lo tanto estamos de acuerdo en que los complementos dotan a los navegadores de mayor versatilidad, ofreciendo a los usuarios una mejor experiencia y añadiendo nuevas características y opciones de navegación.

La llegada de las extensiones a Chrome lo convierten en una gran alternativa

Gracias a las extensiones Google Chrome va a conseguir poco a poco ir comiendo terreno a Firefox, queda pendiente ver si las extensiones poco a poco deterioran el rendimiento del navegador, la verdad es que aún muchas extensiones no igualan en funcionalidades a las desarrolladas para Firefox y son la gran mayoría mucho más livianas, este hecho nos permite que el navegador siga funcionando rápido y fluido pero por otro lado en muchas ocasiones estas extensiones se quedan un poco cortas si lo que queremos es prescindir totalmente de Firefox y más aún si trabajas diseñando o programando aplicaciones web.

Top 10 extensiones Google Chrome

Ahora que Google ha prometido un gran número de extensiones en su nueva versión del navegador, veremos muchas listas que nos recomendarán las mejores extensiones del momento.

Veamos 10 extensiones que podemos usar con Google Chrome y que nos permiten aumentar nuestra productividad diseñando y programando aplicaciones.

No, no se trata de un baile que mejora el rendimiento de PHP sino de un proyecto Open Source de Facebook que comenzó hace 2 años debido a que las funcionalidades existentes para optimizar PHP se antojaban insuficientes.

HipHop se trata de una especie de transformador de código fuente que toma el PHP y lo convierte en C++ para ser compilado con g++, para explicarlo de una manera rápida y sencilla podríamos decir que HipHop permite que cualquier desarrollador pueda escribir código PHP pero que el código final se ejecute con el rendimiento que ofrecería el código de un programador experto, el resultado es una mejora de rendimiento del 50%.

Y es que Facebook poco a poco irá siendo a PHP lo mismo que Google es a Python, si lo pensamos es realmente positivo cuando una gran empresa que utiliza una tecnología sobre la que depende su negocio se dedica a mejorar dicha tecnología no sólo para beneficiarse ellos mismo sino para beneficiar a la comunidad de desarrolladores y consumidores de dicha tecnología.

Para entenderlo mejor primero hay que saber como funciona PHP, PHP es un lenguaje de programación interpretado como Ruby, Python y Perl, esto es genial para la productividad de los desarrolladores porque no es necesario compilar el código pero tiene por contra unos requerimentos de memoria y consumos de CPU mayores que un lenguaje compilado como es el caso de C++, por lo tanto HipHop al tranformar el código PHP a código C++ nos permite disfrutar de lo mejor de ambos lenguajes.

¿Cómo ha mejorado HipHop a Facebook?

  • Web — 50% menos de consumo de CPU con el mismo tráfico
  • API — 30% menos de consumo de CPU con el doble de tráfico

La mejora de rendimiento de Facebook ha sido probada de manera progresiva en sus propios servidores y ahora un 90% de los servidores de Facebook utilizan HipHop, la mejora cómo hemos vistos se divide en mejoras relacionadas con al Web y relacionadas con el uso de la API, la clave para la diferencia de mejora entre Web y API radica en que la Web requiere operaciones más complejas que la API.

¿Hay algún tipo de limitación?

Con HipHop no podrás utilizar funciones como eval() y create_function(), la naturaleza dinámica de estas funciones hace imposible su conversión a código C++, sin embargo estas funciones no son de las más populares entre los desarrolladores de PHP.

Actualmente HipHop no puede ser ejecutado en Apache pero se trabaja en ello.

¿Dónde puede encontrarlo?

HipHop será liberado dentro de poco pero por el momento nos tenemos que conformar con la entrada en el blog de Facebook o con esta presentación.

Me gustaría que dejaraís vuestra opinión sobre el tema y si alguien tiene información adicional que la aporte ya que creo que se trata de una excelente noticia y más aún tratándose de PHP que como hemos comentado anteriormente se trata de un lenguaje de programación tremendamente flexible pero muy difícil de escalar cuando hablamos de sitios web de gran tráfico.


Patrocinadores

¿Interesado en patrocinar TuFunción?

Suscripción

Primera División