Revue de presse Industrialisation PHP de la semaine 49 (2010)
Après quelques semaines d'absence pour cause de vacances puis de préparation du Forum PHP 2010 et enfin de grosse charge de travail ces dernières semaines, la revue de presse reprend son rythme habituel. Pour de bon, je l'espère !
Top-5 certifications for every PHP programmer
Joshua Thijssen s'est lancé un défi étonnant cette année : passer 12 certifications techniques. Il vient de terminer son dernier examen et partage avec nous son expérience en listant les 5 certifications qui, selon lui, sont les plus utiles pour un développeur PHP.
Real-life example of Closure usage with PHP5.3
Les closures, ou fonctions anonymes, sont une fonctionnalité récente de PHP. Le principe est intéressant mais par manque d'habitude on est parfois bien en peine pour leur trouver un usage concret. Gonzalo Ayuso nous propose de les utiliser pour effectuer des calculs dynamiques sur des données, travail souvent demandé au SQL.
PHP Code review checklist
Ceux qui ont vu ma conférence sur les revues de code au Forum PHP, m'ont entendu parler de l'importance des checklists dans la phase préparatoire. Voici une proposition de liste de ce type. Certains points sont discutables mais c'est une bonne base pour construire son propre référentiel.
PHP Commit Hooks
Stocker ses développements dans des dépôts Subversion est une bonne pratique mais elle ne doit pas s'arrêter là. Il convient également de s'assurer que la qualité des commits. Subversion propose un mécanisme de hooks qui permettent d'effectuer des traitement à différentes étapes de la vie du dépôt. L'outil PHP Commit Hooks propose de mettre facilement en place des hooks de pre et de post commit pour effectuer certaines actions comme s'assurer de la présence d'un message de commit, valider la syntaxe des fichiers ou vérifier l'application des conventions de codage.
Profiling with XHGui
Xdebug est un excellent outil pour profiler du code lors de la phase de développement mais il est trop gourmand en ressources pour être utilisé en production. Facebook a développé pour son propre usage XHProf, et son interface de visualisation XHGui, qui permet d'avoir une vision claire des performances d'une application en production. Ces outils sont à présent disponibles pour tous.
Revue de presse Industrialisation PHP de la semaine 20 (2010)
De par sa nature adaptative, PHP est une technologie qui est rarement isolée. Quand j'interviens chez mes clients en tant que "consultant PHP", je ne me cantonne que rarement à PHP. Les problèmes touchent la plupart du temps également la base de données, le système d'exploitation ou encore les technologies clients. Bref pour bien faire du PHP, il ne faut pas faire que du PHP.
C'est pour quoi j'ai décidé d'élargir la thématique de cette revue de presse aux domaines qui ne se rapportent pas strictement à PHP mais qui sont utiles dans le cadre de son industrialisation.
Par ailleurs, je ne vais plus seulement me limiter aux articles de blogs. Je parlerai dorénavant également d'outils.
Voici donc la première édition de cette revue de presse élargie.
asql
L'analyse des fichiers de log d'Apache est une mine d'or pour comprendre les problèmes rencontrés par une application PHP. Malheureusement, la plupart des outils qui permettent de l'analyser sont orientés statistiques de fréquentation et l'analyse manuelle de ces fichiers est fastidieuse.
Steve Kemp a eu l'idée géniale de parser un fichier de log, de le mettre en base de données et de permettre ensuite de requêter dessus. Avec asql, vous avez à disposition toute la puissance de SQL pour analyser un fichier de log Apache.
Internet Explorer Collection
Internet Explorer a pousser une génération entière de développeur à la déprime mais nous devons encore trop souvent faire avec ce navigateur. Microsoft ayant eu la brillante idée de ne permettre l'installation qu'une d'une version à la fois sur un même poste, tester facilement une application avec plusieurs versions est assez compliqué.
Des outils comme Multiple IE, IE Tester ou encore IE4Linux nous ont permis de contourner cette limitation mais le premier n'est plus maintenu tandis que les deux autres sont incomplets et encore expérimentaux. Heureusement, il existe Internet Explorer Collection qui beaucoup plus exhaustif au niveau des versions d'Internet Explorer proposées et activement maintenu.
CloudFusion
Au delà d'être le nouveau buzzword à la mode, le cloud a radicalement changé notre approche de l'hébergement et de la gestion des ressources machines. Le problème est qu'il existe de nombreux fournisseurs avec chacun leur API. CloudFusion est une librairie PHP qui règle ce problème en proposant une abstraction de ces services ce qui permet de changer de fournisseur sans trop impacter l'application. Pour le moment Amazon Web Services et Eucalyptus sont gérés.
FlockDB
Développée par Twitter pour ses besoins internes, FlockDB est une base de données distribuée de type graph. C'est à dire qu'au lieu de stocker des données selon un schéma relationnel, elle va stocker des nœuds ainsi que les liens qu'ils ont entre eux et le sens de ces derniers. Cela permet à Facebook de stocker de manière efficace les informations du type "Paul aime le statut de Pierre". FlockDB a été conçu pour être performant et facilement scalable horizontalement.
Pagetest
De nombreuses études l'ont montré : la vitesse d'affichage d'une application web impacte directement l'opinion qu'en ont ses utilisateurs. Dans le cas d'une application commerciale, cela se répercute donc directement sur le chiffre d'affaire. Il est donc primordial de vérifier les performances de l'application dans ce domaine.
Pour cela, il existe par exemple des extensions Firefox comme YSlow ou Page Speed mais celles-ci ne proposent qu'un diagnostique et des recommandations, ce qui est déjà pas mal reconnaissont le. Le site Pagetest propose en plus des fonctionnalités comme le choix du lieu d'où sera effectué le test, le navigateur utilisé, le type de connexion à internet et même la visualisation au ralenti du rendu des pages afin de mieux comprendre comme travaille le navigateur. Avec cette fonctionnalité, il est possible de comparer visuellement le rendu de plusieurs sites. C'est assez bluffant.
Top 10 Motivation Boosters and Procrastination Killers
Enfin, Lifehacker, une excellente ressource de tout et n'importe quoi soit dit en passant, propose une liste de 10 astuces pour se motiver et éviter la procrastination, un mal dont beaucoup d'entre nous souffrent.

