Industrialisation PHP

13déc/100

Revue de presse Industrialisation PHP de la semaine 50 (2010)

My privates are not public, they are protected

Le choix de la portée d'une méthode ou d'une propriété lors de la conception d'une classe est un sujet qui déchaine les passions. Stefan Koopmanschap apporte sa pierre au débat.

Practical PHP Testing Patterns: Assertion Message

Giorgio Sironi continue sa série d'articles sur l'écriture de tests unitaires en parlant cette fois des messages liés aux assertions. Il explique qu'il faut y prêter attention car cela permet de cerner plus vite la cause du problème en cas d'échec lors de l'exécution des tests.

Getting History of Table Sizes in MySQL

Le toujours excellent blog MySQL Performance Blog propose une méthode toute bête pour stocker régulièrement la taille des tailles MySQL. Le but est d'avoir un historique de l'évolution des tailles pour affiner la planification de capacité.

How To Get Experience Working With Large Datasets

Une application fonctionnant parfaitement peut subitement s'effondrer sous une affluence soudaine et massive de données. Pour anticiper ce genre de problème, on effectue en amont des tests de charge. La difficulté est généralement de trouver suffisamment de données pour charger le système. Phil Whelan propose différentes pistes pour récupérer ou générer de grandes quantités de données réalistes.

Industrialisation des développements : automatisez votre base de données

Le code source et la base de données sont les éléments fondamentaux d'une application web. Pourtant le premier est bien plus simple à maintenir que la seconde. Faire évoluer de manière structurée sur plusieurs environnements une base de données demande de la méthode et de la rigueur. Heureusement, il existe des outils pour simplifier cette tâche.

9déc/108

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.

11oct/100

Revue de presse Industrialisation PHP de la semaine 40 (2010)

Understanding APC

APC est une extension PHP qui est à la fois un cache d'OPCode et un cache de données utilisateur. Le blog TechPortal explique son fonctionnement, le compare avec memcached et propose des clés pour déterminer quand choisir l'un ou l'autre.

Zend Framework app's PHPUnit suite 3x faster

Zend a choisi PHPUnit comme outil de tests unitaires pour son framework. Leur bonne intégration, notamment grâce à Zend_test, facilite beaucoup les tests d'application développées avec Zend Framework. Cependant, les tests touchant à la base de données restent lents à cause des vidages de tables après chaque test. Olek Janiszewski propose une solution ingénieuse à ce problème : utiliser des transactions et faire systématiquement un rollback après le test unitaire.

Créer une autorité de certification et des certificats SSL auto-signés

Utiliser des certificats SSL est très important pour améliorer la sécurité des applications web. Cependant, ceux-ci coûtent souvent cher. Il peut donc être intéressant de créer ses propres certificats lorsque cela est possible, notamment dans le cas d'un usage interne à une organisation.

Bugfixes without Tests are Anti-fixes

Dans un court article, Dan Ackerson rappelle a juste titre qu'une correction de bogue sans test revient à faire un pari dangeureux. On ne peut être sûr que le remède n'est pas pire que le mal et que ce bogue ne réapparaîtra pas plus tard. C'est d'ailleurs une des choses que les utilisateurs détestent le plus : ils ne comprennent pas comment un problème corrigé peut survenir à nouveau.

Examine All HTTP/HTTPS Traffic on Windows with Fiddler2

Bien que discret, le protocole HTTP est l'élément indispensable au fonctionnement des applications web. Il est parfois nécessaire d'étudier le détail des échanges HTTP pour débusquer l'origine  d''un problème. Pour cela il existe des outils que l'on appelle proxies de développement. Comme leur nom l'indique, ils se placent entre le client HTTP, généralement le navigateur mais pas seulement, et le serveur HTTP analysant tout ce qui transite. Parmi les logiciels gratuits disponibles sur Windows, on trouve Fiddler2 dont parle le blog Coding This dans un article récent.

The story of one MySQL Upgrade

Cette semaine, le blog MySQL Performance, nous conte par le détail le déroulement d'une mise à jour périlleuse d'un serveur MySQL. On y apprend les étapes définies et les outils utilisés.

2juil/100

Revue de presse Industrialisation PHP de la semaine 26 (2010)

Voici la dernière revue de presse avant les vacances. Selon l'actualité, j'espacerai peut-être un peu les revues de presse pendant les deux mois qui arrivent.

10 Tips for Optimizing MySQL Queries (That don’t suck)

Les conseils d'optimisation pullulent sur internet. Malheureusement, le meilleur côtoie parfois le pire comme le montre Jesse Farmer avant de proposer une liste des 10 optimisations pour MySQL qu'il considère utiles.

C'est la fête du test

Dans le prolongement de mon article sur le TestFest PHP 2010, Frédéric Hardy a rédigé un article qui explique en détails comment écrire son premier test unitaire pour PHP.

Xdebug 2.1

Derick Rethans a publié cette semaine la version 2.1 de son outil Xdebug. Cette version est la première à être totalement compatible avec PHP 5.3. Au menu des nouveautés, on trouve notamment la possibilité de tracer l'assignation des variables, de désactiver les opérateurs @ et de savoir quel bout du code a défini des entêtes HTTP.

Do yourself a favour and don’t test using HTTPS

Utiliser des connexion HTTPS en production est une très bonne chose mais cela complique souvent les tests IHM. Adam Goucher explique les raisons du problème et propose de tout simplement ne pas utiliser HTTPS lorsqu'on n'est pas en production.

25juin/100

Revue de presse Industrialisation PHP de la semaine 25 (2010)

Cette semaine la revue de presse est assez hétéroclite et propose quelques innovations à surveiller de près.

PHP: Client side caching for all MySQL extensions

PHP 5.3 a introduit mysqlnd, un pilote natif pour PHP dont le but est de remplacer la libraire libmysql. Cela n'a pas d'incidence directe sur l'usage des extensions permettant de dialoguer avec MySQL (mysql, mysqli, PDO_MySQL) mais ce nouveau pilote apporte de nombreuses améliorations techniques et notamment la possibilité d'écrire des plugins pour interagir avec les requêtes SQL qui passent par le pilote. Un peu à la manière de MySQL Proxy. Le premier plugin tirant parti de cette possibilité vient d'arriver et il permet de faire du cache de requête du côté de PHP.

Multiple PHP versions on the same IIS server

De nombreux articles expliquent comment utiliser plusieurs versions de PHP sur la même instance d'Apache mais aucun pour IIS. C'est désormais chose faite grâce à un développeur de Microsoft. Attention cependant, si vous avez déjà installé PHP avec un installeur, il vous faudra d'abord effectuer une manipulation avant de pouvoir utiliser cette technique.

Exploring the software behind Facebook, the world’s largest site

Royal Pingdom, le blog du service de monitoring Pingdom, consacre un article à la relation entre Facebook et l'Open Source. Il aborde les charges astronomiques supportées par leur architecture ainsi que les logiciels développés ou utilisés par Facebook.

State of Symfony 2 online conference – a killer feature revealed!

Sensio Labs a dévoilé cette semaine certains aspects de la prochaine version majeure de son framework : Symfony. L'un de ces aspects est particulièrement innovant. Il s 'agit de la prise en charge des Edge Side Includes, un mécanisme de cache partiel de pages HTML développé par Akamaï et proposé au W3c pour normalisation. Nous reviendrons sur cette notion très intéressante dans un prochain article.