Pratiques concrètes, outillage, perf, DX et retours d’expérience.
Depuis quelques mois, je travaille sur AstMetrics, un outil pouranalyser le code source de projets logiciels à grande échelle, quel que soit le langage de programmation.
Vous entendez parler de monorepo partout, ça a l’air ésotérique, mais en vrai c’est pas si compliqué. Dans ce billet, on va voir à quoi ça sert, pourquoi c’est souvent mystifié, ce qu’est Git subtree (et en quoi...
Je ne suis pas recruteur, et je n’ai pas la prétention d’être expert en recrutement.
Je voulais avoir une vue d'ensemble du code PHP existant, alors j'ai tout analysé. J'ai téléchargé l'intégralité de l'écosystème PHP - pas moins de 236 Go de dépôts Git. Voici le résultat de mon analyse.
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.
La dyslexie est une chose complexe et multiple. On parle d’ailleurs en général de dyslexies, au pluriel.
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)....
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).
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....
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 :
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...
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...
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 :
J’utilise massivement travis-ci comme plate-forme d’intégration continuepour mes projets open source.
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...
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é,...
Ç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...
Ç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)....
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....
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...
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 à...
Ç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.
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 :)
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...
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...
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...
Encore du Behat, mais du neuf cette fois !
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".
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...
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...
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 :
Ce billet fait suite à :
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...
On a vu précédemment ce qu'était Behat et comment tester une application simple en php avec Behat.
Maintenant qu'on a vu à quoi sert Behat, il est temps de passer à la pratique...
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 :-)
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. :-)
Comme chaque premier jeudi du mois, demain se tiendra un atelier afup à Orléans.
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,...
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...
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 :
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 :-)
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.
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/ .
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...
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.
Comme promis, voici le pas-à-pas d'une installation personnalisée de PHP (en l'occurrence PHP 5.4 alpha1).
Ca y est, depuis le 28 juin une alpha de PHP 5.4 est officiellement disponible. Ca vous dit de la tester ?
Pour l'anniversaire de PHP 5.3, Sophie a fort gentiment organisé une rencontre sur Blois.
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.
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).
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 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):
Aujourd'hui, j'ai envie de partager avec vous une astuce PHP peu connue, mais qui est bien pratique : l'union (+) de deux tableaux
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é :
Tous les slides des conférences AFUP 2010 sont disponibles. Ca se passe ici : Slides 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 !
Première conférence intéressante : Plein Phar, de Fréderic Hardy.
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, 2010 - 2025