Recap 2024

Posté le 28 décembre 2024 - A Propos - Par Grafikart - Proposer une correction

Salut tout le monde, j'espère que vous avez passé de bonnes fêtes et bonne année pour ceux qui liront ces lignes en Janvier. Comme chaque année je vous propose de faire un petit récap des vidéos qui ont été publiées cette année et de vous en parler avec un petit peu plus de recul.

Pour parler chiffres cette année c'est 82 vidéos, soit 32 heures de vidéos et, selon youtube, 320 000 heures regardées ! Mais quels ont été les sujets abordées ?

On approfondit des concepts

Cette année a été l'occasion de parfaire certaines bases avec des vidéos axées sur des notions plutôt que sur du code directement.

Les expressions régulières

En début d'année on a rebossé le principe des expressions régulières avec 3 vidéos consacrées au sujet.

Un point sur la sécurité

En mars, on a vu la mise en place et l'utilisation des clés SSH qui est à mon sens une base fondamentale qu'il faut avoir pour tout développeur travaillant avec des hébergements (même mutualisés).

En avril, j'ai sorti une série de vidéo concernant la sécurité, un sujet qui est malheureusement trop souvent négligé et qui m'a permis de mettre à jour d'anciens tutoriels qui commençaient à dater. Cette série, qui reste ouverte à de nouveaux chapitres, aborde les failles de sécurité les plus répandues et les bonnes pratiques à adopter pour protéger vos applications web.

On a aussi fait un cas pratique pour lutter contre le spam avec la création d'un captcha personnalisé avec du JavaScript et du PHP. Même si les solutions comme reCAPTCHA et hCaptcha dominent aujourd'hui le marché, j'ai trouvé intéressant d'explorer une approche plus ludique et personnalisée.

Un peu d'IA

Je m'étais promis de ne pas trop parler d'intelligence artificielle sur la chaine car comme beaucoup d'entre vous j'overdose du sujet. Mais vu qu'on me demande constamment mon avis j'ai décidé de faire une vidéo pour condenser mon point de vue sur l'IA. Bien qu'elle a évolué depuis cette vidéo, mes réflexions restent inchangées. Pour ma part, je suis mitigé quant à l’intégration de l’IA dans mon workflow : si elle excelle dans la génération de code générique, elle atteint vite ses limites face à des problématiques plus complexes ou spécifiques et peu ralentir la productivité avec des mauvaises suggestions.

L'année 2024 a aussi été marqué par l'évolution de l'intégration de l'IA dans les éditeurs avec la sortie de Cursor qui a apportait une complétion capable de modifier le code existant. Cette intégration est intéressante et montre une facette plus intéressante de l'IA comme assistant pour des tâches répétitives plutôt que comme un copilote qui essaie de prendre le volant en permanence.

Malgré tout la question de l'utilisation des données reste le point le plus problématique et empêche totalement d'envisager une utilisation réelle de l'IA dans des projets pro.

HTTP 1, 2 & 3

En fin d'année j'ai fait une vidéo qui sort un peu de l'ordinaire pour explorer les protocoles HTTP 1, 2 et 3. L'origine de cette vidéo vient de mon questionnement sur les nombreuses affirmations concernant les gains de performances.

Transférer un gros fichier est vraiment plus rapide que plein de petits fichiers ?

En creusant le sujet, je suis descendu dans le terrier du lapin et j'ai fini par explorer les mécanismes internes de ces protocoles pour essayer d'implémenter les différentes version du protocole. J'ai beaucoup aimé cette phase de recherche que j'ai pu partager avec vous sur Twitch, et cela m'a permis de créer un contenu original qui n'est pas forcément trouvable ailleurs.

Vulgariser des concepts complexes reste ce que je préfère faire, et c'est une direction que je souhaite continuer à explorer davantage dans le futur.

Je tourne la page de Ruby

Ruby et son framework Ruby on Rails ont occupé une place privilégiée sur la chaîne avec de nombreux tutoriels pourtant je n'en parle plus depuis quelques temps. Comme pour d'autres technologies par le passé (CakePHP par exemple) mes goûts ont évolué et ce que je trouvais être des avantages (pas de typage, un côté très dynamique) ce sont transformés en inconvénients. Aussi, histoire de clôturer l'arc Ruby, j'ai décidé de faire une vidéo pour revenir sur les raisons qui font que j'ai quitté Ruby et Rails.

Du PHP !

La première formation de l'année concerne PHP et plus précisément le framework Symfony. Il y avait déjà une formation sur le site mais elle concernait la version 4 et les évolutions récentes du framework ont rendu cette formation obsolète. J'ai donc décidé de la mettre à jour avec la dernière version du framework (la version 7).

Plus généralement, Symfony est toujours un de mes outil privilégié pour créer un site même si j'ai une relation un peu difficile avec... Il y a certains aspects que je trouve très bien pensés mais d'autres que je trouve vraiment pas idéal (l'ORM doctrine pour ne citer que lui).

Une touche de WordPress

Cela fait un moment que je n'avais pas parlé de WordPress sur la chaîne cependant, j'ai été amené à découvrir un nouvel outil CarbonField qui permet de créer des champs personnalisés à la manière d'ACF.

Malgré tout, je continue à avoir des missions avec ce CMS, mais ma manière de travailler n'a pas forcément évolué depuis les dernières formations que j'ai enregistrées et c'est pourquoi il n'y a pas forcément beaucoup de nouveaux contenus le concernant en ce moment.

Du JavaScript

Côté JavaScript il n'y a pas de changement majeur à mentionner cette année aussi j'en ai profité pour ajouter de nouveaux chapitres pour compléter un peu la formation existante. On a découvert 2 nouvelle structure de données avec les Set et les Map et on a vu le système de Proxy.

Aussi, pour pratiquer un peu, on a exploré la création d'éléments particuliers en JavaScript :

  • Un champs de type Code qui permet de rentrer les codes obtenus lors d'une authentification à 2 facteurs.
  • Un calendrier pour visualiser des évènements.
  • Une galerie photo pour afficher des photos avec des ratios différents sous forme de grille compact.

On a aussi découvert un outil qui s'intègre à Vite pour créer des applications qui fonctionne hors ligne avec Vite PWA.

Encore un peu de React

L'année dernière j'ai publié la nouvelle formation React et cette année j'ai continué d'y ajouter quelques chapitres pour parler de certaines notions spécifiques.

Un chapitre sur le hook useSyncExternalStore qui permet de créer un état React à partir d'un store externe. C'est un hook très spécifique qui n'est pas forcément très utilisé mais vu que je l'ai rencontré dans un projet récent, je me suis dit qu'il pourrait servir à d'autres.

Une vidéo sur Zustand qui permet de créer un état global dans React. C'est un outil que j'utilise depuis longtemps mais je n'avais jamais pris le temps de le présenter dans une vidéo.

Nouvelle formation VueJS

Cette année, j'ai sorti une nouvelle formation sur Vue.js, ce qui a pu en surprendre certains. En effet, j'avais précédemment partagé une vidéo expliquant pourquoi je n'étais plus convaincu personnellement par ce framework.

En tant que créateur de contenu, j'essaie de faire attention à ne pas écarter certaines technologies simplement parce qu'elles ne correspondent pas à mes préférences personnelles. Mon rôle est avant tout de vous présenter des outils qui pourraient être pertinents pour vos projets, même si je ne les utilise pas quotidiennement dans les miens.

De plus, j'ai pas mal d'expérience Vue.js et il aurait été dommage de ne pas mettre ces connaissances à profit pour détailler son fonctionnement. La dépréciation de Vue 2 était l'occasion idéale pour mettre à jour la formation existante.

Les runes de Svelte

On a aussi reparler un peu de Svelte à l'occasion de la sortie de sa version 5 et de son nouveau système de Rune. C'est un changement majeur qui mérite qu'on s'y attarde et il est toujours intéressant de voir comment les différentes librairies essaient de résoudre le problème de la réactivité (même si on semble converger vers une approche signal).

Le cas de Svelte est intéressant car il déporte une partie de la complexité au niveau du transpiler ce qui oblige aussi l'utilisation d'outil supplémentaire et d'extensions particulières (.svelte.js).

Le retour de React Native

Après une période où j'avais mis de côté le développement mobile, j'ai décidé de me replonger dans cet écosystème par curiosité personnelle.

En live sur Twitch j'ai essayé de faire un Pokédex avec trois technologies différentes : React Native, Flutter et Kotlin. L'objectif était de les comparer et d'évaluer leur état actuel. Finalement, seule la version React Native a trouvé sa place sur la chaîne car je n'ai pas réussi à obtenir un résultat satisfaisant avec les autres approche.

  • Sur Kotlin, la vue en grille avait des performances abominable et je n'ai pas trouvé de solutions.
  • Avec Flutter je n'ai pas trouvé un bon moyen d'organiser le code réactif

Il n'y a pas de formation prévue sur le sujet car je pense que ce TP (3h) couvre tous les aspects qu'il y a à connaitre et la formation React couvre toutes les bases nécessaires.

CSS

Côté CSS l'année a été un peu pauvre (en même temps le langage n'évolue pas beaucoup) mais j'ai pu partager avec vous une petite astuce que j'utilise pour gérer des "sliders" en CSS en utilisant une propriété méconnue scroll-snap.

On a aussi exploré un peu plus en profondeur le fonctionnement de la hauteur de ligne en CSS qui est véritable casse tête et une source de nombreux problèmes.

Le retour de Tailwind

Il y a 5 ans j'avais expérimenté avec Tailwind et je n'avais pas été convaincu par l'approche mais on m'a fait découvrir récemment UnoCSS. C'est aussi un outil de génération CSS mais qui a la particularité de rendre le processus de génération de règle entièrement configurable.

J'ai longtemps été réfractaire à l'approche trop utilitaire en CSS mais je réalise aussi que dans certains de mes projets j'ai beaucoup de mal à trouver des noms pour certains blocs et je répète souvent les mêmes règles CSS. Aussi, pour tout ce qui est structure et positionnement, je trouve que l'approche utilitaire fonctionne bien et je commence à l'explorer pour certains de mes projets.

UnoCSS me permet aussi de choisir des conventions qui me correspondent et je le préfère aujourd'hui à Tailwind qui impose des règles avec des noms parfois mal choisis. Je n'ai pas encore le recul nécessaire pour vous faire un retour mais je ne manquerais pas de vous en parler l'année prochaine.

Utilisation des outils

On a aussi évoqué les outils comme Figma et son mode développeur. L'objectif était d'aider les personnes à inspecter les maquettes faites sur Figma pour extraire les informations nécessaire à la création du CSS. Malheureusement, peu de temps après la publication de la vidéo, Figma a décidé de rendre cette fonctionnalité payante ce qui la rend beaucoup plus limitée (le client doit payer une licence pour que le développeur puisse accéder au mode développeur de la maquette).

Un peu de design

Aussi, on est revenu à l'origine de la chaine avec une vidéo concernant le Motion Design avec le logiciel d'animation 2D Cavalry que j'ai essayé dans l'espoir d'y trouver l'outil pour illustrer des explications complexes. C'est un logiciel qui est très intéressant dans sa manière de fonctionner mais avec le recul il ne correspond pas forcément à mon cas d'usage (je ne l'utilise plus aujourd'hui).

Des collaborations

Cette année, j'ai continué une tendance que j'avais commencée l'année dernière en essayant de collaborer un petit peu plus avec d'autres créateurs de contenu.

J'ai participé à un petit challenge lancé par Benjamin Code et cela a été l'occasion d'enregistrer le processus de réflexion et de création. L'idée est de montrer comment je travaille sur un projet concret et les questions que je me pose pour le mettre en place et donner une représentation plus réaliste que les tutoriels sur la manière de travailler d'un développeur.

J'ai aussi participé à 2 interviews :

C'est un exercice que j'aime beaucoup et qui permet souvent de parler de sujets qui ne sont pas forcément évoqués sur la chaîne avec des points un peu plus personnels.

A l'année prochaine

J'espère que les contenus de cette années vous ont plu et je vous donne rendez vous l'année prochaine pour encore plus de découverte et d'apprentissage.