Beschreiben der Wartung von Feature Toggles

Abgeschlossen

Ein Feature Toggle ist eigentlich bloß Code. Um genauer zu sein, bedingter Code. Er erhöht die Komplexität des Codes und die technischen Schulden.

Seien Sie sich dessen bewusst, wenn Sie sie schreiben, und bereinigen Sie sie, wenn Sie sie nicht mehr brauchen.

Featureflags können zwar hilfreich sein, aber auch viele eigene Probleme mit sich bringen.

Die Idee eines Umschalters ist, dass er kurzlebig ist und nur dann in der Software verbleibt, wenn es notwendig ist, ihn für die Kunden freizugeben.

Sie können die verschiedenen Arten von Umschaltern anhand zweier Dimensionen klassifizieren, wie von Martin Fowler beschrieben.

Er betont, dass Sie die Dimension betrachten können, wie lang ein Umschalter in Ihrer Codebasis sein sollte und auf der anderen Seite, wie dynamisch der Umschalter sein muss.

Planen der Lebenszyklen von Featureflags

A switch in the on position triggers a flag, if this, else that.

Das Wichtigste ist, dass Sie sich daran erinnern, dass Sie die Umschalter aus der Software entfernen müssen.

Andernfalls werden sie zu einer Art technischer Schulden, wenn sie zu lange im Einsatz bleiben.

Sobald Sie ein Featureflag einführen, vergrößern sich Ihre technischen Schulden.

Wie andere technische Schulden sind sie leicht hinzuzufügen, aber je länger sie Teil Ihres Codes sind, desto größer werden die technischen Schulden, weil Sie eine Gerüstlogik hinzugefügt haben, die für das Branchen innerhalb des Codes benötigt wird.

Die zyklomatische Komplexität Ihres Codes nimmt mit dem Hinzufügen weiterer Featureflags zu, da die Anzahl der möglichen Pfade durch den Code zunimmt.

Die Verwendung von Featureflags kann dazu führen, dass Ihr Code weniger zuverlässig ist, und außerdem diese Probleme verursachen:

  • Mit zunehmender Anzahl logischer Kombinationen wird es schwieriger, den Code effektiv zu testen.
  • Der Code ist schwieriger zu pflegen, weil er komplexer ist.
  • Der Code ist möglicherweise sogar weniger sicher.
  • Es kann schwieriger sein, Probleme zu duplizieren, wenn sie gefunden werden.

Ein Plan zum Verwalten des Lebenszyklus von Featureflags ist von entscheidender Bedeutung. Sobald Sie ein Flag hinzufügen, müssen Sie planen, wann es entfernt wird.

Featureflags sollten nicht wiederverwendet werden. Es gab schon viele prominente Pannen, weil Teams beschlossen, ein altes Flag, von dem sie dachten, es sei nicht mehr Teil des Codes, für einen neuen Zweck zu verwenden.

Tools für die Verwaltung von Releaseflags

Der Aufwand für die Verwaltung von Featureflags ist nicht zu unterschätzen. Sie sollten unbedingt den Einsatz von Tools in Betracht ziehen, die Folgendes nachverfolgen:

  • Welche Flags vorhanden sind
  • Welche Flags in welchen Umgebungen, Situationen oder Zielkundenkategorien aktiviert sind
  • Den Plan, wann die Flags in der Produktion verwendet werden
  • Den Plan, wann die Flags entfernt werden

Mit einem Verwaltungssystem für Featureflags können Sie die Vorteile von Featureflags nutzen und gleichzeitig das Risiko minimieren, dass Ihre technischen Schulden zu hoch werden.

Azure App Configuration bietet einen Feature-Manager. Weitere Informationen finden Sie unter Azure App Configuration: Feature-Manager.