• Ce blog — désormais archivé — est en lecture seule.

#forumPHP : résumé de ma seconde journée

Second jour au forum PHP, très enrichissant. Voici le résumé de ma journée, un peu mieux synthétisé que la première journée.

Déboguer son code avec Xdebug

Présenté par Derick Rethans

L’auteur de l’excellent Xdebug fait une présentation des possibilités de l’outil. On y apprend la possibilité de renvoyer les fichiers défaillants dans vim directement, configurer l’affichage de la trace d’exécution, … Mais surtout un paramètre que je ne connaissais pas : xdebug.scream qui permet d’ignorer les ‘@’ avant les fonctions (le ‘@’ cache initialement les erreurs et avertissements). C’est un peu une tuerie pour le développeur car pas mal de projets (notamment certains CMS) utilisent cette astuce pour cacher la misère :-D

Xdebug permet de profiler son application et génère un fichier  exploitable soit avec un fichier PHP fourni sur le site de Xebug, soit avec KCacheGrind soit avec WebGrind (comme son nom l’indique c’est une application web).

Ensuite, Derick nous parle de la couverture de code avec son outil. Puis, grosse surprise (pour moi), la possibilité de déboguer pas à pas son application PHP. On utilise pour cela GTK DBGp ou des plugins Firefox/Chrome. Voilà encore quelque chose que l’on pouvait reprocher à PHP et qui est résorbé :-)

Mon avis : Très bonne conférence, très bon outil et quelques astuces à tester. Parfait donc.

Un site web performant, tout est dans le réseau et le navigateur

Présenté par Eric Daspet

Cette conférence m’est familière, je suis Eric depuis longtemps et je suis également très sensible aux problématiques de performances, en particulier au niveau frontend. C’est l’objet de cette conférence. On part sur un constat clair : tout se joue lors du chargement, peut importe ce qu’il y a côté backend (serveur et application) qui représente 5% du chargement total d’une page. Voici quelques données sur l’importance des performances :

  • Amazon : latence +100ms : -1% de ventes
  • Google : chargement +500ms : trafic -20%
  • Yahoo : chargement +400ms : abandon +5 à 9%
  • Bing : chargement +1s : revenu pub -2,8%
  • Mozilla : chargement -2 ,2s : transformation +15%

Ce qui nous fait perdre du temps, c’est la latence et le nombre de téléchargements. La majeure partie du temps, le navigateur attend. Pour bien agir, voici ce qu’on peut faire :

  • Fusion JS, CSS
  • Fusion images : sprites CSS
  • CDN : akamai
  • URI en data, documents mhtml, archives JAR
  • Inline des images
  • Chargements parallèles : domaines multiples
  • Connexions persistantes : KeepAlive http (10 à 20% de gain)

Mais aussi :

  • compression http
  • minimisation des contenus (espaces blancs)
  • recompression d’images (avec et sans pertes)
  • contenus pus petits
  • Chargement différé via AJAX
  • Ordonner et prioriser le contenu
  • Envoyer immédiatement les blocs sans calcul serveur
  • Chargement asynchrone du JS ou en bas de page
  • Accélérer le rendu
  • Utiliser du cache http
  • Pré charger des contenus à l’avance
  • Optimiser le JS, diminuer la complexité
  • Eviter les sélecteurs CSS/Jquery horriblement lents

Mon avis : peu de choses apprises car déjà bien documenté sur le sujet mais la conférence était très bien présentée, Eric a su (d’après les réactions) sensibiliser son public.

Le Cloud Computing pour PHP

Présenté par Guillaume Plessis

Le Cloud Computing c’est quoi ?

  • Infrastructure as a Service IaaS

Infrastructure massivement virtualisée. Instances virtuelles jetables. Facturation à l’heure. Répartition de charges. L’extinction des machines entraine la suppression des données. Typiquement c’est le service Amazon EC2 mais on a aussi Rackspace Hosting, Gandi.net (que j’avais testé) et SoPrivé.

  • Platform as a Service PaaS

Serveur d’applications clé en main qui rend bon nombre de services (Stockage, langage, base de données, …)

Typiquement Google App engine pour Java et Python, Heroku pour Ruby On Rails et Windows Azure (…). Pour PHP, présentation de Baobapp que je vais tester bientôt en béta.

  • Software as a Service SaaS

Applications infogérées clé en main. Par exemple, Gmail :-)

Mon avis : Très intéressant de voir les différents modèles de Cloud, j’ai hâte de tester Baobapp, je viens de recevoir mon pass pour la béta, je consacrerai un article dessus.

Suivi de qualité – PIC, Plate-forme d’Intégration Continue

Présenté par Gabriele Santini

Présentation d’une plate-forme d’intégration continue dotée de nombreux outils. En vrac : phpUnderControl ou Hudson pour le serveur CI. Ajout d’outils comme PHPUnit, Xdebug, PHP_CS, PHP_Documentor, PMD, PHP_CodeBrowser, PHP_Depend, … Certains métriques ne sont pas bien exploitées, ils ont donc portés Sonar pour PHP et c’est surtout ça la grosse info !

Mon avis : je suis là encore très sensible aux problématiques d’industrialisation et de suivi de qualité. J’ai déjà pas mal d’outils en place pour mon travail et cette conférence n’a fait que valider ma démarche. Cependant j’ai appris l’existence de Sonar pour PHP et ça, j’ai hâte de tester. Sinon, j’ai rédigé un article sur le sujet pour le prochain numéro de PHP Solutions…

Analyse statistique du code – Écoutez votre code PHP

Présenté par Gabriele Santini
Trois niveaux d’analyse :
  • Syntaxique : avec PHP_Depend, PHPMD mais aussi Padawan pour détecter les anti-patterns et Phantm pour détecter les faux positifs.
  • Lexicale : PHPLoc (Métriques basiques), PHPCPD (code dupliqué) et PHP_CodeSniffer.
  • Bytecode : Vulcan Logic Disassembler, Bytekit et Bytekit-cli.

La visualisation peut se faire avec phpUnderControl, Arbit ou Sonar (!!!).

Mon avis : Très très intéressant, je connaissais la plupart des outils mais pas tous, je vais donc les tester. Le conférencier a bien exploré les possibilités d’analyse car explorer au niveau du bytecode, c’est… puissant !

The PHP performance paradox

Présenté par Zeev Suraski.
Fondateur de Zend Technologies, accessoirement créateur du Zend Engine (moteur interne de PHP4). Zeev nous expose l’évolution de PHP en terme de performances et fait un peu de pub pour Zend. En chiffres, on peut retenir que de PHP5 à PHP5.3 on a un facteur 5 en amélioration des performances et de PHP5.3 à PHP trunk (le prochain) on améliore x2.
Mon avis : Pas mal d’avoir des chiffres et de savoir comment ils ont modifiés PHP pour le rendre plus performant.

Avis général

Ce fût donc un très très bon forum et j’ai pris pas mal de plaisir lors de ces deux jours. C’est déjà fini, à l’année prochaine !
  • Print
  • Digg
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Twitter
  • Google Bookmarks
  • FriendFeed
  • LinkedIn
  • MySpace
  • Netvibes
  • PDF
  • Ping.fm
  • RSS
  • Technorati
  • viadeo FR
  • Wikio
  • Yahoo! Buzz

Related Posts

Cet article a été publié dans ForumPHP, Ma vie avec les mots-clefs : , . Bookmarker le permalien. Les commentaires et les trackbacks sont fermés.

2 commentaires

  1. Le 22 novembre 2010 à 11 h 03 min | Permalien

    Merci pour cet article très intéressant. Juste un petite coquille : le lien vers le site Baobapp ne marche pas : htpp au lieu de http…

    • Le 22 novembre 2010 à 13 h 27 min | Permalien

      Bonjour,
      Merci, c’est corrigé ! :)