Encore un outil d'analyse statique. Oui, mais en mieux ! 10 ans après avoir démarré le développement de PHP Metrics, je croisqu’il est temps de démarrer quelque chose de nouveau, de plus moderne… et de plus ambitieux. Un éditeur de texte pour les enfants dyslexiques La dyslexie est une chose complexe et multiple. On parle d’ailleurs en général de dyslexies, au pluriel. Boostez vos Échanges de Données entre Services : DataBus, RabbitMQ et Protobuf Je vous propose de parler un peu de Bus de données. Un bus de données permet de transférer des données entre plusieurs logiciels. Par exemple, entre une application web et un moteur de traitement en masse de données (Big Data).... ProtoBuf en PHP, pour une serialisation ultra-performante et agnostique Aujourd’hui j’ai envie de vous parler d’un outil que j’utilise désormais presque tous les jours : Protocol Buffers (ou ProtoBuf pour les intimes). Un environnement complet de tests avec Docker - jour 2 (tests d'IHM) Ce billet est le second d’une série sur la création d’un environnement de test pour des projets web. Aujourd’hui nous parlerons d’IHM, c’est-à-dire comment tester que l’interface (visuelle) de mon site n’est pas cassée sous tel ou tel navigateur.... Un environnement complet de tests avec Docker - jour 1 (Behat) Ce billet est le premier d’une série sur la création d’un environnement de test pour des projets web. A la fin de cette série, vous disposerez d’un environnement Docker capable de lancer facilement : Un outil pour améliorer la qualité d'un projet web Le mot “qualité”, quand on parle d’un logiciel, est très ambigu : parle-t-on de faible complexité du code source ? D’évolutivité, de performance, d’accessibilité ? Que dire à propos des tests et de l’intégration continue ? La gestion des anomalies... OSS : Le couteau suisse pour gérer vos fichiers externes libres de droit. Composer, NPM… autant d’outils pour gérer les dépendances techniques de nos projets. C’est bien. Mais quid de la gestion des licenses des fichiers téléchargés ? Et que faire des médias (images, sons, vidéos) libres ou open... Semantic Versionning automatisé Pour résumer, le sémantique versionning est une logique de fabrication des numéros de version d’un produit où l’on identifie une version v1.2.3 telle que décrite sur le site officiel : Intégration continue : utiliser le fichier .travis.yml dans Jenkins avec Docker J’utilise massivement travis-ci comme plate-forme d’intégration continuepour mes projets open source. Qualité logicielle : comment fixer les valeurs limites ? Plus j’avance dans la réalisation de PhpMetrics, plus une question se pose : je dispose de métriques sur le code source, mais à partir de quel moment alerter l’utilisateur ? Quelle est la valeur idéale ? Quelles sont les... Indice de maintenabilité d'un projet PHP et Jenkins Dans mon dernier billet je vous avais présenté un outil sur lequel je travaille : PhpMetrics. Cet outil permet de calculer différents indicateurs sur le code source, dont l'Indice de Maintenabilité,... La maintenabilité d'un projet PHP en images Ça faisait longtemps que je cherchais un outil capable de me fournir un aperçu, très général et visuel, de la maintenabilité d'un projet. Ne trouvant finalement que peu de chose sur le net, je me suis décidé à en coder... Le Développement piloté par le comportement : 2 ebooks gratuits et libres Ça faisait longtemps que je les avais rédigés (plus de 6 mois), je viens de les retrouver au fond de mon placard. Voici deux ebooks open source et gratuits sur le développement piloté par le comportement (Behavior Driven Development).... Mutation Testing en PHP : pour la qualité des tests unitaires Aujourd'hui, dans l'écosystème PHP, on ne se pose enfin plus la question de savoir ce qu'est un test unitaire. Les tests unitaires sont devenus une pratique courante, et il existe des frameworks de tests matures, comme PHPUnit ou atoum.... Mais... on peut faire "ça" en PHP ? Mais c'est horrible ! Pour changer, je ne vais pas parler de ce qui est super avec PHP, mais plutôt de ce qui pue dans PHP. Et oui... Attention, qu'on ne me fasse pas dire ce que je n'ai pas dit : j'adore... Behat - créer des tests solides et efficaces Ca commence à faire déjà quelques temps que j'utilise Behat, et j'ai eu la chance de pouvoir l'utiliser sur différents projets, gros et petits. Je commence donc à avoir un peu plus de recul sur la chose, et à... dependency.me, pour savoir si vos dépendances composer sont à jour Ça faisait pas mal de temps que l'idée me trottait en tête : un service pour savoir si l'on utilise des dépendances composer à jour ou non. Doctrine n'est pas un ORM ? Pour bien commencer l'année, je vous propose de troller un peu sur les ORM. Ce qui suit est mon point de vue et n'engage que moi :) Automatisation des tâches avec Phing Je ne vais pas vous convaincre qu'un bon développeur est un développeur faignant, c'est à dire qui sait employer suffisamment d'énergie à un moment donner pour en gagner plein par la suite... Non, par contre, pour ceux qui ne l'utilisent... Industrialiser le Contrat dans un projet PHP - les Slides Suite à l'invitation de l'antenne nantaise de l'AFUP pour un rendez-vous PHP (très sympa au passage!), j'ai eu envie de parler de la notion de Contrat dans un projet PHP, et surtout des outils pour s'assurer qu'un contrat, quel qu'il... Design Pattern : pour des règles métiers complexes et/ou changeantes Désolé d'avance pour la longueur de ce billet ; comme ça fait longtemps que mon blog n'a pas été mis à jour, j'en profite pour faire un mini-tutoriel sur un sujet qui me tient à coeur : comment gérer les... Behat - Une interface graphique pour rédiger / lister ses fonctionnalités Encore du Behat, mais du neuf cette fois ! Exploiter PHP 5 - les slides Comme promis à ceux qui étaient présents, voici mes slides de notre rendez-vous du 5 juillet à Orléans, durant lequel on a parlé "outils" et "SPL". BDD : produit mal pensé, développement raté Ce billet, non technique, peut surprendre, mais je pense qu'en tant que développeur il faut comprendre un minimum ce que doit être une spécification, surtout si on veut faire du Développement Piloté par le Comportement. Cela fait quelques temps que... Les principales causes d'échec du BDD Bonjour à tous ! Alors bien évidemment, il serait absurde de vouloir lister toute les erreurs possibles, et totalement illusoire de croire que j'en n'en fait plus ; mais je crois pouvoir donner quelques exemples de ce qu'il faut éviter... Mémento Industrialisation PHP : Outils et bonnes pratiques Streams - Flux personnalisés et filtres en PHP Lorsque vous faites un fopen(), ou toute autre fonction équivalente, PHP vous retourne une ressource, sous forme d'un flux. Il existe différent types de flux en PHP : Behat : liens et ressources utiles Ce billet fait suite à : Behat – jour 1 : comment tester son produit SCRUM ? Behat - jour 4 : API Mink, Sous-contextes et Hooks Voici l'avant dernier billet de la série sur la prise en main de Behat. Pour rappel, on a vu : Behat – jour 1 : comment tester... Behat – jour 3 : Tester une application web avec Mink On a vu précédemment ce qu'était Behat et comment tester une application simple en php avec Behat. Behat – jour 2 : Installation et premiers tests Maintenant qu'on a vu à quoi sert Behat, il est temps de passer à la pratique... Cheat Sheet Behat Je vous propose une petite feuille d'astuces (cheat sheet) pour Behat et Mink. N'hésitez pas pas à vous en servir et vous en resservir :-) Behat - jour 1 : comment tester son produit SCRUM ? Ce billet démarre une série consacrée à cet outil que je trouve génial : Behat. Désolé pour la longueur, mais le sujet est suffisamment intéressant à mon goût pour être creusé comme il faut. :-) Atelier PHP sur Orléans - Tester son code / produit Comme chaque premier jeudi du mois, demain se tiendra un atelier afup à Orléans. Utilisez un moteur javascript en PHP et faites exploser vos perfs Bon, je l'admets, ce titre est un brin accrocheur et trolleur :-) . Ceci dit, je viens de tomber sur Twitter sur un package PECL que je ne connaissais pas et qui à mon avis ouvre des perspectives très intéressantes,... Le point sur les limites du typage de PHP Les limites PHP a ceci de particulier qu'il est est un langage de typage faible (le type des variables peut changer en cours de route), mais qu'il autorise un typage fort partiel des paramètres de fonctions pour ce qui concerne... Slides de l'atelier php sur les Traits pour l'AFUP Pour ceux qui étaient là hier pour notre atelier php à Orléans sur la programmation orientée objet, php 5.4 et les traits, voici les slides que j'ai utilisés :
aperophp
orléans
PHP à Orléans : ça bouge ! Et bien pour un premier apéro php sur Orléans, on peut dire que ça s'est bien passé ! Une bonne dizaine de personnes, motivées, sympas.... finalement à Orléans on semble bien décidés à montrer qu'on existe :-) Comment tester un Trait avec phpUnit ? Il peut être intéressant de tester un code avec des Traits, PHP et phpUnit. Les Traits sont apparus en PHP 5.4, et permettent de définir des comportements qui peuvent être réutilisés dans plusieurs classes. Couverture de code de PHP : un avis sur la polémique de PHP 5.3.7 ? Si vous êtes intéressé par la couverture de code de PHP* (la manière dont les fonctions natives du langage sont testées par des Tests unitaires), il est très intéressant de consulter http://gcov.php.net/ . PHP Solutions d'Aout est disponible Bon, et bien comme un peu de pub n'a jamais fait de mal, et surtout que j'ai écrit comme je vous le disais un petit article dans ce numéro, je vous invite à découvrir le dernier numéro de PHP Solution... Redonner son sens à l'héritage grâce aux Traits Suite à la rédaction d'un petit article pour PHP Solutions sur l'approche Orientée Objet, je me suis mis à faire quelques tests pour voir jusqu'à quel point les Traits de PHP 5.4 pourront changer notre manière de programmer. Compiler et installer PHP Comme promis, voici le pas-à-pas d'une installation personnalisée de PHP (en l'occurrence PHP 5.4 alpha1). Ca vous dit d'installer l'alpha de PHP 5.4 ? Ca y est, depuis le 28 juin une alpha de PHP 5.4 est officiellement disponible. Ca vous dit de la tester ? Apéro PHP à Blois : Joyeux anniversaire PHP ! Pour l'anniversaire de PHP 5.3, Sophie a fort gentiment organisé une rencontre sur Blois. Tour d'horizon des Callbacks en PHP Je suis toujours étonné de voir de nombreux développeurs PHP, pourtant habitués à travailler avec des callbacks en JavaScript, connaître si peu voire pas du tout les callbacks PHP. Le Design Pattern Flyweight (Poids mouche) Aujourd'hui je vous propose de parler Design Pattern, et plus particulièrement d'un pattern intéressant à mettre en place quand on cherche à alléger (en mémoire) une application : le pattern Flyweight (poid mouche). Objet : accéder au grand parent en PHP S'il est courant de surcharger une méthode parente en PHP, il est plus rare d'accéder directement à la classe "grand -mère" sans passer par la mère. Pourtant... c'est possible, et voici comment :-) PHP 5.4 : les Traits (Horizontal Reuses) PHP 5.4 offre son lot de nouveautés, dont les Traits. Un trait permet d'injecter dans une classe des méthodes d'une ou plusieurs autres "classes" (des traits): plus rapide et facile qu'un array_merge : l'opérateur + Aujourd'hui, j'ai envie de partager avec vous une astuce PHP peu connue, mais qui est bien pratique : l'union (+) de deux tableaux Performance PHP : l'héritage Quand on parle d'orienté objet, une crainte récurrente est celle de la performance.Or le moteur PHP Objet est très bien optimisé : Forum AFUP : Slides disponibles Tous les slides des conférences AFUP 2010 sont disponibles. Ca se passe ici : Slides Forum AFUP 2010 Forum AFUP 2010 Le forum AFUP c'est quoi ? C'est LE lieu de rencontre des professionnels PHP à ne pas manquer. Et cette année, on fêtait les 15 ans de PHP ! Forum AFUP 2010 : Plein PHAR Première conférence intéressante : Plein Phar, de Fréderic Hardy. Un blog est né (encore!) Aujourd'hui, ouverture de mon blog. Développeur PHP à plein temps et fan de SEO à mes heures, je compte vous proposer une synthèse de ce que je pense pertinent de connaître, aussi bien en veille qu'en contenu de fond.

© Jean-François Lépine, 2013 - 2024