L’histoire de la réécriture du moteur de sync de Dropbox
(dropbox.tech)-
Réécrit en Rust et déployé sur une période de 4 ans
-
Le composant principal (Control) fonctionne en single-thread et traite l’asynchrone avec des futures
-
Fonctionne de manière entièrement déterministe pour une entrée donnée
→ Les tests aléatoires deviennent possibles et la reproduction des bugs est facilitée
- Points pris en compte avant de lancer la réécriture
✓ Avez-vous essayé de refactoriser ?
✓ Avez-vous tenté d’améliorer les performances en optimisant les parties critiques ?
✓ Pouvez-vous apporter une valeur supplémentaire ?
✓ Comprenez-vous parfaitement le système actuel dans son intégralité ?
✓ Disposez-vous de suffisamment de temps de développement ?
✓ Est-il acceptable de retarder l’ajout de nouvelles fonctionnalités au moteur existant ?
✓ Pourquoi pensez-vous qu’une réécriture serait bénéfique ?
✓ Quels sont les principes du nouveau système ?
1 commentaires
Ce sont les questions qu’il faut se poser avant de dire : « Refaisons entièrement le système existant ».