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.Â
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 đ
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 !
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 !
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 !
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.
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 :
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 đ
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 !
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.
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 !
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 !
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 !
Les maladies inflammatoires chroniques de lâintestin ou "MICI" sont invisibles, mais leurs impacts sur laâŠ
Depuis l'Ă©tĂ©, j'ai un Pixel qui intĂšgre Ă la fois un TPU (Tensor Processing Unit)âŠ
On se retrouve dans un nouvel article avec toutes les infos sur cette nouvelle saisonâŠ
Pourquoi lâinclusion numĂ©rique est essentielle : le point avec Mathieu Froidure. Dans un monde deâŠ
Elles sont passĂ©es oĂč les femmes dans la tech ? Entre le manque de reprĂ©sentationâŠ