Introduction
Linear est une application web qui permet de mettre à jour des problèmes en quelques millisecondes, alors que les applications web traditionnelles mettent environ 300ms pour effectuer la même tâche. Cet article va explorer les techniques utilisées par Linear pour atteindre cette rapidité.
Contexte Technique
Linear utilise une approche différente de la plupart des applications web. Au lieu de stocker les données sur un serveur et de les récupérer via des requêtes HTTP, Linear stocke les données dans le navigateur, en utilisant IndexedDB. Les mutations sont appliquées localement, puis envoyées de manière asynchrone au serveur, qui les diffuse ensuite aux autres clients via WebSocket.
Cette approche permet d'éliminer les temps d'attente liés aux requêtes réseau, ce qui est le principal facteur de ralentissement des applications web. En effet, les requêtes réseau peuvent prendre plusieurs centaines de millisecondes, ce qui peut rendre l'application lente et réactive.
Analyse et Implications
Linear utilise également des mises à jour optimistes, ce qui signifie que l'interface utilisateur est mise à jour immédiatement, sans attendre la réponse du serveur. Cela permet d'éliminer les spinners et les états de chargement, ce qui améliore l'expérience utilisateur.
De plus, Linear utilise une pile technologique simple, basée sur React, TypeScript, MobX et Postgres. Cette simplicité permet de réduire la complexité et d'améliorer la maintenabilité de l'application.
Perspective
Pour améliorer la rapidité de leurs applications web, les développeurs peuvent s'inspirer des techniques utilisées par Linear. Cela peut inclure l'utilisation de stockage local, de mises à jour optimistes et de piles technologiques simples. En réduisant les temps d'attente liés aux requêtes réseau et en améliorant la réactivité de l'interface utilisateur, les développeurs peuvent créer des applications web plus rapides et plus réactives.