Quotidien Shaarli
Aujourd'hui - July 27, 2026
Ce billet de Pascal Martin aborde la réalité du développement logiciel, où les développeurs passent souvent plus de temps à maintenir ou modifier du code existant qu’à en écrire de nouveau. L’auteur souligne que, même au sein d’une équipe, la connaissance approfondie d’un projet est rarement partagée par tous ses membres, chacun intervenant principalement sur des parties spécifiques. Il évoque aussi l’absence historique de pratiques comme les revues de code ou les tests automatisés, qui auraient pu faciliter cette maîtrise collective.
Martin illustre son propos par son expérience personnelle, où il a souvent dû intervenir sur des bases de code inconnues, que ce soit en SSII ou en tant qu’éditeur de logiciels. Il note que même les projets développés from scratch reposent souvent sur des composants partagés, et que l’ajout de nouveaux développeurs ne garantit pas une connaissance exhaustive du code.
Enfin, il remet en question l’idée reçue selon laquelle une équipe connaît parfaitement son propre projet, rappelant que les absences, les départs ou le simple passage du temps rendent cette maîtrise illusoire. Il interroge ainsi les pratiques de passation de connaissances et de documentation au sein des équipes.
L’auteur présente la création d’un serveur MCP (Model Context Protocol) intégré à une application Symfony, permettant à une IA comme Claude d’interagir avec un tableau de bord interne de suivi de projets. Ce serveur, sécurisé par OAuth des deux côtés (client et serveur), utilise l’authentification Google Workspace pour restreindre l’accès aux membres de l’organisation. Les outils MCP, définis comme des classes invocables avec des attributs dédiés, exposent des fonctionnalités comme la liste des projets ou des alertes de sécurité, avec des paramètres typés et des schémas JSON générés automatiquement à partir des signatures PHP.
L’implémentation repose sur le bundle MCP de Symfony AI, configuré via YAML pour définir les transports (stdio pour le développement, HTTP pour la production) et les instructions destinées à l’IA. Chaque outil, comme list-projects, est conçu comme un service Symfony minimaliste, exploitant l’injection de dépendances et des annotations pour décrire ses capacités. Les paramètres, contraints par des attributs comme #[Schema], permettent une interaction structurée avec les données du tableau de bord.
Cette approche illustre une intégration fluide entre Symfony et les protocoles modernes d’IA, offrant une alternative sécurisée aux requêtes manuelles tout en exploitant les mécanismes existants de l’application. L’auteur souligne la réutilisation des bonnes pratiques Symfony (services, configuration, typage) pour un serveur MCP fonctionnel et maintenable.
L’auteur explique avoir migré son blog de WordPress vers EmDash après 12 ans d’utilisation, citant des raisons de maintenance et de sécurité. EmDash, un CMS inspiré de WordPress mais plus léger, permet d’importer facilement le contenu existant, y compris les images, tout en offrant une interface d’administration similaire.
Le nouveau système repose sur Cloudflare Workers, une plateforme serverless qui limite les risques de sécurité grâce à un runtime restreint. L’auteur souligne les avantages de cette solution, comme l’utilisation de services intégrés (D1, R2, KV) et une consommation de ressources optimisée, idéale pour un site à faible trafic.
EmDash adopte une approche plus sécurisée que WordPress en limitant les capacités des plugins, qui s’exécutent dans des environnements isolés. L’auteur souligne que la plupart des fonctionnalités nécessaires sont déjà intégrées ou facilement développables, réduisant ainsi le besoin de dépendre de modules externes.
L’article explique que la commande git rebase -i est souvent redoutée par les développeurs, alors qu’elle est en réalité simple et utile pour réorganiser, modifier ou supprimer des commits. L’auteur illustre son fonctionnement avec un exemple concret où il combine des commits et en supprime un autre, montrant que les changements restent maîtrisables grâce à des commandes comme pick, reword, squash ou drop.
L’auteur insiste sur la sécurité de cette opération, soulignant qu’il est possible d’annuler un rebase à tout moment avec git rebase --abort et que les anciens commits ne sont pas effacés, mais simplement remplacés par de nouveaux. Le reflog de Git permet même de restaurer l’état précédent en cas d’erreur, rendant le processus réversible et sans risque majeur.
Enfin, l’article défend l’importance d’un historique Git propre, considéré comme un indicateur de professionnalisme, et encourage les développeurs à surmonter leurs craintes pour tirer pleinement parti de cette fonctionnalité.