TypeScript statt JavaScript für neue Services

architecturetypescriptdeveloper-experience

Unser Team begann mit der Entwicklung einer neuen Reihe von Microservices. Wir mussten entscheiden, ob wir TypeScript oder JavaScript für die Codebasis verwenden.

TypeScript als Standard für alle neuen Backend-Services einführen

Weiterhin JavaScript mit JSDoc-Kommentaren verwenden

Vorteile
  • Kein Build-Schritt erforderlich
  • Team bereits mit JavaScript vertraut
  • Schnellere Anfangsentwicklung
Nachteile
  • JSDoc-Kommentare werden nicht erzwungen
  • Eingeschränkte IDE-Unterstützung im Vergleich zu TypeScript
  • Refactoring ist ohne Typsicherheit riskanter

TypeScript nur für kritische Services verwenden

Vorteile
  • Schrittweise Einführung verringert die Lernkurve
  • Vorteile können vor vollständiger Verpflichtung evaluiert werden
Nachteile
  • Uneinheitliche Codebasis erschwert den Kontextwechsel
  • Gemeinsam genutzte Bibliotheken werden problematisch
  • Löst das Refactoring-Problem für JS-Services nicht

Die statische Typisierung von TypeScript erkennt Fehler zur Kompilierzeit statt zur Laufzeit, was besonders bei Microservices wertvoll ist, wo Integrationsprobleme häufig sind. Die anfängliche Investition in das Erlernen von TypeScript zahlt sich durch mehr Vertrauen beim Refactoring, bessere IDE-Unterstützung und weniger Produktionsfehler aus. Der Mehraufwand durch den Build-Schritt ist mit modernem Tooling minimal.

Kontext und Hintergrund

Wir hatten unsere Backend-Services 3 Jahre lang mit JavaScript entwickelt. Das funktionierte anfangs gut, aber mit wachsender Codebasis traten zunehmend Probleme auf:

  • Refactoring war riskant und zeitaufwendig
  • Integrationsfehler zwischen Services waren häufig
  • Neue Teammitglieder hatten Mühe, API-Verträge zu verstehen
  • Die IDE-Autovervollständigung war unzuverlässig

Umsetzung

Wir führten TypeScript schrittweise ein:

  1. Zunächst nur bei neuen Services
  2. Erstellung gemeinsamer TypeScript-Bibliotheken für wiederkehrende Muster
  3. Teamschulungen und Pair-Programming-Sitzungen
  4. Aktualisierung unserer Service-Vorlage, um standardmäßig TypeScript zu verwenden

Ergebnisse nach 6 Monaten

  • 40 % weniger Produktionsfehler durch Typfehler
  • Refactoring-Zeit halbiert
  • Neue Entwickler:innen berichten von schnellerem Onboarding
  • Die Zufriedenheit des Teams mit dem Tooling stieg deutlich

Die Entscheidung hat sich bewährt, und wir erwägen nun, bestehende JavaScript-Services auf TypeScript zu migrieren.