L’auteur explique comment les arguments booléens positionnels dans les appels de fonctions rendent le code difficile à lire et à comprendre. Il illustre ce problème avec des exemples comme createUser(user, true, false) où il est impossible de savoir ce que signifient les booléens sans consulter la définition de la fonction. Cette pratique, bien que pratique à écrire, force les développeurs à "décoder" plutôt qu'à lire le code, ce qui ralentit la compréhension.
Pour résoudre ce problème, l’auteur recommande d'utiliser des objets nommés à la place des booléens positionnels, comme createUser(user, { isAdmin: true, sendWelcomeEmail: false }), ce qui rend l'appel de fonction immédiatement compréhensible. Il suggère également de remplacer les booléens par des noms de fonctions plus explicites, comme createAdminUser(user) au lieu de createUser(user, true), lorsque cela est pertinent.
Enfin, l’auteur reconnaît que cette approche n'est pas toujours nécessaire pour des cas simples comme toggleMenu(true), mais devient indispensable dès qu'il y a plusieurs booléens ou que la signification n'est pas évidente. Il conclut que cette pratique améliore significativement la lisibilité du code, surtout dans des projets complexes où la maintenance et la compréhension sont cruciales.
Dans un monde où l’IA transforme radicalement le développement logiciel, l’auteur propose les 4C (Concevoir, Contextualiser, Contraindre, Comprendre) comme cadre pour maintenir la qualité et la maintenabilité du code. Face à l’évolution rapide des outils (comme les LLMs), ces principes servent de boussole pour structurer les interactions avec l’IA, en insistant sur la rigueur en amont (conception détaillée, explicitation des besoins) et la compréhension des invariants. Une approche essentielle pour éviter les pièges du Vibe Coding et préserver la stabilité des projets.
Scott H Young explore l'importance du "taste" (goût, discernement) dans un monde où l'IA excelle dans la résolution de problèmes mais manque de jugement pour choisir les bons problèmes à résoudre. Il définit le goût comme la capacité à distinguer les bonnes idées des mauvaises et les opportunités prometteuses des impasses. Young explique que le goût peut être acquis comme une expertise, à travers la pratique, l'observation et le feedback, mais qu'il est distinct de la simple compétence technique. Il souligne que le goût repose à la fois sur l'intuition (basée sur des souvenirs de modèles passés) et la compréhension (simulations mentales). Pour développer son goût, il est essentiel de s'exposer à de nombreux exemples et de s'entraîner à faire des jugements.
L'auteur partage une réflexion sur l’importance d’expliquer un concept avant de le nommer, surtout dans un contexte technique ou d’équipe. Selon lui, partir d’un problème concret, explorer les solutions possibles et leurs implications permet à l’équipe de comprendre et d’adhérer à une approche avant même de lui attribuer un nom — souvent un « buzzword » qui peut générer des biais ou des préjugés. Il illustre cela avec l’exemple de l’architecture hexagonale, adoptée naturellement par son équipe une fois le besoin et la logique compris, alors que le terme seul aurait pu être rejeté d’emblée. L’enjeu est d’éviter que les mots ne deviennent des arguments d’autorité et de privilégier la compréhension profonde pour évaluer la pertinence d’une solution. Une pratique qui favorise la réflexion critique et l’adhésion collective.
L'auteur nous livre ses réflexions à propos de la compréhension