Menü
Avatar von robedeb
  • robedeb

1 Beitrag seit 13.07.2015

3 Jahre mit Feature Toggles

Unsere Erfahrung mit 3+ Jahren Feature Toggles:

Positiv:

0. K.I.S.S.
1. es funktioniert gut, sobald alle verstanden haben worum es geht
2. Wir haben eine Features.config - Datei, wo alle Features aufgelistet, und kurz beschrieben sind.
3. die FT-Weiche ist als "if ( feature( feature_name ) ) { ... } " leicht mit z.B. grep zu finden
4. Server kann in "Devel // QA // Production" - Modus gestartet werden.
4.1 Unter "Devel" sind alle feature() Abfragen immer True, damit ist unter Entwicklern eine schnelle SW-Integration erfordert.
4.2 Unter Production ist feature() immer False, damit kommt kein product owner auf die Gedanken, nicht freigegebene Features anzubieten.
4.3 QA kann Features einzeln, oder auch kombiniert ein/ausschalten und testen.
5. Feature Branches benutzen wir trotzdem für Bugfixes und manchmal für Proof of concepts.

Negativ:
0. Langlaufende Features tendieren mehr und mehr Integrationsstellen (also if( feature( 'foo' ) ) ...) zu produzieren
1. Feature Toggles sind für "smelly code" gar nicht gut. Quellcode mit mehrfachen if() - Kaskaden sind oft ein beliebtes Ziel um eine weitere feature Abfrage zu machen.
1.1 negierte FT ( if ! feature('foo'){...} ) sind ein Albtraum bei Codereviews.
2. Integration nach Feature-Toggle Ablauf erfordert Quellcode Änderungen.
3. Abhängigkeiten zwischen verschiedenen Feature Codes sollte man als grosses Risiko betrachten und am besten verbieten.
4. Feature Toggles für JavaScript ist auch nicht sehr straight-forward. Feature-Getogglete Passagen in JS können schnell gefunden werden. Alternativ sind JS-FT in Buildprozessen (grunt et al.) zu implementieren.

Also 5-4 sind mit FT zufrieden.

R.

Bewerten
- +
Anzeige