Introduction
Linear est souvent saluée pour sa rapidité et son efficacité. Quand on compare le temps de mise à jour d'un problème dans Linear à celui d'une application CRUD traditionnelle, le fossé est évident : quelques millisecondes contre environ 300 ms. Alors, comment Linear parvient-elle à être si rapide ? Explorons les choix techniques qui rendent cela possible.
Base de données dans le navigateur
La plupart des applications web suivent un schéma classique : l'utilisateur interagit, une requête HTTP est envoyée, un serveur interroge une base de données, et la réponse est renvoyée au client. Linear, elle, inverse cette relation. La base de données que l'interface utilisateur lit se trouve dans le navigateur, utilisant IndexedDB.
Cette approche permet d'appliquer les mutations localement avant de les pousser de manière asynchrone vers le serveur. Le serveur envoie ensuite les deltas aux autres clients via WebSocket. Cela réduit considérablement le besoin de requêtes réseau coûteuses en temps.
Rendre le premier chargement instantané
Linear s'assure que même la première interaction de l'utilisateur semble instantanée. Cela est réalisé en préchargeant les données critiques et en utilisant des techniques de rendu progressif qui minimisent les temps de chargement visibles.
Le moteur de synchronisation
Linear utilise un moteur de synchronisation sophistiqué qui gère les transactions en lots. Cela signifie que les modifications sont d'abord enregistrées localement et ensuite synchronisées avec le serveur, réduisant ainsi les temps d'attente et éliminant les états de chargement.
Design optimisé pour la vitesse
Le design de Linear est minimaliste et optimisé pour des performances maximales. Les animations sont fluides et intentionnelles, contribuant à l'impression générale de rapidité. Elles sont conçues pour être légères, utilisant des techniques comme l'accélération matérielle pour garantir une performance optimale.
Conclusion
La rapidité de Linear n'est pas le fruit du hasard, mais le résultat d'une architecture réfléchie et d'optimisations continues. En s'inspirant de ces techniques, d'autres développeurs peuvent également améliorer les performances de leurs applications.
Discutons de ton projet en 15 minutes.