Objets de page : rendre vos tests d’interface utilisateur moins fragiles

2025-09-15
Objets de page : rendre vos tests d’interface utilisateur moins fragiles

Tester des pages web nécessite d’interagir avec des éléments, mais manipuler directement le HTML rend les tests fragiles. Les objets de page résolvent ce problème en encapsulant une page ou un fragment en tant qu’API spécifique à l’application. Cela permet d’interagir avec les éléments sans accéder directement au HTML. L’objectif est d’imiter les actions de l’utilisateur, en fournissant une interface propre qui masque les widgets sous-jacents. Les champs de texte utilisent des accesseurs de chaîne, les cases à cocher des booléens et les boutons des méthodes orientées action. De bons objets de page modélisent la perspective de l’utilisateur, et non la structure interne de l’interface utilisateur, en renvoyant des types de données de base ou d’autres objets de page. Il existe un débat sur l’inclusion d’assertions dans les objets de page. L’auteur préfère conserver les assertions dans les scripts de test, en évitant les objets de page gonflés et en utilisant des bibliothèques d’assertion pour réduire la redondance. Ce modèle fonctionne avec diverses technologies d’interface utilisateur, utile non seulement pour les tests, mais aussi comme interface de script pour les applications.

Lire plus

LLM : Opportunités et défis

2025-08-29
LLM : Opportunités et défis

Avant une courte pause, l'auteur partage quelques réflexions sur l'état actuel des LLM et de l'IA. Il souligne les lacunes des enquêtes actuelles sur l'impact des LLM sur le développement logiciel, arguant qu'elles négligent les différents workflows d'utilisation des LLM. L'auteur estime que l'avenir des LLM est imprévisible, encourageant l'expérimentation et le partage d'expériences. Il aborde également l'inévitable bulle de l'IA et la caractéristique d'« hallucinations » des LLM, soulignant l'importance de poser les questions plusieurs fois pour validation. Enfin, l'auteur met en garde contre les risques de sécurité posés par les LLM, notamment les vulnérabilités des agents opérant dans les navigateurs.

Lire plus
IA

Construisez votre propre agent de codage CLI : Un guide pratique avec Pydantic-AI et MCP

2025-08-29
Construisez votre propre agent de codage CLI : Un guide pratique avec Pydantic-AI et MCP

Cet article détaille comment l'auteur a construit un agent de codage en ligne de commande utilisant le framework Pydantic-AI et le protocole Model Context Protocol (MCP). En intégrant le modèle Claude, des exécuteurs de tests, un bac à sable d'exécution de code, une recherche de documentation et des outils AWS, l'agent permet les tests de code, le débogage, la recherche de documentation et la modification de code, augmentant ainsi considérablement l'efficacité du développement. L'auteur souligne l'importance du MCP pour étendre les capacités de l'agent et les avantages de construire un agent personnalisé pour répondre aux besoins spécifiques du projet. En fin de compte, l'agent agit comme un partenaire de programmation intelligent, collaborant avec les développeurs pour écrire, déboguer et tester du code.

Lire plus
Développement

IA générative : un changement de paradigme dans la programmation

2025-06-28
IA générative : un changement de paradigme dans la programmation

Les grands modèles de langage (LLM) révolutionnent le développement logiciel, un changement comparable à la transition de l’assembleur aux langages de programmation de haut niveau. L’auteur soutient que les LLM n’élèvent pas seulement le niveau d’abstraction, mais introduisent également le non-déterminisme, modifiant fondamentalement la nature de la programmation. L’évolution de Fortran à Ruby a amélioré l’efficacité, mais n’a pas changé l’essence de la programmation. Le non-déterminisme introduit par les LLM exige que les programmeurs s’adaptent, présentant à la fois des défis et des opportunités.

Lire plus
Développement

Assistants de codage agentifs : progrès impressionnants, défis persistants

2025-03-26
Assistants de codage agentifs : progrès impressionnants, défis persistants

L'IA générative, et en particulier les grands modèles linguistiques (LLM), révolutionnent le développement de logiciels. Ce mémo détaille l'expérience de l'auteur utilisant des assistants de codage IA pendant plusieurs mois, révélant des gains d'efficacité importants ainsi que des défis persistants. L'IA diagnostique souvent incorrectement les problèmes, utilise des solutions de force brute, manque de réutilisabilité du code et génère du code redondant, affectant le flux de travail de l'équipe et la maintenabilité à long terme. L'auteur catégorise ces problèmes en trois rayons d'impact : temps de validation, flux de l'équipe et maintenabilité à long terme, et propose des stratégies d'atténuation, telles qu'une revue minutieuse du code, une réflexion régulière et la mise en place de mécanismes de surveillance de la qualité du code. Le message principal est que, malgré les progrès rapides de l'IA, l'expérience et les compétences du développeur restent cruciales.

Lire plus
Développement

La loi de Conway : l’architecture logicielle reflète la structure organisationnelle

2025-02-05
La loi de Conway : l’architecture logicielle reflète la structure organisationnelle

Il existe un consensus parmi les architectes logiciels sur l’importance de la loi de Conway : toute organisation qui conçoit un système produira une conception dont la structure est une copie de la structure de communication de l’organisation. Cela signifie que l’architecture logicielle reflète souvent l’organisation de l’équipe de développement. Ignorer cela conduit à des conflits entre l’architecture du système et la structure organisationnelle, augmentant la complexité du développement. L’article explore trois stratégies pour aborder la loi de Conway : ignorer, accepter et la manœuvre inverse de Conway (ajuster la structure organisationnelle pour guider l’architecture logicielle). L’auteur souligne que l’évolution de l’architecture du système et de la structure organisationnelle doivent être synchronisées tout au long du développement logiciel, et suggère l’utilisation de méthodes telles que la conception orientée domaine pour faciliter la conception organisationnelle.

Lire plus
Développement loi de Conway

Les Deux Choses les Plus Difficiles en Informatique

2025-01-20
Les Deux Choses les Plus Difficiles en Informatique

Une blague classique chez les programmeurs dit : "Il n'y a que deux choses difficiles en informatique : l'invalidation du cache et la nomination des choses." Cet article retrace l'origine et l'évolution de cette phrase spirituelle, explorant son humour et sa signification plus profonde. De sa forme concise initiale à des variations intégrant des 'erreurs d'indice hors limites' et plus encore, la blague reflète les nombreux défis que les programmeurs rencontrent quotidiennement, soulignant la complexité et le divertissement inhérents à la programmation.

Lire plus
Développement

Refactorisation avec Codemods pour automatiser les modifications d'API

2025-01-11
Refactorisation avec Codemods pour automatiser les modifications d'API

Cet article explore comment les codemods automatisent les modifications de code à grande échelle, notamment lors de la gestion des modifications d'API incompatibles. En utilisant les arbres de syntaxe abstraits (AST), les codemods automatisent les transformations de code avec précision, réduisant considérablement la charge de la refactorisation manuelle. L'article utilise des exemples tels que la suppression de fonctionnalités obsolètes et la refactorisation de composants React complexes, en détaillant le processus utilisant jscodeshift, et discute des problèmes potentiels et des solutions lors de la mise à l'échelle des codemods. Il souligne le rôle des codemods dans l'amélioration de la qualité et de la maintenabilité du code, en présentant une étude de cas réelle de refactorisation d'un composant Avatar.

Lire plus

Tokens de design : la clé d’architectures d’interface utilisateur évolutives et cohérentes

2024-12-18
Tokens de design : la clé d’architectures d’interface utilisateur évolutives et cohérentes

Cet article explore le rôle des tokens de design dans l’architecture moderne des interfaces utilisateur. En représentant les décisions de design sous forme de données, les tokens de design servent de source unique de vérité, permettant la génération automatisée de code sur plusieurs plateformes pour des mises à jour plus rapides et une meilleure cohérence du design. Il détaille l’organisation en couches des tokens de design (tokens d’option, de décision et de composant), les processus de distribution automatisés et comment choisir le nombre approprié de couches et la portée des tokens. Enfin, il discute des situations où les tokens de design sont appropriés et de leurs limites, aidant les lecteurs à déterminer s’ils conviennent à leurs projets.

Lire plus