Ce que Bloomberg a appris en adoptant TypeScript à grande échelle
(techatbloomberg.com)- Le Terminal Bloomberg est le produit principal : il comprend plus de 10a0000 applications
→ affichage de données en temps réel, actualités, trading, messagerie, etc.
→ en 2005, le code serveur existant en Fortran/C/C++ a été migré vers JS, et depuis 2012, le client est lui aussi en JS
→ il y a plus de 50 millions de lignes de code JS et plus de 2a0000 développeurs JS
→ à cette échelle, passer de JS à TS est un chantier majeur, et dans les grandes entreprises, les transitions technologiques sont souvent évitées et engagées tardivement
→ fait surprenant, dès le lancement de la transition vers TS, les ingénieurs se sont spontanément mobilisés et sont devenus les premiers promoteurs du changement
→ rien que la première année, 200 projets ont été migrés, et aucun n'est revenu en arrière
- Principes clés
→ Scalability : même en montant en échelle, conserver une vitesse de développement élevée
→ Ecosystem Coherence : tous les packages doivent fonctionner ensemble, et les mises à niveau de dépendances ne doivent pas être pénibles
→ Standards Alignment : respecter des standards comme ECMAScript et être prêt pour la suite, quelle que soit la direction prise ensuite
- 10 enseignements
-
TypeScript peut être vu comme JavaScript + Types.
-
TS évolue rapidement, donc il vaut mieux suivre les compilateurs les plus récents.
-
Une configuration
tsconfigcohérente a de la valeur. -
L'endroit où l'on déclare les dépendances est important.
→ utilisation d'Ambient Modules
-
Éliminer les doublons de types est important.
-
Il faut éviter les dépendances de types implicites.
-
Les fichiers de déclaration ont trois modes d'export : global, module, implicit exports
→ si possible, préférer module
-
L'encapsulation d'un package peut être violée.
-
Les déclarations générées automatiquement peuvent intégrer en ligne des types provenant des dépendances
-
Les déclarations générées peuvent inclure des dépendances qui ne sont pas obligatoires
Aucun commentaire pour le moment.