Archivo para la categoría ‘Programacion

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.

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.

Para diseñadores y programadores IE6 es una de las peores lacras que ha sufrido la web desde hace años pero el problema es que la gran mayoría de los usuarios no lo ven como un problema sino que simplemente lo utilizan porque todavía a día de hoy creen que es la mejor y única alternativa para navegar en Internet.

Sinceramente para mi desarrollar un sitio web para que sea compatible con los diferentes navegadores y en especial Internet Explorer 6 no es una tarea divertida, no conozco a ningún profesional que disfrute desarrollando para IE6 y eso seguramente se deba a su pobre soporte de CSS y a que es un navegador lento e inseguro.

Para los usuarios el gran problema es que las funcionalidades de esta versión del navegador se han quedado obsoletas.

Hace ya muchos años que existe una alternativa idónea a IE6, Firefox, pero es muy difícil que los usuarios se acostumbren a instalar y utilizar un navegador que no viene instalado por defecto en su sistema operativo.

Durante 7 años ha sido el navegador más utilizado lo que provoca que un gran número de ordenadores aún sigue instalado, en muchos de estos ordenadores los usuarios no son los administradores y no tienen más remedio que utilizarlo.

A día de hoy tenemos gran cantidad de alternativas:

Google deja de dar soporte dentro de poco a IE6

Google ha anunciado en su blog para empresas que dejará de dar soporte a IE6 dentro de poco tiempo, muchas otras empresas ya han dejado de soportar a los navegadores más antiguos, como IE6, al igual que lo hizo Youtube y Flickr, las empresas se están empezando a dar cuenta finalmente de la carga que es seguir soportando un navegador como IE6.

Todos estamos de acuerdo en que uno de los mayores problemas a los que nos enfrentamos habitualmente los desarrolladores es lograr una rápida carga de nuestro sitio web, en cuanto vamos añadiendo funcionalidades nos vamos encontrando con ralentizaciones en la carga del sitio por lo que debemos encontrar el equilibrio entre las funcionalidades y la velocidad de carga del sitio.

Hay diversos estudios que han demostrado que una buena velocidad del sitio web nos lleva a un aumento de la actividad y retención de usuario, ademas que nos permite una reducción de costes en todos los sentidos.

Algunos consejos para aumentar la velocidad de un sitio web

  1. Realiza pocas peticiones HTTP
  2. Haz uso de CDN (Content Delivery Network)
  3. Añade una etiqueta para hacer expirar tus cabeceras, Expires header
  4. Habilita la compresión por Gzip
  5. Pon el CSS al principio de todo
  6. Pasa los archivos JS al final
  7. Evita los comentarios CSS
  8. Pon tu CSS y tus archivos JS en archivos externo
  9. Reduce las consultas DNS
  10. Optimiza y minimiza el código de tus archivos JS
  11. Evita las redirecciones
  12. Elimina los scripts duplicados
  13. Configurar los ETags

A todos estos consejos tenemos que añadir que sin duda es necesario en primer lugar un servidor rápido, el servidor es la pieza clave para que un sitio web cargue rápido sin duda lo mejor será conseguir un hosting pago que te ofrece mayor velocidad y soporte, pero en caso de no tener dinero suficiente, y tengas que alojarte en uno gratuito, prueba muchos y decídete por el que más rápido te parezca.

Herramientas para acelerar nuestro sitio web

Herramientas de Google Webmaster

Google Webmaster ha lanzamo recienteme una funcionalidad llamada: Rendimiento del sitio, una función experimental en las Herramientas para webmasters que te muestra información sobre la velocidad de tu sitio y sugerencias para hacerlo más rápido.

Encontrarás datos sobre la rapidez de carga de las páginas, así como de su evolución en el tiempo; una comparación entre el tiempo de carga de tu sitio y de otros sitios; ejemplos de páginas concretas con sus tiempos de carga reales; y sugerencias de Page Speed, que pueden ayudar a reducir la latencia que perciben tus usuarios.

Page Speed

Google lanzó hace un tiempo Pagespeed, una herramienta que llevan desarrollando muchos años y que utilizan ellos mismos para optimizar sus sitios, es más o menos una competencia a YSlow de Yahoo! del que hablamos en el siguiente punto.

Al instalarlo se integra a Firebug y al ejecutarlo, Pagespeed nos dará diversos consejos y parámetros que podemos tomar en cuenta para mejorar el desempeño de carga de nuestro sitio, y de lo más interesante incluso genera versiones optimizadas de las imágenes que tengamos para que las reemplacemos y utilicemos para reducir así también la carga.

La documentación es excelente y merece la pena instalarla para experimentar.

Ambas noticias agregan mucho valor de parte de Google a la web, y ya las veo como opciones imprescindibles en un futuro.

YSlow, analizador de rendimiento web

Si quieres poner en práctica estos consejos y ver como poco a poco vas consiguiendo agilizar la carga de tu sitio no dudes en instalarte YSlow.

Este plugin de Yahoo llamado YSlow para Firebug (en Firefox) es sin duda una herramienta que todo webmaster debería tener funcionando en su navegador.

Para acceder a todas sus posibilidades hay que instalar primero Firebug y luego YSlow. Una vez instalado, se capturan todos los datos relativos a las páginas y sus elementos. Hay información sobre Rendimiento, Estadísticas y Componentes.

Para los que aún no conozcan Firebug decir que es una extensión que te ayudará a desarrollar, evaluar y depurar sitios web, controlando el CSS y HTML en tiempo real, midiendo el tiempo de carga para optimizar la página o corrigiendo los posibles errores Javascript.

function clickable($url){
$url = str_replace("\\r","\r",$url);
$url = str_replace("\\n","\n
“,$url);
$url = str_replace(“\\n\\r”,”\n\r”,$url);

$in=array(
‘`((?:https?|ftp)://\S+[[:alnum:]]/?)`si’,
‘`((? );
$out=array(
'$1 ‘,
$1
);


Patrocinadores

¿Interesado en patrocinar TuFunción?

Suscripción

Primera División