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.

14juin/100

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

C'est avec un peu de retard que je vous présente ma revue de presse de la semaine passée.

NGINX + PHP-FPM + APC = Awesome

Apache est un excellent serveur HTTP, robuste et très paramétrable. S'il est suffisant pour la majorité des utilisations, il peine parfois à tenir de forte charges. Il faut alors se tourner vers des serveurs à la couverture fonctionnelle moindre mais taillés pour encaisser de grandes quantités de requêtes. Les deux plus connus dans ce domaine sont LightTPD et nginx. C'est l'installation et le paramétrage de ce dernier que cet article explique en détails. Au passage, l'auteur parle de PHP-FPM, une manière de mettre en œuvre PHP dont on entendra beaucoup parler dans les prochains mois car elle a été intégrée dans le tronc de PHP.

Sikuli

Il existe plusieurs outils, comme Selenium ou Watir, pour automatiser des actions dans des interfaces graphiques notamment pour effectuer des tests d'IHM. La plupart de ces outils utilisent un mécanisme interne à la technologie testée pour pouvoir interagir avec elle. Ils ne peuvent donc pas tester les technologies ne fournissant pas un moyen d'introspection.

Sikuli est un nouvel outil qui fonctionne de manière révolutionnaire. Il se base sur l'affichage de l'interface testée et cela par le biais de captures d'écran. Ce principe ne nécessite aucune manipulation interne de la technologie testée. Il est donc utilisable avec n'importe quelle application pourvu qu'elle produise un affichage. Le concept est un peu difficile à expliquer avec des mots mais la vidéo de démonstration est très explicite.

Why are interfaces widely ignored in the PHP world and what use do they have when working with symfony?

PHP est souvent moqué par les communautés de langage plus fortement orientés objet. La cause a longtemps été un modèle objet très basique. Cependant, depuis l'arrivée de PHP5, il y a déjà presque 6 ans rappelons-le, cette raison est caduque. Certes, le modèle objet de PHP reste perfectible mais pour qui sait l'utiliser pleinement, il est possible de faire de fort belles choses.

Dorénavant, le problème vient surtout des développeurs qui ne tirent pas suffisamment parti de la Programmation Orientée Objet. Christian Schaefer prend l'exemple des interfaces qui sont trop souvent ignorées ou mal utilisées alors qu'elles apportent tant de souplesse lors de la conception d'une application.

Git Reference

Par sa nature décentralisée et sa puissance, Git a révolutionné les usages que nous avions de la gestion de version. Cependant, il n'est pas toujours aisé de l'appréhender, surtout quand on a l'habitude des systèmes centralisés comme CVS ou Subversion.

Pour découvrir Git, il existe un excellent livre, Pro Git, qui est consultable en ligne. Je vous recommande d'ailleurs d'acheter, comme je l'ai fait, une copie papier pour remercier l'auteur. Ce livre a beau être parfait pour comprendre les concepts et les rouages de Git, une référence rapide aux commandes courantes est un compagnon utile lorsqu'on fait ses premières armes. C'est ce que propose Git Reference en décomposant les commandes en différentes catégories : Bases, branches et merges, partage et mise à jour, inspection.

28avr/102

Revue de presse PHP de la semaine 16 (2010)

La semaine qui vient de s'écouler a été assez calme dans le monde PHP. Cette revue de presse sera donc plus courte que d'ordinaire.

The class design checklist

Giorgio Sironi propose sur son blog une liste de questions qu'un développeur devrait se poser avant de commiter une nouvelle classe. Ces questions portent sur le nommage, la structure et la taille de la classe.

Bien entendu, il existe des outils pour détecter la plupart des problèmes que soulèvent ces questions mais se les poser soit-même a également un rôle éducatif qui contribue à améliorer ces compétences.

Find your Files

Fabien Potencier, a présenté le nouveau composant Finder du framework Symfony. Celui-ci permet de parcourir une liste de fichiers grâce à des méthodes très intuitives conçues avec des Fluent Interfaces dans l'esprit Domain Specific Language.

eZCheck

eZPublish est un CMS puissant mais complexe. Il est parfois difficile de s'assurer lors d'un passage en production qu'on a bien optimisé la configuration en conséquence et qu'aucun réglage facilitant le développement n'est pas resté activé ce qui pourrait compromettre les performances ou pire encore : la sécurité.

Pour faciliter cette vérification, le site eZ France vient de publier eZCheck, une liste de points à vérifier avec des explications détaillées pour chaque aspect.

Bash et l'auto-complètement

L'article bonus de cette semaine est assez particulier mais devrait ravir ceux d'entre vous qui utilisent PHP pour écrire des programmes en ligne de commande. En effet, il explique très simplement comment mettre en place un mécanisme d'auto-complétion pour votre programme. A vous donc l'usage de la touche tabulation dans vos propres programmes.

20avr/100

Revue de presse PHP de la semaine 15 (2010)

Voici la revue de presse de la semaine qui vient de s'écouler.

Java versus PHP

Giorgio Sironi compare sur son blog Java et PHP. L'article ne fait qu'égratigner la surface mais il a le mérite d'exposer dans les grandes lignes les ressemblances et les différences de manière relativement objective.

Preparing for the Zend Framework Certification Exam

Le site php|architect a publié un retour d'expérience sur la préparation à la certification Zend Framework. Les ressources intéressantes pour se préparer y sont listées ainsi que l'élément clé pour bien aborder cet examen : la version actuelle de la certification porte sur la version 1.5 du Framework. Cela signifie que des composants importants des versions actuelles comme Zend_Application ne sont pas couverts car n'existaient pas à l'époque.

Migrating a dev team to an OO team

Bien que cela soit de moins en moins vrai, PHP traîne encore une réputation de langage principalement procédural avec un modèle objet pauvre. La faute revient aujourd'hui plus aux développeurs qu'au langage lui-même. Il est donc important de changer les mentalité et de mettre à jour les compétences de son équipe.

Le blog de la société Ibuildings liste 10 étapes pour amener en douceur une équipe habituée à la programmation procédurale à changer son mode de fonctionnement.

XPath regular expression matching in PHP 5.3

En attendant que la version 2.0 de XPath soit disponible dans PHP, il est parfois difficile de faire des requêtes complexes. Heureusement, depuis PHP 5.3 il est possible d'enregistrer des fonctions PHP pour les utiliser dans les requêtes XPath.

Remote collaboration and teams

Enfin, l'article bonus de la semaine traite des difficultés liées au télé-travail. L'absence de ses collègues entraîne une perte des contacts informels, voire inconscients, qui soudent une équipe. Il donne des pistes pour tenter de créer du lien malgré la distance et l'usage d'outils de communication modernes comme la messagerie instantanée.