L'article explore l'utilisation pratique des outils de codage basés sur l'IA pour les développeurs responsables. Il met en lumière comment des outils comme Copilot, Cursor, Claude et ChatGPT peuvent améliorer le flux de travail en gérant des tâches fastidieuses, en aidant à naviguer dans des codebases complexes et en facilitant l'implémentation de fonctionnalités dans des langages inconnus. L'auteur partage des techniques concrètes pour utiliser ces outils de manière responsable, en insistant sur la qualité du code, la sécurité, la confidentialité et l'approbation des outils par l'employeur. L'article se concentre sur des applications pratiques, notamment la compréhension de codebases inconnus et la gestion des changements de rupture lors des mises à niveau.
Ce billet explore des techniques Git avancées pour optimiser votre workflow de développement. Il met en lumière l'importance de maintenir un historique Git logique et cohérent, en utilisant des outils comme git rebase -i pour réécrire l'histoire avant de partager vos commits. Il aborde également l'utilisation efficace du staging area avec git add -p pour créer des commits atomiques, et le workflow "fixup" pour corriger des erreurs sans encombrer l'historique. Enfin, il souligne l'importance de travailler avec des branches éphémères et de les rebaser régulièrement pour éviter les conflits et maintenir un historique propre.
L’article explique que dans le développement logiciel, l’ego des développeurs est souvent la vraie source de dysfonctionnements en équipe car il transforme les débats techniques en combats de personnalité et freine l’amélioration collective; l’egoless programming consiste à laisser le problème guider les décisions plutôt que la défense de ses propres idées, en restant ouvert aux idées des autres, en acceptant les retours sans défensivité et en dissociant sa valeur personnelle de la qualité du code, ce qui améliore collaboration, innovation et résultats produit.
Le dépôt GitHub "awesome-cursorrules" de PatrickJS propose des fichiers de configuration pour personnaliser et améliorer l'expérience avec l'éditeur de code AI Cursor. Ces fichiers, nommés ".cursorrules", permettent de définir des règles et comportements spécifiques pour adapter l'IA aux besoins particuliers de chaque projet. Les avantages incluent une personnalisation du comportement de l'IA, une cohérence dans le respect des standards de codage, une meilleure prise en compte du contexte du projet, une productivité accrue, une meilleure cohésion d'équipe et une intégration de connaissances spécifiques au projet. Le dépôt contient des règles pour divers frameworks, bibliothèques, outils de développement et langages de programmation.
L'article explore comment optimiser l'utilisation des agents de codage (comme Claude Code ou GitHub Copilot) pour améliorer la productivité des développeurs. Basé sur des retours d'expérience, il propose plus de 40 bonnes pratiques pour rendre les bases de code plus "agent-friendly". Parmi les conseils clés : intégrer la connaissance du domaine dans le code (via des fichiers dédiés, des commentaires, des noms explicites), améliorer la "SEO" du code pour faciliter la recherche, et suivre des conventions claires. L'objectif est de permettre aux agents de travailler de manière autonome et efficace sur des tâches complexes.
Atomic Design est un modèle de composition d'interfaces utilisateur (UI) bien connu, mais souvent mal utilisé comme architecture d'application complète. Cet article explique que Atomic Design excelle dans l'organisation de l'UI, mais ne répond pas aux questions de domaine, d'orchestration des flux applicatifs ou de gestion de l'état métier. Il propose de séparer clairement la composition de l'UI (où Atomic Design a sa place) de l'architecture applicative, avec des règles strictes pour éviter le couplage caché et maintenir la réutilisabilité des composants. Les features deviennent ainsi l'unité architecturale principale, contenant la logique métier et l'orchestration. Cette séparation améliore également la stratégie de test, avec des tests visuels pour l'UI et des tests d'intégration pour les features.
Cet article de Wanadev Digital explique comment utiliser l'Event Bus de Symfony Messenger pour créer une architecture découplée. Il compare l'EventDispatcher et l'Event Bus, soulignant leurs différences fondamentales : synchrone vs asynchrone, couplage faible vs fort, et scalabilité. L'Event Bus permet un traitement asynchrone, une sérialisation des messages, et une meilleure traçabilité. L'article guide pas à pas pour configurer et utiliser l'Event Bus, idéal pour des tâches comme l'envoi d'emails ou la génération de PDF. Prérequis : comprendre les concepts de Commands et Queries.
L'auteur propose une alternative à la "Ralph loop", appelée "Eric loop", inspirée par le personnage calculateur et manipulateur d'Eric Cartman de South Park. Contrairement à la Ralph loop, la boucle Eric implique une séparation des tâches en plusieurs étapes (planification, exécution, vérification, review) et une formalisation des tâches par une IA. L'auteur illustre ce concept en créant un projet nommé Tiny-till, une application de caisse simple pour marchands ambulants, en utilisant un outil appelé Task-o-matic. L'idée est de mieux contrôler et optimiser l'utilisation des modèles d'IA en séparant les préoccupations et en adaptant les prompts à chaque phase de l'exécution des tâches.
L’article « Tests & Cluedo : enquêtez sur votre code » utilise une métaphore policière pour expliquer les différents types de tests en développement logiciel. Le test unitaire isole une classe (comme un interrogatoire en salle blanche) en utilisant des doublures (mocks) pour éliminer les dépendances externes, permettant de cibler précisément la source d’un bug. Le test fonctionnel reconstitue le crime en testant l’intégration des composants (router, controller, service, template) dans un environnement réel, mais sans interface graphique. Enfin, le test End-to-End (E2E) simule l’expérience utilisateur complète avec un vrai navigateur, utile pour les parcours critiques, mais coûteux en temps et en maintenance. L’auteur recommande une stratégie en pyramide : privilégier les tests unitaires (rapides et précis), compléter avec des tests fonctionnels, et réserver les tests E2E aux fonctionnalités clés. L’approche proactive du TDD (Test Driven Development) est encouragée pour anticiper les bugs plutôt que de les chasser après coup. Un guide pratique et imagé pour bien structurer ses tests avec PHPUnit.
L’article présente une sélection d’essais influents qui ont marqué la pensée et les pratiques de l’auteur en tant qu’ingénieur logiciel. Parmi les textes cités, on retrouve des classiques comme « Choose Boring Technology » de Dan McKinley, qui prône l’utilisation de technologies éprouvées pour éviter les risques inutiles, « Parse, Don’t Validate » d’Alexis King, qui encourage à transformer les données en types riches pour éliminer les états invalides, ou « Things You Should Never Do, Part I » de Joel Spolsky, mettant en garde contre les réécritures complètes de code. D’autres essais, comme « The Majestic Monolith » de DHH ou « The Rise of ‘Worse is Better’ » de Richard P. Gabriel, remettent en question les tendances architecturales (microservices, perfectionnisme) au profit de solutions pragmatiques et adaptées au contexte. L’auteur souligne aussi l’importance de la qualité (« Software Quality at Top Speed » de Steve McConnell) et de la valeur métier (« Don’t Call Yourself a Programmer » de Patrick McKenzie). Enfin, des conseils plus larges, comme « How To Become a Better Programmer by Not Programming » de Jeff Atwood, rappellent que les compétences techniques ne suffisent pas : comprendre le domaine, communiquer et éviter la complexité inutile sont tout aussi cruciaux. Une lecture inspirante pour repenser sa pratique du développement.
Ce guide pratique propose des bonnes pratiques pour sécuriser un serveur Apache2 sous Debian/Ubuntu. Il couvre des aspects essentiels comme masquer la version d'Apache et de l'OS, désactiver le listing des répertoires, configurer des en-têtes de sécurité, désactiver les méthodes HTTP inutiles, et utiliser Fail2Ban pour bloquer les attaques par force brute. Des exemples de configurations et des explications détaillées sont fournis pour chaque étape, avec une conclusion rappelant l'importance de maintenir les mises à jour régulières pour une sécurité continue.
L'auteur partage son expérience de mise en place d'un environnement de préproduction pour son instance Yunohost, virtualisée à partir d'un clone de sa machine physique de production. Il explique les avantages de cette méthode, comme la conservation de tous les ajustements manuels et la possibilité de créer des machines jetables pour des tests. Il détaille les modifications nécessaires pour différencier les VM (nom de la machine, mots de passe, thèmes visuels, etc.) et les bonnes pratiques à adopter, comme l'import régulier des sauvegardes de la préproduction pour valider leur restauration. Les machines virtuelles sont lancées à la demande, ce qui permet d'économiser des ressources.
L’article explique pourquoi adopter une approche « AI-First » (utiliser l’IA en premier pour résoudre tous les problèmes) peut être contre-productif. L’auteur souligne que l’IA excelle pour les tâches répétitives ou nécessitant peu de réflexion, comme la rédaction de brouillons ou la correction, mais qu’elle est inadaptée pour les travaux exigeant une compréhension approfondie, du contexte ou une réflexion stratégique. En effet, l’IA ne peut pas remplacer la pensée humaine, surtout lorsqu’il s’agit de prendre des décisions complexes ou de comprendre les nuances d’un problème. Elle est utile pour automatiser des parties mineures d’un projet, mais son utilisation systématique peut conduire à des résultats médiocres et priver les équipes de l’opportunité d’apprendre et de réfléchir par elles-mêmes. L’auteur recommande plutôt d’intégrer l’IA de manière ciblée, en complément des compétences humaines, et de privilégier l’expérimentation pour identifier les cas où elle apporte une réelle valeur ajoutée.
Ce guide expert partage un retour d'expérience sur l'utilisation de Claude Code, une IA générative, pour améliorer sa pratique du développement. L'auteur explique comment repenser son approche pour tirer pleinement parti de l'IA, en insistant sur l'importance de la précision dans les requêtes, de l'itération progressive et de la collaboration avec l'IA pour le débogage. Il détaille également la configuration optimale de l'environnement, notamment l'intégration avec VS Code et les extensions complémentaires recommandées. L'article aborde les fondamentaux de l'interaction avec l'IA, les techniques avancées et les limites à connaître pour une utilisation efficace.
"Typography in ten minutes" propose cinq règles essentielles pour améliorer rapidement la typographie de vos documents. L’accent est mis sur le texte principal (body text), car il domine visuellement. Voici les points clés :
1) Choisir une taille de police adaptée (10–12 pts en print, 15–25 px sur le web).
2) Régler l’interligne à 120–145 % de la taille de police pour une lisibilité optimale.
3) Limiter la longueur des lignes à 45–90 caractères (ou 2–3 alphabets en minuscules) pour éviter la fatigue oculaire.
4) Éviter les polices par défaut (comme Times New Roman ou Arial) et privilégier des polices professionnelles pour un rendu soigné.
5) Ajuster les marges (plus d’1 pouce en print, éviter les textes collés aux bords sur le web).
L’auteur insiste : appliquer ces règles transforme radicalement la qualité perçue de vos documents, même sans être designer. Un guide concis et pratique pour tous, avec des liens vers des ressources approfondies.
Dans cet article de HTMHell, Darice de Cuba explique l'importance de nommer les classes CSS de manière générique et indépendante du design. Elle souligne que les noms de classes doivent refléter le contenu et non la présentation, afin de faciliter les modifications futures du CSS sans toucher au HTML. Elle donne des exemples de bonnes et mauvaises pratiques, et conclut en insistant sur l'importance de maintenir un code lisible et facile à modifier.
Cet article explore les nuances et les problèmes liés au Time-To-First-Byte (TTFB), une métrique de performance web souvent mal comprise. Marx souligne que le TTFB a plusieurs définitions et est composé de plusieurs sous-parties, ce qui rend difficile la comparaison des mesures et le débogage des problèmes. Il aborde également les facteurs qui peuvent influencer les valeurs de TTFB, y compris les technologies comme HTTP/2 et HTTP/3, et propose des recommandations pour une utilisation plus judicieuse de cette métrique. Le billet est le premier d'une série qui approfondira l'impact de diverses technologies sur le TTFB.
Le Hollandais Volant dresse une liste actualisée des pratiques web qui irritent en 2025, soulignant que beaucoup de problèmes persistent malgré les années. Il critique les sites trop lourds, le retour forcé de la publicité, les sites souvent inopérants comme ceux de la SNCF ou de La Poste, et les interfaces confuses où l'on tourne en rond. Il dénonce aussi les sites qui cachent des informations essentielles ou redirigent vers des réseaux sociaux, comme ceux de l'URSSAF ou de Dell. Un constat amer sur l'évolution du web.
Cet article propose des stratégies pour adopter une relation plus saine avec les réseaux sociaux, notamment Instagram. Il souligne que seulement 7% du temps passé sur ces plateformes est consacré à voir le contenu de nos proches, le reste étant capté par des publicités et des algorithmes. L'auteur suggère de reprendre le contrôle en ajustant les paramètres de confidentialité, en limitant les notifications, en consommant avec modération, et en utilisant des bloqueurs de pubs. Il encourage aussi à favoriser les interactions sociales réelles et à former des communautés. Des conseils pratiques sont donnés pour chaque étape, avec des captures d'écran et des explications détaillées. L'objectif est de récupérer le temps perdu et de profiter des réseaux sociaux de manière plus consciente et bénéfique.
L'article critique l'utilisation excessive de balises <div> (divitis) et l'abus de balises HTML sémantiques sans compréhension de leur véritable signification. L'auteur explique que l'HTML sémantique ne se limite pas à remplacer les <div> par d'autres balises, mais nécessite une compréhension approfondie des éléments et de leur usage correct selon les normes HTML. Il souligne l'importance d'aller au-delà des apparences et de se former continuellement pour écrire un HTML vraiment sémantique et accessible.