Le MEILLEUR outil pour détecter les "code smells" React (React Doctor)

BBetter Stack
컴퓨터/소프트웨어구직/면접AI/미래기술

Transcript

00:00:00React vient de se doter d'un nouvel outil d'analyse d'anti-patterns appelé React Doctor.
00:00:05Il a été créé par Aidan Bai, le développeur très talentueux à l'origine de Million.js,
00:00:11React Grab, React Scan et Amy.
00:00:14Et dans la vidéo d'aujourd'hui, nous allons examiner cet outil, voir comment il fonctionne
00:00:19et l'essayer par nous-mêmes.
00:00:20Ça va être très intéressant, alors plongeons dans le vif du sujet.
00:00:27React Doctor est un outil CLI simple conçu pour détecter les anti-patterns React courants,
00:00:33tels que les use effects inutiles, les problèmes d'accessibilité ou le prop drilling.
00:00:38Sous le capot, il utilise OX lint, l'un des linters JavaScript les plus rapides,
00:00:43écrit en Rust.
00:00:44Et parce qu'OX lint repose sur Rust, il peut analyser des dizaines de milliers de lignes
00:00:49de code en quelques millisecondes.
00:00:50Il s'en sert pour construire un arbre syntaxique abstrait (AST) de votre projet,
00:00:56recherchant des structures React spécifiques comme l'usage des hooks ou le destructuring.
00:01:01Il s'appuie sur plus de 47 bonnes pratiques React et inclut des analyses utiles comme,
00:01:08par exemple, la détection de clés de sécurité codées en dur par erreur,
00:01:13ou l'analyse des patterns d'état de chargement pour suggérer quand
00:01:19utiliser useTransition à la place.
00:01:21Ce projet est entièrement open source et encore tout récent.
00:01:25C'est donc une excellente occasion pour la communauté d'y contribuer
00:01:30en ajoutant d'autres vérifications de bonnes pratiques qui pourraient manquer.
00:01:33Je pense que la partie la plus cool de ce projet est l'interface utilisateur.
00:01:36Le design et l'esthétique sont superbes, et grâce à OX lint, c'est ultra rapide.
00:01:42En plus de tout cela, vous pouvez l'exécuter comme une compétence pour votre agent de codage
00:01:47ou l'utiliser de manière programmatique sur une API Node.js, par exemple.
00:01:52Maintenant, essayons cet outil nous-mêmes.
00:01:54J'ai ce projet React qui est un simple outil de visualisation de graphiques boursiers,
00:02:00que j'ai écrit il y a six ans, bien avant que l'IA ne soit monnaie courante.
00:02:04Ce sera très intéressant de voir comment j'écrivais du React il y a six ans.
00:02:09Je vais donc lancer la commande React Doctor dans mon dépôt.
00:02:12Et comme vous pouvez le voir, nous obtenons instantanément un résultat.
00:02:15Et regardez ça !
00:02:16Mon projet a un score presque parfait.
00:02:18Ça me fait chaud au cœur de savoir que même il y a six ans, j'écrivais du code React
00:02:24de bonne qualité.
00:02:25Voyons un peu ce qu'il a découvert.
00:02:27Nous avons un avertissement sur l'utilisation de l'index comme clé, ce qui est très juste.
00:02:31Ensuite, il a reconnu que "recharts" est une bibliothèque lourde.
00:02:35Il me conseille donc d'utiliser le lazy loading à la place.
00:02:38Il a aussi remarqué que j'ai quatre appels useState dans un seul useEffect.
00:02:44Et que je devrais envisager d'utiliser useReducer.
00:02:46Tous ces points sont très valables.
00:02:48Merci, React Doctor.
00:02:49Maintenant, essayons de le lancer sur une base de code plus large.
00:02:52Voici un projet CRM très populaire appelé "20", qui se veut une alternative
00:02:57open source à Salesforce.
00:02:59Et c'est écrit en React.
00:03:00Clonons ce dépôt et voyons comment React Doctor l'évalue.
00:03:04Une fois lancé, on voit que React Doctor détecte automatiquement que ce projet
00:03:08est un monorepo et reconnaît les différents packages.
00:03:12Calculons d'abord le score pour leur package de site marketing.
00:03:15Comme on peut le voir ici, c'est également plutôt bon.
00:03:18On a une erreur, mais c'est juste une balise "alt" manquante.
00:03:22Globalement, je dirais que c'est un très bon score.
00:03:25Très bien, vérifions maintenant le package "front", par exemple.
00:03:30Celui-ci s'en sort un peu moins bien avec 99 erreurs, mais reste dans la zone verte.
00:03:35Voici ce que je recommanderais :
00:03:37Si vous êtes un développeur souhaitant améliorer son portfolio GitHub, c'est un super outil
00:03:41pour scanner divers projets open source et identifier les endroits où vous pouvez
00:03:47apporter des contributions significatives.
00:03:48Voilà donc React Doctor en résumé. Je pense que c'est un outil léger et pratique
00:03:52qui peut vraiment aider à la relecture et à la vérification de la cohérence
00:03:58de vos projets React.
00:03:59Et je l'utiliserai certainement dans mes propres projets à l'avenir.
00:04:03Si vous avez trouvé cette vidéo utile, n'hésitez pas à me le faire savoir
00:04:07en cliquant sur le bouton "J'aime" sous la vidéo.
00:04:09Et n'oubliez pas de vous abonner à notre chaîne pour ne pas manquer
00:04:14nos prochaines vidéos.
00:04:15C'était Andris de Better Stack, et je vous dis à bientôt dans les prochaines vidéos.

Key Takeaway

React Doctor s'impose comme un outil d'analyse statique ultra-performant et accessible pour assainir le code React en identifiant rapidement les dettes techniques et les mauvaises pratiques.

Highlights

Présentation de React Doctor

Timeline

Introduction et origines de React Doctor

L'animateur introduit React Doctor comme le dernier outil indispensable pour l'écosystème React. Il souligne que le créateur, Aidan Bai, est déjà reconnu pour des projets majeurs tels que Million.js et React Scan. Cette séquence établit la crédibilité de l'outil dès le départ en s'appuyant sur le talent de son développeur. L'objectif de la vidéo est clairement défini : explorer le fonctionnement et l'efficacité de cette solution. C'est un point de départ essentiel pour comprendre l'engouement autour de ce nouveau linter spécialisé.

Fonctionnement technique et fonctionnalités clés

Cette section détaille l'architecture de React Doctor qui repose sur OX lint, un moteur écrit en Rust garantissant une vitesse d'exécution fulgurante. L'outil analyse l'arbre syntaxique abstrait (AST) pour repérer des problèmes variés comme le prop drilling ou l'usage incorrect des hooks. Le narrateur mentionne la présence de 47 règles de bonnes pratiques, allant de la détection de clés de sécurité exposées à l'optimisation des états de chargement avec useTransition. L'aspect open source est mis en avant, encourageant la communauté à enrichir la base de règles existante. Enfin, l'esthétique de l'interface et la flexibilité d'utilisation via API sont saluées comme des atouts majeurs.

Test pratique sur un ancien projet personnel

Andris met l'outil à l'épreuve en analysant un projet de visualisation boursière qu'il a codé six ans auparavant. React Doctor génère un rapport instantané, révélant des erreurs de conception pertinentes malgré un score globalement positif. Parmi les critiques soulevées, on trouve l'utilisation d'index comme clés ou la nécessité de passer au lazy loading pour des bibliothèques lourdes comme "recharts". L'outil suggère également de remplacer plusieurs useState par un useReducer pour une meilleure gestion d'état. Cette démonstration prouve que l'outil est capable de fournir des conseils architecturaux concrets même sur du code legacy.

Analyse d'un projet open source d'envergure

Pour tester la scalabilité, l'animateur lance React Doctor sur "20", un CRM open source complexe fonctionnant en monorepo. L'outil démontre sa capacité à segmenter l'analyse par package, identifiant des erreurs mineures d'accessibilité sur le site marketing et des problèmes plus nombreux sur la partie front-end. Cette partie met en lumière l'utilité stratégique de React Doctor pour les contributeurs open source qui cherchent des points d'entrée précis pour améliorer des projets existants. En conclusion, le narrateur réaffirme son intention d'intégrer cet outil léger dans son flux de travail quotidien. La vidéo se termine par un appel à l'action classique pour soutenir la chaîne Better Stack.

Community Posts

No posts yet. Be the first to write about this video!

Write about this video