Feature Toggle

Feature Toggle[1] (von engl. feature = Eigenschaft, Fähigkeit, Funktion; Toggle = Schalter) oder Feature Flag ist eine Programmiertechnik in der Softwareentwicklung, bei der ein Feature oder eine Funktionalität zur Laufzeit der Software an- oder ausgeschaltet werden kann.

Martin Fowler unterscheidet zwischen:

  • release toggles – im Kontext des Continuous Delivery werden unfertige Features per Toggle ausgeschaltet, und erst wenn das Feature fertig ist, aktiviert. Der Quellcode wird allerdings schon früher in den Master-Branch übernommen und in die verschiedenen Stages deployed.
  • experiment toggles – der Klassiker, zum Beispiel für A/B-Tests
  • ops toggles – damit sind Schalter unter betrieblichen Aspekten gemeint. Wenn z. B. neue Features ausgerollt werden, und das Performanceverhalten der Anwendung noch unklar ist, kann das Feature einfach ausgeschaltet werden, falls Probleme im Betrieb auftreten. Soweit alles stabil läuft, werden die Schalter entfernt.
  • permission toggles – gewisse Feature werden nur Premium- bzw. zahlenden Kunden bereitgestellt, oder Benutzern mit erweiterten Rechten.

Weiterhin unterscheidet Fowler zwischen statischen und dynamischen Toggles, sowie zwischen kurzlebigen (transient) und langlebigen (long-lived) Toggles, was beides maßgeblich ist, wie und wo im Quellcode ein Toggle letztendlich implementiert ist.

Die Verwendung von Feature Toggles ist in vielen gängigen Programmiersprachen möglich, wie C# oder Java. Für manche gibt es auch Bibliotheken, die es besonders unterstützen.

Feature Toggles werden zum Beispiel bei der Programmierung erfolgreicher Websites und Applikationen verwendet, die mit vielen Entwicklungsteams arbeiten. Ein Beispiel ist Spotify.

Literatur

  • Jez Humble, David Farley: Continuous Delivery. Reliable Software Releases Through Build, Test, and Deployment Automation (= Addison-Wesley Signature). Addison-Wesley, Upper Saddle River 2010, ISBN 978-0-321-60191-9 (englisch).

Einzelnachweise

  1. Martin Fowler 29 October 2010: FeatureToggle. Martinfowler.com, 29. Oktober 2010, abgerufen am 26. September 2014 (englisch).

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.