Passer au contenu principal

Maxime Vasse est un des fondateurs de O’clock. Un développeur que l’on savait passionné par le Web au point de s’engager dans la transmission de cette passion auprès de la relève.
Il s’est distingué en prenant le Top1 sur le QCM React Champion de WeLoveDevs. Pour ce faire, il a établi le score éternel de 2798 points. Je dis éternel parce que ce score risque d’être invaincu pendant très longtemps !

Il n’a pas bachoté pour préparer ce QCM React et le score montre qu’il était particulièrement passionné par la technologie pour en développer une expertise aussi exhaustive et précise.

Je suis donc allé à sa rencontre, un café à la main, pour lui poser quelques questions et découvrir la face cachée du mythe. 

Q : Bonjour Maxime ! Merci de prendre le temps avec moi.
Est-ce que tu veux un thé ou un café ?

Un coca bien frais. On a tous des vices, et c’est le mien : je ne m’hydrate presque uniquement de cette boisson, tout particulièrement quand je code. Coca zéro hein, j’ai quelques kilos en trop 😄

Q : Alors déjà félicitation pour ton titre de React Champion 👑 ! C’est vraiment impressionnant de faire ce score. Est-ce que tu avais préparé cette performance ? Quel était ton état d’esprit au moment où tu as cliqué sur « Démarrer le test ? »

J’avoue que je ne m’attendais pas à terminer premier, car les conditions n’étaient pas vraiment optimales. Ma petite enfin paisiblement endormie, j’étais avec Madame dans le canapé devant le replay du Meilleur Pâtissier, l’ordi sur les genoux à discuter avec des amis et à me balader sur Twitter. Et je suis tombé sur le tweet de @WeLoveDevs à propos du concours React. J’avais envie de tenter pour voir !

Q : La question brûle les lèvres de tout le monde : est-ce que ton rôle chez O’clock a une relation avec cette performance ?

Oui, assurément. J’ai commencé à utiliser React avant O’clock, notamment lorsque j’étais développeur freelance. Mais en créant l’école, j’ai dû m’y plonger bien plus en détail, afin de créer les cours et d’être certain d’être à l’aise devant les étudiants. Ça paraît paradoxal, et pourtant c’est on-ne-peut-plus vrai : enseigner, c’est l’une des manières les plus efficaces d’apprendre !

Mais cela vient aussi du fait que j’apprécie vraiment cette techno. C’est vraiment mon coup de cœur de ces dernières années niveau dev. Je trouve que la philosophie qu’il y a autour est très féconde, et la React Core Team fait du très bon boulot. Je suis un fan inconditionnel de la pédagogie et de l’humilité de Dan Abramov !

Q : Quel est ton premier contact avec la technologie ? Qu’est-ce que tu as construit avec la première fois ?

La première fois que j’ai appris l’existence de React, j’ai détesté ! J’ai fait un rejet bête et méchant, « du html en plein milieu du javascript, quelle hérésie ! », trop embourbé dans mes certitudes de la sacro-sainte bonne pratique de la “separation of concerns”. J’étais à l’aise avec mes outils de l’époque, principalement jQuery et CoffeeScript, et je ne voyais pas l’intérêt.

Cela dit, j’ai commencé à coder aux débuts des années 2000, j’ai souvent vu les technos évoluer et les bonnes pratiques se transformer. Très tôt, j’ai pris une habitude que je recommande à de nombreux développeurs : quand je commence à avoir des certitudes, c’est qu’il est temps de sortir de ma zone de confort.

Sans être convaincu mais ouvert à l’idée, j’ai donc décidé de tenter le coup. Sur le moment, j’ai trouvé ça sympathique mais un peu lourd. C’est le même ressenti que les autres frameworks que j’avais testé à l’époque, Angular et Backbone. Puis j’ai eu le tilt. Ce n’est pas du HTML, c’est du JSX, c’est performant et ça ouvre le champ des possibles. Et surtout, j’ai compris le grand pouvoir qu’apporte la composition et la programmation déclarative.

Je l’ai utilisé pour la première fois pour un projet d’e-commerce, pour gérer l’affichage dynamique d’un panier : quantité, prix, tva… C’était tellement plus simple en React !

Q : Comment as-tu développé ta connaissance de la techno ? Quels conseils donnerais-tu à nos pairs (jeunes et moins jeunes) qui veulent s’améliorer sur le sujet ?

L’intérêt du déclaratif par rapport à de l’impératif, c’est qu’on ne peut pas se retrouver avec un affichage incohérent. L’affichage que l’on voit dans le navigateur découle des données ; si les données changent, l’affichage change sans avoir à dire explicitement “enlève cette classe et rajoute celle-ci”. Ça simplifie énormément le boulot dès qu’il y a pas mal de données à gérer.

Du coup, je me suis mis à utiliser React dès qu’il y avait des données à manipuler dans un projet. Même quand il n’y avait pas beaucoup de données à gérer à vrai dire ! C’était aussi le moment où ES6 a pris son envol, donc j’avais l’impression d’apprendre à chaque nouveau projet.

Pour s’améliorer sur React, comme sur toute techno, le mieux ça reste justement de pratiquer, pratiquer, pratiquer. La documentation est une mine d’or, c’est assez facile de progresser seul. Bien sûr, en suivant une formation c’est encore plus facile, car tout est déjà trié et décortiqué, puis présenté dans le bon ordre pour optimiser l’apprentissage.

Q : Ah tu fais la différence entre Compétence et Connaissance ?

Si on considère qu’être compétent, c’est être bon dans son métier, faire du bon boulot, alors il faut bien plus que des connaissances. A mon sens, on peut décomposer la compétence en 3 morceaux :

  • Les connaissances, c’est-à-dire le savoir qu’on accumule. C’est le plus facile à obtenir, il suffit de lire du code, regarder des exemples, lire la doc…
  • Le savoir-faire, c’est-à-dire le savoir qu’on met en pratique. C’est bien beau de connaître la théorie, mais une fois qu’on passe sur du concret, il y a tout un tas de petites choses, des bonnes pratiques, des réflexes qu’on acquiert et qui sont indispensables.
  • Enfin, le savoir-être. En gros, la capacité à mobiliser son savoir et son savoir-faire pour répondre à un problème concret. Pour ça, rien de mieux que des projets réels !

Q : Comment tu as trouvé le QCM ? Qu’est-ce que tu as pensé des questions ?

Il y avait des questions un peu tordues, il faut avouer ! Le genre de question où tu te dis « mais ça, ça arrive jamais dans la vraie vie ». Ceci dit, c’est intéressant parfois de torturer une techno dans tous les sens, pour s’assurer de bien comprendre ce qu’il y a sous le capot. Ce n’est jamais bon d’utiliser une couche d’abstraction sans comprendre comment elle fonctionne, et c’est très vrai pour React.

Après, pour être honnête, les questions tournaient beaucoup autour des class components, alors que je n’utilise presque plus de class dans mon code désormais, grâce aux hooks. Heureusement pour mon score, j’ai une plutôt bonne mémoire. Enfin, une bonne mémoire… Je ne sais jamais où j’ai paumé mon téléphone dans la maison, mais le code, je retiens facilement 😅

Q : Les développeurs veulent savoir quel est l’avis du champion. Quel est le futur de React ? Est-ce que la techno va évoluer, prendre de nouveaux virages ? Ou est-ce que le futur de React c’est VueJS ?

J’ai jamais été attiré par Vue.js. Du coup, comme à mon habitude, j’ai voulu sortir de ma zone de confort et me suis poussé à l’utiliser l’année dernière sur un projet perso. Et j’ai compris pourquoi tant de monde aime Vue ! Il y a un côté magique et facile qui est très agréable, quand React pouvait parfois paraître bas niveau ou nécessiter beaucoup de boilerplate. Mais cet avantage a un inconvénient : plus c’est magique, plus c’est galère quand on veut sortir des sentiers battus. Au final, entre React et Vue, c’est une question de goût, de choix. Ce qui est sûr, c’est que cette saine concurrence des technologies permet une émulation vertueuse dans l’écosystème.

Cela dit, avec les hooks, je pense que React a repris une petite longueur d’avance. Mais en fait, React, c’est bien plus qu’une library, c’est une philosophie. La programmation fonctionnelle, la composition, les effets algébriques, etc. Concrètement, les hooks ne sont que la partie émergée de l’iceberg : le concurrent mode ou le data fetching avec Suspense sont des choses qui vont continuer à faire évoluer React dans cette voie. Je suis très enthousiaste sur le futur de React !

Q : Du coup, React est un outil dans quel contexte ? Sur quels projets, c’est un no-brainer d’utiliser React ?

Dès qu’il y a de la donnée ou des interactions utilisateurs, ça vaut vite le coup d’utiliser un outil tel que React, Vue, Svelte etc. Par exemple, React était un choix évident quand j’ai codé la classe virtuelle de O’clock, qui gère de l’audio, de la vidéo, des messages, des réactions, des sondages, des statistiques… Pour une telle interface, il est beaucoup plus simple de se concentrer sur la manipulation des données et laisser React gérer le rendu.

Dans ce genre de cas d’utilisation, React est intéressant niveau performance, mais surtout niveau developer experience. On l’oublie souvent, mais une appli performante, ce n’est pas seulement une appli rapide, c’est aussi une appli dont la base de code est maintenable. Une base de code dont la DX est assez agréable pour que l’équipe puisse itérer, que ce soit modifier ou ajouter des fonctionnalités, sans perdre un temps fou et sans accumuler de la dette technique.

En revanche, j’ai tellement pris de plaisir à utiliser React que je m’en sers aussi beaucoup, même en dehors des use cases typiques. Pour du template d’email par exemple ! Le système de composant est tellement pratique, JSX est tout aussi agréable — voire davantage, selon mon avis personnel — qu’un moteur de template comme Twig, Pug ou Jinja pour faire du rendu serveur.

Q : Quelles sont les dernières nouveautés de l’écosystème React que tu as n’as pas encore eu le temps de tester, mais qui t’excitent vraiment ?

Le concurrent mode et autres features expérimentales, je suis l’actu, mais je n’ai pas eu le temps de tester. Mais bon, j’attendrai certainement la version stable de toute façon. Aussi, je fais surtout du web avec React, un peu de Native mais pas beaucoup. J’aimerais en faire un peu plus, mais aussi tester de nouveaux supports. Par exemple, Ink, qui permet d’utiliser React pour décrire une UI dans un terminal. Et pourquoi pas, coder mon propre custom renderer 😍 J’ai encore énormément à apprendre !

Q : Très bien ! Je suis content d’avoir rencontré un « Champion 👑 « aussi humble. Encore Bravo ! J’en profite pour rappeler que le challenge suivant a déjà commencé, il s’agit de PHP Champion 👑.  Est-ce que tu comptes participer Maxime ?

PHP, mon vieil ami ! Après le HTML, c’est le premier “vrai” langage de programmation que j’ai utilisé (le BASIC sur TI-83, ça compte ou pas ?). Aujourd’hui à mon avis, je suis un peu rouillé, ça va être dur de faire un joli score. Mais je participerai peut-être, pour le plaisir !

Q : Tu mentionnais en off quand je suis arrivé que tu ne faisais plus partie d’O’clock depuis quelques jours. Est-ce que tu veux en parler ?

J’ai passé les 5 dernières années à bosser pour O’clock, il est temps pour moi de me lancer dans une nouvelle aventure. J’ai adoré ces années, et je continuerai à aider le développement de O’clock comme je le peux. Mais pour entretenir la flamme qui me fait me lever le matin, rien de mieux que de nouveaux projets !

Il y a des tas de choses à améliorer, on a l’embarras du choix. Pourquoi pas des secteurs englués dans l’administration, comme la santé ou les finances, qui auraient bien besoin de se renouveler. HealthTech, FinTech ou autre : ce qui me plaît, c’est de m’attaquer à un univers sclérosé, casser le “on a toujours fait comme ça”. C’est ce qui m’a donné envie de créer O’clock, car le secteur de la formation manquait d’innovation. Il en manque toujours d’ailleurs, et je n’ai pas épuisé toutes mes idées à ce sujet…

Clairement, c’était impossible de réfléchir à tout ça à la tête d’une entreprise de 100 personnes. J’ai quitté mon poste de directeur général de O’clock depuis quelques jours seulement, et j’ai déjà pas mal d’idées. J’adore me plonger corps et âme dans un projet auquel je crois, donc je vais me laisser du temps pour sélectionner l’idée qui saura m’enthousiasmer. D’ailleurs, rejoindre une aventure ou en créer une nouvelle, là encore, je ne suis pas encore fixé.

Ce qui est sûr, c’est que peu importe le projet qui va m’occuper pour les prochaines années, j’aurais mon fidèle allié dans ma besace : React. Je vais d’ailleurs profiter de mon temps libre pour bloguer un peu au sujet de cette merveilleuse techno !

Ecole O'clock

Équipe, stack, locaux…
Découvrez pourquoi les développeurs
aiment Ecole O'clock sur leur page entreprise.

Découvrir la page de Ecole O'clock
Damien Cavaillès

Auteur Damien Cavaillès

Plus d'articles par Damien Cavaillès

Laisser un commentaire