Comment optimiser du code JavaScript. Il faut noter que ça se fait souvent au détriment de la lisibilité et de la compréhensibilité. Certains conseils sont donc à réserver pour des scénarios où les performances sont cruciales.
Un langage de templating pour JavaScript qui se pose en alternative au bon vieux EJS.
Un dashboard qui semble assez bien foutu.
Une librairie JavaScript — ultra-complète et pour autant simple d'utilisation — pour créer des graphiques. La quantité de possibilités est impressionnante. Elle supporte même le rendu côté serveur (SSR).
Hono, le framework web orienté serverless passe en version 4 et ajoute un module optionnel — HonoX — qui le transforme en meta-framework full-stack un peu comme Next.js ou Nuxt.js.
Yet another librairie pour gérer les dates en JavaScript.
Elle se rapproche de date-fns en cela qu'elle expose des fonctions utilitaires pour manipuler la classe Date native, au lieu de créer sa propre classe (et à titre personnel je pense que c'est la bonne approche).
Elle se différencie par son utilisation du module Intl natif qui permet une meilleure localisation de la représentation d'une date sous forme de texte en fonction de la langue préférée de l'utilisateur.
Plus d'infos sur Intl.DateTimeFormat
ici : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat
Une vidéo de 1h54 qui vous apprendra à développer un jeu simple de zéro en HTML, CSS et JS, sans aucune dépendance, avec l'élément HTML <canvas>
.
Le fait de partir de rien sans aucun moteur graphique rend l'approche super intéressante !
Un état des lieu des bizarreries de JavaScript qui font de lui un langage parfois mal aimé.
Quand on creuse un peu, on s’aperçoit que pratiquement tous les langages haut niveau qui ont un peu d'age ont ce genre de bizarreries, et qu'il suffit de les connaître.
L'API Temporal arrive bientôt en JavaScript, et elle offre toutes les fonctionnalités qui manquaient au type natif Date
pour gérer les dates sans avoir besoin de librairies type moment, luxon, date-fns et consorts.
L'article aborde son utilisation.
Un énorme regroupement de tutoriels relatifs au développement web.
Les bases pour créer une librairie JavaScript aujourd'hui, avec TypeScript, tests, et flux CI/CD pour automatiser les tests et la publication sur npm.
Une proposition de structure du code moderne mais n'utilisant aucune dépendances ni système de build. Rien que du pur HTML, JS, CSS.
A case study on viable techniques for vanilla web development.
C'est intéressant en comparaison des frameworks habituels (React, Vue, etc.) de voir ce qu'il est possible de faire en adoptant une architecture en composants.
Des bonnes pratiques pour les tests en JavaScript.
Beyond the basics of Node.js testing. Including a super-comprehensive best practices list and an example app.
Un article complet (et relativement long mais instructif) sur les tests que l'on omet souvent car ils concernent des cas qui se produisent peu souvent (mais qui se produiront !)
Un très bel article qui explique pourquoi les Web Components et plus généralement les standards seront toujours plus pérennes que les frameworks.
Le passage sur le coût des dependences est crucial et bien expliqué, surtout pour les projets impossibles à mettre à jour tous les mois. Pensez-y, moins vous comptez faire évoluer une app, plus vous devez limiter les dépendances externes.
structuredClone(obj)
est la bonne solution pour faire un deep clone d'un objet en JavaScript. Il n'y a que quelques limites à prendre en compte, à la fin de l'article, mais pour 95% des cas d'utilisation elles ne posent pas de problème.
Cette lib vous permet d'automatiser certaines interactions avec votre ordi. Bouger la souris, cliquer sur un bouton par reconnaissance d'image, etc.
Moving your mouse around your screen, clicking buttons or icons, typing on your keyboard, reading screen content, and much more — it's all possible with nut.js.
Une jeune alternative à ESlint qui serait 50 à 100 fois plus rapide. Shopify annonce avoir réduit le linting de 75 minutes à 10 secondes. Ça semble exagéré mais ça mérite de s'y intéresser. Et c'est du zero-config par défaut !
C'est développé en Rust.
Une explication détaillée et claire de la façon dont le système de prototype de JavaScript fonctionne. Lecture requise si vous développez en JS, que ce soit dans le navigateur ou avec Node et consorts.
Une sorte de SDK non-officiel pour YouTube, en JavaScript.
A full-featured wrapper around the InnerTube API
InnerTube is an API used by all YouTube clients. It was created to simplify the deployment of new features and experiments across the platform 1. This library manages all low-level communication with InnerTube, providing a simple and efficient way to interact with YouTube programmatically. Its design aims to closely emulate an actual client, including the parsing of API responses.
Un très bon article (écrit il y a 2 ou 3 ans je pense, en réalité) qui revient sur l'historique de JavaScript et sur la raison marketing derrière certains choix.
L'article revient notamment sur l'aspect "Prototype" de JavaScript qui est souvent incompris et camouflé derrière ce qu'on appelle du "syntactic sugar".
Un article, pas forcément des plus abordables, qui passe en revue les principes fondamentaux des frameworks JavaScript modernes en les appliquant dans un exemple simplifié.
Il aborde des concepts relativement avancés tels que les Proxy
, les Microtask
, et la manipulation du DOM telle qu'on n'a plus vraiment l'habitude d'en faire.
Mais c'est diablement instructif.
Un calendrier de l'avent du développement front-end, principalement ciblé sur CSS et JS. Parfait pour découvrir les nouveautés en la matière petit à petit, un article par jour 😊
Un framework serveur JavaScript conçu pour tourner sur tout type de runtime, principalement tout ce qu'on appelle Serverless.
It works on any JavaScript runtime: Cloudflare Workers, Fastly Compute@Edge, Deno, Bun, Vercel, Netlify, Lagon, AWS Lambda, Lambda@Edge, and Node.js.
ESLint va cesser de gérer le formatage de code et se concentrer sur la qualité de code et la sécurité.
2 options pour la transition :
ESLint, le linter JavaScript le plus populaire met en place une nouvelle structure de configuration qui va grandement simplifier les choses : la "flat config" où tout tient en un unique fichier : eslint.config.js
.
Ça m'arrange parce que je n'ai jamais rien compris à la structure des configs ESLint.
Si vous vous êtes toujours demandé à quoi servait l'opérateur modulo (%). Ça ne s'applique d'ailleurs pas qu'à JavaScript mais à la plupart des langages.
Un regroupement de bonnes pratiques pour Node.js. Tout n'est évidemment pas à suivre aveuglément, mais si vous débutez c'est une bonne base.
Bun, le nouveau runtime JavaScript côté serveur (concurrent à Node.js et Deno) orienté performances est enfin là en version stable.
Une introduction aux monorepos, une nouvelle façon de gérer les dépendances entre applications qui utilisent des technos et des config similaires. C'est une alternative aux librairies publiées sur nom et à la duplication de code.
Ça vient avec un ensemble de contrainte bien sûr, mais l'approche est intéressante.
Un SDK TypeScript pour Spotify.
Les différentes façon de debugger une application Node.js.
J'ai découvert récemment qu'il est possible de debugger un fichier TypeScript alors que c'est la version transpilée (le JS donc) qui est en train de s'exécuter. Bien pratique et ça encourage l'usage de TS côté serveur.
Un article très complet sur les possibilités offertes par les expressions régulières en général et en JavaScript plus spécifiquement.
Une lib JS pour générer des PDF en ajoutant et positionnant manuellement chaque élément.
Un query builder pour Node.js. L'outil se définit comme un ORM mais de ce que j'ai pu lire, ça ressemble beaucoup plus à un query builder. Une alternative à Knex.js en somme.
Cet article est une bonne introduction.
Un "moteur" de recherche offline en JavaScript qui fonctionne dans le navigateur ou en Node.js.
Lyra is a fully-featured full-text search engine that runs wherever JavaScript runs, including browsers, servers, React Native, edge networks, and more.
Créer très (très) facilement un cluster load balancé d'instances de votre application Node.js (d'abbord avec le module cluster puis avec pm2 qui simplifie les choses). Parfait pour la prod !
Les articles de Digital Ocean sont toujours aussi chouettes à lire.
Pas mal d'infos sur ECMAScript, le standard sur lequel est basé JavaScript.
Un retour d'expérience positif sur Deno, la principale alternative à Node.js.
Une libraire JS qui permet de dessiner des diagrammes avec du texte.
La bonne façon de travailler avec les URLs en JavaScript.
Une lib JS qui permet de visualiser des images avec un feeling proche du natif sur mobile (défilement, zoom, etc.).
L'évolution de la popularité des principales librairies JS en 2022.
Une alternative à Electron pour développer des applications desktop en utilisant des technologies web, mais tout en se basant sur le navigateur déjà installé sur le système de l'utilisateur. Ça devrait permettre des exécutables plus petits. Pas testé.
La version 5 de CKEditor est de sortie.
Un calendrier de l'avent composé de défis JavaScript :)
Je ne connaissais pas la fonction contains
sur un Node HTML, qui permet de savoir si un élément en contient un autre. Idéal pour se passer des libraires type vue-clickaway.
Plus d'infos : https://developer.mozilla.org/en-US/docs/Web/API/Node/contains
Un site interactif pour apprendre JS.
Une lib de composants compatibles avec React, Vue, Svelte, Angular et même du pur JS. J'imagine même pas le boulot de maintenance que ça représente 🙃
Un regroupement d'articles qui parlent en profondeur de comment optimiser une appli web. C'est plein de bonnes pratiques à avoir en tête quand on développe.