atlas des actus
    
Jérémy Decool
15  février     23h00
Simplifier vos objets immuables avec PHP 8.5
   PHP 8.5 a été publié le 20 novembre 2025 et, dans les nouvelles fonctionnalités proposées par cette version, on trouve notamment la possibilité de mettre à jour des propriétés lors du clonage d’objets. Une amélioration qui va permettre de simplifier nos objets immuables. En programmation orientée...
13  février     23h00
Ce site est de retour en France
   Cela fait plusieurs années que je m’intéresse beaucoup à la souveraineté numérique et la dépendance technologique que l’on peut avoir (principalement concentré sur des acteurs américains). J’en parlais dans un précédent article, mais à ce titre, je souhaite réduire ma dépendance aux GAFAM au profit...
11  février     23h00
Savoir jusqu’ou utiliser les boring technologies
   Je milite activement pour l’utilisation des boring technologies , les technologies ennuyeuses, mais maîtrisées par rapport aux solutions tendances . Le plus dur étant de savoir ou s’arrêter et de déterminer à quel moment il est temps de changer de solutions. Ce billet a été initialement publié sur...
03  février     23h00
Siloter les équipes, c’est effriter la cohésion
   J’évoque régulièrement la thématique du silotage des équipes. Aujourd’hui, j’aimerais revenir sur les barrières invisibles que cela crée pour la collaboration et le partage des connaissances. Découper les équipes, les isoler, c’est faire en sorte que ces dernières puissent se concentrer sur leur p...
29  janvier     23h00
La réunion d’équipe la plus importante
   La réunion d’équipe que je considère comme indispensable est certainement la rétrospective. C’est un point essentiel pour favoriser l’amélioration continue et renforcer la dynamique d’équipe. La rétrospective permet de mettre en place un espace dédié pour réfléchir et prendre du recul sur le...
20  janvier     23h00
Documentation vivante
   N’importe qui ayant déjà écrit de la documentation sait que le principal problème, c’est qu’elle devient rapidement obsolète une fois écrite. Ce billet a été initialement publié sur LinkedIn Voir la publication originale Cette dernière est republiée ici afin de ne pas dépendre entièrement d’une...
13  janvier     23h00
La formulation d’un message n’est pas un détail
   La manière dont on transmet un message est tout aussi importante que le fond du message lui-même. Ce billet a été initialement publié sur LinkedIn Voir la publication originale Cette dernière est republiée ici afin de ne pas dépendre entièrement d’une plateforme tierce. Les équipes techniques...
06  janvier     23h00
Les bonnes pratiques sont contextuelles
   Ce qui fonctionne pour une équipe et un projet donné peut ne pas fonctionner ailleurs. L’architecture, la méthodologie, les pratiques en place qui ont fonctionné dans un contexte précis ne sont pas nécessairement transposables telles quelles d’une équipe à une autre ou d’un projet à un autre. Ce...
03  janvier     23h00
Récapitulatif 2025
   Je ne suis pas coutumier du traditionnel récapitulatif de l’année écoulée, néanmoins cela ne fait pas de mal de regarder un peu en arrière de temps en temps. Partage de contenu Je m’étais fixé comme objectif de relancer un peu ce blog et de publier de manière plus régulière. J’avais en tête un...
16  décembre     23h00
Ce que l’on tolère devient un nouveau standard d’entreprise
   Ce que l’on tolère devient un nouveau standard d’entreprise. Du code sans tests qui est accepté un jour deviendra la norme de demain. Un raccourci technique validé une fois parce que cela arrange s’éparpillera dans le projet au cours du temps. Ce billet a été initialement publié sur LinkedIn Voir...
11  décembre     23h00
L’onboarding développeur en 1 étape
   L’onboarding d’un nouveau développeur sur un projet est une étape cruciale. Rien de plus frustrant que de devoir passer plusieurs heures à configurer un environnement de développement avant de pouvoir écrire la moindre ligne de code. Ce billet a été initialement publié sur LinkedIn Voir la...
02  décembre     23h00
Les réunions hybrides (présentiel distanciel)
   Quand on commence à faire du télétravail, on se rend rapidement compte que les réunions hybrides (à la fois en présentiel et distanciel) sont compliquées à gérer: les personnes à distance peuvent rapidement être oubliées et devenir invisibles si certaines règles ne sont pas mises en place. Ce...
25  novembre     23h00
Les boring technologies , un choix sous-estimé
   Les boring technologies (comprendre les technologies ennuyantes) sont clairement les technologies les plus sous-cotées actuellement. Ce billet a été initialement publié sur LinkedIn Voir la publication originale Cette dernière est republiée ici afin de ne pas dépendre entièrement d’une plateforme...
18  novembre     23h00
La taille d’une équipe est importante
   Pour être efficiente, la taille d’une équipe ne devrait pas dépasser 12 personnes. Elle devrait même idéalement se situer entre 5 et 9 personnes. C’est l’idée que l’on retrouve derrière la règle de la pizza team popularisée par Jeff Bezos (le fondateur d’Amazon) et également un concept au cœur du...
12  novembre     23h00
Équipe et individualité
   Une équipe n’est pas uniquement la somme d’individualité qui travaille conjointement. Une équipe, c’est un ensemble de personnes qui avance à un but commun et qui partage les responsabilités de leur travail. Ce billet a été initialement publié sur LinkedIn Voir la publication originale Cette derni...
04  novembre     23h00
Les équipes de développement ne sont pas immuables
   Les équipes de développement ne sont pas immuables. Lorsqu’elles se retrouvent modifiées par l’arrivée ou le départ d’un nouveau membre, c’est une nouvelle équipe qui se crée. Ce billet a été initialement publié sur LinkedIn Voir la publication originale Cette dernière est republiée ici afin de ne...
28  octobre     23h00
Le problème n’est pas humain, il est organisationnel
   Une des phrases que j’ai le plus entendue depuis le début de ma carrière est l’équipe X n’a pas conscience des problèmes de l’équipe Y . Et dans la plupart des cas ou elle est prononcée, le problème est rarement humain. Il est plutôt organisationnel. Ce billet a été initialement publié sur...
21  octobre     22h00
Expliquer un concept avant de le nommer
   Au fil des années, j’ai appris à expliquer un concept avant de le nommer. Partir d’un problème, décrire les différentes solutions envisagées, leurs avantages et inconvénients. Ce n’est qu’une fois que l’équipe a compris et adhéré à l’approche que l’on peut nommer cette dernière. Mais pourquoi...
14  octobre     22h00
Comment arbitrer les développements prioritaires ?
   Comment arbitrer les développements prioritaires ? Quelles fonctionnalités prioriser ? La réponse à ces questions peut être trouvée dans le développement piloté par le métier (Domain Driven Design), qui nous propose des outils utiles permettant de classer les domaines métier selon trois catégories...
06  octobre     22h00
Build vs Buy
   Dans ma publication de la semaine dernière, j’évoquais le fait que la solution à un problème logiciel ne provient pas nécessairement du code. Mais concrètement, que cela signifie-t-il ? Ce billet a été initialement publié sur LinkedIn Voir la publication originale Cette dernière est republiée ici...
29  septembre     22h00
Les meilleures solutions ne proviennent parfois pas du code
   Dans les équipes de développement, les meilleures solutions ne proviennent parfois pas du code. Pour que cela soit possible, il faut pouvoir prendre le recul nécessaire. Il faut avoir la vision globale qui permet de comprendre le problème de fond et d’aller plus loin que ce qui est spécifié dans un...
27  septembre     22h00
Le langage de programmation n’est qu’un outil pour arriver à ses fins
   Cela fait plusieurs années que j’entends régulièrement je suis développeur X (insérer n’importe quel langage de programmation ou framework). Cette tendance à se définir par rapport à un langage ou framework spécifique est de plus en plus commune et n’est à mon sens pas sans conséquence. Pour ma...
22  septembre     22h00
La loi de Conway
   L’organisation interne d’une entreprise a un impact direct sur la manière dont y sont développés les outils. L’organisation et les interactions au sein des équipes influencent l’architecture des projets. C’est l’illustration de la loi de Conway. La loi de Melvin Conway stipule que toute...
15  septembre     22h00
You run it, You build it
   Mon expérience a montré que les équipes qui assurent l’ensemble du cycle de vie d’un produit (de la conception au déploiement en passant par sa maintenance) obtiennent de meilleurs résultats et conçoivent des solutions de meilleure qualité. Ce billet a été initialement publié sur LinkedIn Voir la...
08  septembre     22h00
On ne peut pas améliorer ce que l’on ne mesure pas
   Au cours de ma carrière, j’ai vu de nombreuses équipes de développement avancer en mode tunnel , à l’aveugle, avec comme seule vision la liste des tâches à accomplir. Pourtant, il est essentiel de regarder en arrière pour visualiser l’impact de notre travail. Ce billet a été initialement publié...
18  août     22h00
Partager sa vision
   Après les congés d’été et avec la rentrée de septembre qui approche, c’est le bon moment pour définir ou repartager sa vision stratégique. Ce billet a été initialement publié sur LinkedIn Voir la publication originale Cette dernière est republiée ici afin de ne pas dépendre entièrement d’une...
27  juillet     22h00
Testez votre documentation OpenAPI (avec PHP)
   Il n’y a rien de plus frustrant que d’utiliser une API qui ne se comporte pas de la manière qui est décrite dans sa documentation. Nombreux sont les développeurs ayant déjà vécu cette situation. Et pour cause, maintenir une documentation précise et à jour peut s’avérer être une tâche complexe et...
21  mai     22h00
C’est quoi un test unitaire ?
   Depuis que je fais de l’informatique, lorsque l’on parle de tests automatisés, je remarque que tout le monde a une définition différente de ce qu’est un test. Qu’ils soient dits unitaires, d’intégration, fonctionnels ou de bout en bout, je n’ai quasiment jamais vu deux équipes en avoir la même d...
19  mai     22h00
L’IA comme catalyseur de création des side-projects
   C’est une réalité indéniable, l’intelligence artificielle est désormais présente dans notre quotidien professionnel. Nous (développeurs) utilisons dorénavant de nombreux outils toujours plus puissants (ChatGPT, Claude, Cursor, Windsurf, ...). Il en résulte que la création de projet devient d...
10  mai     22h00
Évaluez la qualité de vos tests avec les tests de mutation
   Très souvent, lorsque l’on souhaite mettre en place des indicateurs sur les tests d’un projet, la première mesure que l’on va mettre en place est celle de la couverture de code. Et pour beaucoup, il s’agit de la métrique principale permettant d’avoir une idée de qualité des tests d’un projet. Cette...
17  avril     22h00
La Clean Architecture , bien plus qu’une arborescence de fichier
   Une grande partie des projets informatique, que j’ai pu voir au cours de ma carrière, conçue autour d’une architecture hexagonale, était bien souvent plus proche d’une clean architecture en pratique. Cette dernière, est souvent découpée en plusieurs couches qui sont Domain, Application ou UseCase,...
14  avril     22h00
Un projet cohérent sur le long terme grâce aux tests d’architecture
   L’architecture d’un projet joue un rôle crucial dans sa maintenabilité et son évolution. Si généralement au début d’un projet, il est facile de bien structurer son code, l’ajout successif de nouvelles fonctionnalités, l’arrivée ou le passage de nouveaux développeurs peuvent dégrader la qualité des...
06  avril     22h00
Structurez votre code explicitement avec la Screaming Architecture
   Vous est-il déjà arrivé d’ouvrir un projet, de regarder la structure de son code, l’organisation des différents répertoires et de n’avoir aucune information sur les fonctionnalités, les cas d’utilisation ou encore le métier géré par ce dernier ? En ce qui me concerne, c’est le cas de nombreux...
17  mars     23h00
Le principe d’Exponential Backoff
   La majorité des applications modernes sont amenées à communiquer avec des systèmes tiers, tels que des services Web, des bases de données, des systèmes de messagerie ou de files d’attente, etc. Ces derniers peuvent rencontrer des pannes temporaires liées à des facteurs externes, perte de connexion...
11  mars     23h00
Les tests automatisés à eux seuls ne garantissent pas le bon fonctionnement de vos applications
   Lorsque l’on commence à écrire des tests, nous avons souvent un sentiment de sécurité vis-à -vis du bon fonctionnement de nos applications. Une fonctionnalité a été conçue, une série de tests automatisés (qu’ils soient unitaires, fonctionnels, d’intégrations, parfois même en parallèle de tests...
28  février     23h00
Des objets autovalidants avec le Self-Validating Object pattern
   J’ai déjà évoqué dans ce blog la notion de cohérence des données au sein d’un modèle orienté objet. Ce principe est connu sous le nom de Self-Validating Object (objet autovalidant). On le retrouve également sous le nom de Validated Domain Object ou Invariant-Enforcing Object dans la littérature...
15  février     23h00
Tester les implémentations d’une interface avec le Behavioral Contract Testing
   Lorsque l’on doit écrire plusieurs implémentations d’une interface, il est crucial de veiller à ce qu’elles aient le même comportement. Par exemple, une interface PaymentProcessor permettant de s’interfacer avec plusieurs plateformes de paiements possède trois implémentations, il est important que...
11  février     23h00
Gérer des raccourcis clavier dans des projets Web
   Il peut parfois être utile d’ajouter des raccourcis clavier dans nos applications Web afin de simplifier ou d’accélérer l’accès à certaines fonctionnalités. Mettre en place une gestion des raccourcis dans son projet est très facile : cela ne nécessite que quelques lignes de code JavaScript. Il...
09  février     23h00
Le design pattern Unit of Work
   Le design pattern Unit of Work est au cœur de nombreux projets du fait qu’il s’agit d’un modèle utilisé par de nombreux ORM (parmi lesquels on peut citer Hibernate pour Java, EntityFramework pour l’environnement Dotnet ou encore Doctrine pour PHP). Ce dernier a pour objectif de tenir à jour une...
02  février     23h00
Quelle différence entre le pattern CQS et CQRS ?
   Ces dernières années, on a entendu de plus en plus souvent parler du pattern CQRS (pour Command Query Responsibility Segregation) du fait de sa démocratisation croissante. Mais on entend beaucoup moins parler du pattern CQS (pour Command Query Separation). Et pour cause, les deux concepts sont...
26  janvier     23h00
La notion de message en programmation
   Au début de l’informatique, le concept de message était assez large, désignant une transmission de données entre des objets (appels de fonctions, système événementiel, etc.). De nos jours, un message se définit plutôt comme une communication émise dans un bus (généralement asynchrone, mais pas...
24  janvier     23h00
Intégrer un moteur de recherche dans un site statique
   Un moteur de recherche est disponible depuis quelques mois sur la page des articles de ce blog. Ce dernier étant généré par Jekyll, un générateur de sites statiques, mettre en place un moteur de recherche sur un site non dynamique n’est pas chose aisée. Heureusement, il existe Lunr.js: une biblioth...
19  janvier     23h00
Les constructeurs nommés comme alternative aux constructeurs multiples en PHP
   En PHP et, contrairement à d’autre langage, il n’est pas possible d’avoir plusieurs constructeurs dans une classe. Pouvoir définir plusieurs constructeurs peut-être intéressants dans de nombreux cas, comme par exemple, pouvoir construire un objet à partir de différents types de données. Si cela n...
12  janvier     23h00
Écrire une API idempotente (exemple en PHP avec Symfony)
   D’après la RFC 9110 qui spécifie la sémantique d’une requête HTTP, une requête est considérée comme idempotente si elle peut être effectuée plusieurs fois et obtenir un résultat identique lors de chaque appel. Par exemple, si l’on tente d’accéder à une ressource REST GET resource 42, deux appels à...
06  janvier     23h00
Copier une image Docker d’une registry à une autre
   J’ai récemment eu le besoin de copier plusieurs images d’une registry Docker à une autre. Bien que cette opération puisse sembler simple au premier abord, il y a quelques points auxquels il faut prêter attention. La première solution à laquelle on pourrait penser serait de récupérer l’image sur sa...
05  novembre     23h00
Un environnement local Dockerisé en deux lignes de commande avec ddev
   Construire un environnement de développement en local peut être fastidieux. Si l’on souhaite un environnement natif , il faudra installer tout le nécessaire en local. L’utilisation de machines virtuelles est pratique, mais gourmand en ressources matérielles. L’alternative à tout cela c’est bien ...
27  octobre     23h00
Testez vos images Docker
   Vous construisez des images Docker régulièrement ? Vous savez alors certainement que ce n’est pas parce que la construction de votre image s’est réalisée sans erreurs que cette dernière va se comporter comme vous vous y attendez. La construction d’une image Docker, tout comme n’importe quel code ...
24  octobre     22h00
Le pattern Optional, le conteneur de valeur qui va remplacer vos données nullables
   Nous manipulons tous au quotidien des données nullables, or manipuler des données qui peuvent être null implique de devoir effectuer de nombreuses vérifications afin de savoir si la donnée que l’on manipule contient bien une valeur avant de l’utiliser. Auquel cas, nous aurons une erreur de type...
22  octobre     22h00
Installer des extensions PHP facilement dans une image Docker
   Si vous avez déjà construit des images Docker pour des applications ou projet PHP, vous avez certainement utilisé l’outil docker-php-ext-install. Ce dernier permet d’installer et configurer simplement des extensions PHP qui seront disponibles dans le conteneur. Néanmoins, cet outil se limite...
11  septembre     22h00
Installer Cursor sur Ubuntu 24.04
   Je ne sais pas pour vous, mais s’il y a bien un outil orienté IA dont j’entends beaucoup parlé en ce moment c’est bien Cursor, un fork de Visual Studio Code dont la promesse est de vous faire développez plus avec grâce à l’intelligence artificielle tout en restant dans un environnement connu. Par...