Feature Flags in JavaScript: Funktionen ohne Deployment aktivieren

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Feature Flags in JavaScript: Funktionen ohne Risiko und Deployment aktivieren

\n\n

Stellen Sie sich vor: Sie haben eine tolle neue Funktion entwickelt – eine intelligente Suche mit Autovervollständigung. Der Code ist fertig, die Tests bestanden, aber Sie haben Bedenken, diese sofort für alle Benutzer freizuschalten. Was, wenn ein Fehler auftritt? Was, wenn es jemandem nicht gefällt? Früher hätten Sie bis spät in die Nacht mit Deployments verbracht und dann Versionen zurückgesetzt. Heute gibt es eine elegante Lösung – Feature Flags (oder Feature Toggles).

\n\n

Feature Flags sind Schalter im Code, mit denen Sie Funktionalitäten ohne erneutes Deployment ein- oder ausschalten können. Sie ändern einfach den Wert in der Konfiguration oder im Admin-Panel – und die Funktion wird aktiv oder verschwindet. In diesem Artikel zeigen wir, wie Sie sie in JavaScript einsetzen, präsentieren echte Codebeispiele und geben eine Checkliste für die Einführung.

\n\n

Was sind Feature Flags und warum werden sie in JS benötigt?

\n\n

Feature Flags (auch Feature Toggles oder Funktionsflags genannt) sind einfache bedingte Konstrukte, die steuern, ob einem Benutzer eine neue Funktion angezeigt wird oder nicht. Sie arbeiten auf Codeebene: Anstatt alten Code zu löschen, umschließen Sie neuen Code mit einer Flag-Prüfung.

\n\n

Warum werden diese in JavaScript-Projekten benötigt?

\n
    \n
  • Canary Release – Sie rollen die Funktion für 5 % der Benutzer aus, überwachen Fehler und erweitern dann den Kreis.
  • \n
  • A/B-Testing – Sie zeigen verschiedenen Gruppen unterschiedliche Versionen der Oberfläche und vergleichen die Metriken.
  • \n
  • Sofortige Deaktivierung – Wenn eine Funktion die Produktion beeinträchtigt, schalten Sie einfach das Flag ohne Deployment aus.
  • \n
  • Trunk-based Development – Sie können unfertigen Code zusammenführen, der hinter einem Flag verborgen ist.
  • \n
\n\n

Einfachstes Feature Flag in JavaScript: Beispiel

\n\n

Beginnen wir mit der grundlegendsten Variante – einem Flag in der Konfiguration. Angenommen, wir haben eine Suchfunktion und möchten die Autovervollständigung nur für Tester aktivieren.

\n\n
// config.js\nconst featureFlags = {\n  enableAutocomplete: false, // standardmäßig deaktiviert\n  enableDarkMode: true\n};\n\n// search.js\nfunction initSearch() {\n  if (featureFlags.enableAutocomplete) {\n    console.log('Autovervollständigung aktiviert');\n    loadAutocompleteModule();\n  } else {\n    console.log('Autovervollständigung deaktiviert');\n    loadBasicSearch();\n  }\n}\n
\n\n

Sie ändern enableAutocomplete in der Konfiguration auf true – und die Funktion ist aktiv. Einfach? Ja. Aber das ist nur der Anfang. Für die Produktion wird mehr benötigt – dynamische Flags, Steuerung über API, A/B-Tests.

\n\n

Fortgeschrittener Ansatz: Bibliotheken für Feature Flags

\n\n

Eigene Lösungen für Flags zu schreiben ist möglich, aber es ist besser, bewährte Bibliotheken zu verwenden. Hier sind die Top 3 für JavaScript:

\n\n
    \n
  • LaunchDarkly – der Unternehmensstandard. Es gibt SDKs für React, Vue, Node.js. Bietet A/B-Testing, Segmentierung, prozentuales Rollout.
  • \n
  • Flagsmith – eine Open-Source-Alternative. Unterstützt Self-Hosting und Cloud. Funktioniert mit jedem Framework.
  • \n
  • Unleash – eine leichtgewichtige Open-Source-Bibliothek. Ideal für kleinere Projekte.
  • \n
\n\n

Beispiel mit Unleash:

\n\n
// Installation: npm install unleash-client\nconst { initialize } = require('unleash-client');\n\nconst unleash = initialize({\n  url: 'https://your-unleash-instance.com/api',\n  appName: 'my-js-app',\n  environment: 'production',\n  customHeaders: { Authorization: 'API-TOKEN' }\n});\n\n// Flag-Prüfung\nconst isEnabled = unleash.isEnabled('new-checkout-flow');\nif (isEnabled) {\n  renderNewCheckout();\n} else {\n  renderOldCheckout();\n}\n
\n\n

Solche Bibliotheken synchronisieren sich in Echtzeit mit dem Server. Wenn Sie ein Flag im Dashboard ändern, übernimmt der Client dies innerhalb weniger Sekunden (normalerweise 30-60 Sekunden, konfigurierbar).

\n\n

Feature Flags in React: Hooks und Kontext

\n\n

In React-Anwendungen ist es praktisch, Kontext und benutzerdefinierte Hooks zu verwenden. Hier ist ein Beispiel für eine Architektur:

\n\n


                
                

Blogs

Buchempfehlungen