Edouard LAINE
Expert en ingénierie logicielle - Développeur Full Stack
Compétences techniques

React

Niveau de maîtrise : 70/100
Priorité dans mon profil : 50/100

Bibliothèque centrale de mon profil front-end, React me permet de construire des interfaces dynamiques, structurées et réutilisables, en organisant l’affichage autour de composants, de propriétés, d’états et d’une logique utilisateur maintenable.

Logo React

Ma définition

Définition

React est une bibliothèque JavaScript utilisée pour construire des interfaces utilisateur à partir de composants. Elle permet de découper une interface en éléments indépendants, réutilisables et composables : boutons, formulaires, cartes, listes, menus, pages ou sections complètes. Cette approche facilite la maintenance d’une application, car chaque partie de l’interface peut être pensée comme une brique avec ses responsabilités propres.

Dans un contexte professionnel, React est particulièrement utilisé pour développer des applications web interactives, des interfaces d’administration, des plateformes métier, des tableaux de bord, des sites vitrines dynamiques ou des applications full stack lorsqu’il est associé à des frameworks comme Next.js. Sa logique repose sur la séparation entre les données reçues, leur affichage et les interactions de l’utilisateur.

L’enjeu actuel autour de React est lié à la complexité croissante des interfaces web. Les utilisateurs attendent des applications rapides, lisibles, responsives et agréables à utiliser. De leur côté, les développeurs doivent produire des interfaces maintenables, accessibles et capables d’évoluer sans être réécrites entièrement. React répond à ces besoins en favorisant une architecture par composants, où l’on peut isoler les responsabilités, mutualiser les éléments récurrents et faire évoluer progressivement l’interface.

Dans mon profil d’ingénieur logiciel, React occupe une place importante parce qu’il me permet de relier la conception technique à l’expérience utilisateur. Je ne l’utilise pas uniquement pour afficher des données, mais aussi pour organiser les parcours, structurer les formulaires, améliorer la lisibilité des contenus et rendre une application plus agréable à utiliser. Cette compétence complète naturellement TypeScript, Next.js, Node.js, Prisma et MySQL dans une logique full stack.

Mes éléments de preuve

Exemples concrets où cette compétence a été mise en œuvre.

Préparation d’une interface e-commerce moderne avec React

Situation et action menée

Sur le projet Electro Clinic, après la migration de la plateforme PrestaShop, une réflexion a été menée autour d’une future solution e-commerce interne. L’objectif était de préparer une plateforme plus moderne, plus maintenable et plus adaptée aux besoins futurs de l’entreprise.

Dans ce cadre, React représentait une brique importante pour construire une interface utilisateur plus souple qu’un thème e-commerce traditionnel. Il permettait d’imaginer des composants réutilisables pour les pages produits, les listes d’articles, le panier, les formulaires, les sections de navigation et les éléments visuels de la boutique.

J’ai participé au cadrage de cette future solution à travers des livrables comme les maquettes, le cahier des charges, la charte graphique, le schéma de base de données et la documentation. Même si le développement complet de cette solution interne n’a pas pu être finalisé avant la fin de mon alternance, ce travail a permis de préparer une vision plus claire de l’interface à construire.

Résultat obtenu

Le projet de refonte a gagné en clarté sur le plan de l’expérience utilisateur. Les maquettes et les documents produits ont permis de mieux représenter les futurs parcours, les composants nécessaires et les besoins d’affichage d’une boutique e-commerce moderne.

React a été identifié comme une solution cohérente pour construire une interface modulaire, évolutive et mieux maîtrisée qu’une personnalisation limitée d’un thème existant.

Ma valeur ajoutée

Ma valeur ajoutée a été de participer à la transformation d’une intention de refonte en vision d’interface plus concrète. J’ai contribué à penser l’interface en termes de composants, de parcours utilisateur et de réutilisabilité.

Cette preuve montre ma capacité à utiliser React dans une réflexion de conception front-end, même avant la phase complète de développement. Elle illustre aussi ma capacité à relier les besoins métier, l’expérience utilisateur et les choix techniques d’une future application.

Préparation d’une génération de composants React dans The Object

Situation et action menée

Dans le projet The Object, l’objectif est de générer automatiquement des éléments techniques à partir d’un schéma source. Le projet est déjà orienté vers la génération d’entités TypeORM, de structures liées à la base de données et d’endpoints CRUD. À terme, une évolution importante consiste à générer également des composants d’interface.

Dans cette perspective, React représente une cible logique. L’idée est de pouvoir transformer un modèle décrit dans un schéma en composants utilisables : formulaires de création ou de modification, listes, vues de détail, champs adaptés aux types de données et interfaces reliées aux endpoints générés.

Cette réflexion m’a amené à penser React non seulement comme une bibliothèque d’affichage, mais comme une cible de génération. Il faut alors réfléchir à la manière de produire des composants suffisamment génériques pour être automatisés, mais suffisamment clairs pour rester maintenables et adaptables.

Résultat obtenu

Cette réflexion a permis de clarifier une trajectoire d’évolution pour The Object. Le projet ne se limite pas à la génération de la couche back-end : il peut progressivement évoluer vers une génération plus complète, incluant une partie de l’interface utilisateur.

React devient ainsi une brique cohérente dans la roadmap du projet. Il permettrait de relier les modèles, les endpoints et l’expérience utilisateur dans une logique d’industrialisation du développement.

Ma valeur ajoutée

Ma valeur ajoutée a été d’anticiper l’évolution du projet vers l’interface utilisateur. J’ai cherché à penser la génération de composants React comme une continuité logique de la génération des modèles et de l’API.

Cette preuve montre ma capacité à projeter React dans une architecture plus large. Elle illustre aussi mon objectif d’utiliser les composants non seulement pour développer une interface manuellement, mais aussi pour standardiser et accélérer la création d’interfaces à partir d’un schéma source.

Mon autocritique

Mon niveau actuel

Je situe mon niveau en React à un niveau intermédiaire avancé. Je suis capable de construire des interfaces structurées avec des composants réutilisables, des propriétés, des listes dynamiques, des formulaires, des états d’affichage et une organisation cohérente entre les différentes parties d’une application.

Je suis également capable d’utiliser React dans un environnement moderne avec TypeScript et Next.js. Dans ce contexte, React me permet de construire les composants visuels, tandis que Next.js apporte le routage, les actions serveur, la récupération de données et l’architecture globale de l’application.

Points forts

Mon principal point fort est ma capacité à découper une interface en composants compréhensibles. Lorsque je développe une page, je cherche à distinguer ce qui relève de la structure générale, des composants réutilisables, des formulaires, des contenus dynamiques et des interactions utilisateur. Cette approche rend le code plus lisible et plus facile à faire évoluer.

Je suis aussi attentif à l’expérience utilisateur. Pour moi, une interface React ne doit pas seulement fonctionner techniquement : elle doit être claire, agréable à parcourir et adaptée à l’usage. Cela se retrouve notamment dans mon travail sur des interfaces d’administration, où les formulaires doivent être compréhensibles, les champs bien organisés et les actions faciles à identifier.

Limites actuelles

Je dois encore progresser sur certains sujets avancés de React, notamment l’optimisation fine des performances, la gestion d’états complexes, la mémorisation avec `useMemo` ou `useCallback`, les stratégies de rendu et les architectures front-end de grande taille.

Je dois aussi renforcer ma maîtrise des tests d’interface. Je comprends l’intérêt de tester les composants, les interactions et les formulaires, mais je dois être plus régulier dans cette pratique. Une interface React peut sembler fonctionnelle visuellement, mais contenir des erreurs dans certains cas limites : champs vides, données absentes, état de chargement, erreurs serveur ou comportements responsive.

Recul personnel

Avec le recul, je considère React comme une compétence structurante dans mon profil. Elle m’a appris à penser une interface comme un ensemble de composants et non comme une page monolithique. Cette manière de concevoir l’interface améliore la maintenabilité et facilite la collaboration avec d’autres développeurs.

Je dois cependant rester vigilant à ne pas complexifier inutilement les composants. Un bon composant React doit être utile, lisible et réutilisable, mais il ne doit pas devenir trop abstrait ou difficile à comprendre. Mon objectif est donc de trouver un équilibre entre réutilisabilité, simplicité et qualité de l’expérience utilisateur.

Mon évolution dans cette compétence

Objectif à moyen terme

À moyen terme, je souhaite renforcer ma maîtrise de React pour concevoir des interfaces plus robustes, plus accessibles et plus facilement maintenables. Mon objectif est de passer d’une utilisation fonctionnelle de React à une approche plus architecturale, où les composants sont pensés pour être réutilisables, testables et cohérents sur l’ensemble d’une application.

Je veux notamment progresser sur la conception de bibliothèques de composants internes, la gestion des formulaires, l’accessibilité, les états de chargement, la gestion des erreurs et les tests d’interactions utilisateur.

Axes de progression

Je souhaite approfondir la structuration des composants React : séparation entre composants de présentation et composants liés aux données, clarification des propriétés, gestion des responsabilités, factorisation des éléments récurrents et limitation des duplications.

Je veux également progresser sur les interfaces complexes. Cela inclut les tableaux de données, les formulaires dynamiques, les filtres, les recherches, les états intermédiaires, les messages d’erreur, les retours utilisateur et les parcours d’administration. Ces éléments sont importants pour construire des applications professionnelles, où l’utilisateur doit pouvoir comprendre rapidement ce qu’il peut faire et ce qui s’est passé après une action.

Formation et autoformation

Mon évolution passera principalement par la pratique sur mon portfolio, sur The Object et sur des projets full stack personnels. Je souhaite continuer à utiliser React avec TypeScript et Next.js, afin de consolider une stack moderne et cohérente.

Je veux aussi formaliser progressivement mes propres conventions React : organisation des composants, nommage des propriétés, séparation des responsabilités, règles de réutilisation, gestion des formulaires, affichage des erreurs et documentation des composants importants. Cette démarche doit m’aider à produire des interfaces plus professionnelles, plus homogènes et plus faciles à maintenir.

Réalisations rattachées à cette compétence