Feature flags

O platformă software care gestionează experiența digitală într-o gamă largă de puncte de contact digitale

Semnalizatoarele de funcții (cunoscute și sub denumirea de comutare de funcții sau comutatoare de funcții) sunt o tehnică de dezvoltare software care activează și dezactivează anumite funcționalități în timpul rulării, fără a implementa un nou cod. Acest lucru permite un control mai bun și mai multe experimentări pe parcursul întregului ciclu de viață al caracteristicilor.

Ideea din spatele semnalizărilor de caracteristici este de a construi ramuri de caracteristici condiționale în cod pentru a face logica disponibilă numai anumitor grupuri de utilizatori la un moment dat. Dacă semnalizatorul este „activat”, se execută un nou cod, dacă semnalizatorul este „dezactivat”, codul este omis.

De asemenea, denumite sau lansează comutatoare, semnalizatoarele de caracteristici sunt o bună practică în DevOps, care apar adesea în cadrul sistemelor de control al versiunilor distribuite.

Caracteristici cazuri de utilizare și beneficii ale steagului
Există multe avantaje pentru încorporarea funcțiilor de comutare în procesul de lansare. Următoarele sunt câteva cazuri de utilizare frecvente:

Testarea în producție
Semnalizatorii de funcții permit echipelor de dezvoltare să testeze noi funcții în producție, reducând în același timp riscul unei versiuni slabe, oferind o modalitate de a reveni rapid la funcție, dacă este necesar, printr-un comutator de ucidere. Deoarece este adesea imposibil să simulați complet mediul de producție în etapă, comutarea caracteristicilor vă permite să validați funcționalitatea noilor versiuni de caracteristici în lumea reală, reducând în același timp riscul. Steagurile de funcții încurajează, de asemenea, dezvoltarea bazată pe trunchi, ceea ce ajută la prevenirea conflictelor de fuziune din căile de cod divergente.

Eliberări canare
Un alt caz de utilizare pentru comutarea caracteristicilor este acela de a permite unei echipe să testeze o nouă caracteristică pe un subgrup de utilizatori finali pentru a vedea cum funcționează înainte de ao lansa către un public mai larg. Testarea canarului ajută la limitarea riscului de lansare a unei caracteristici la baza completă de utilizatori și vă permite să derulați rapid o caracteristică pur și simplu activând-o sau dezactivând-o, mai degrabă decât să treceți printr-un alt ciclu de implementare.

Cicluri de eliberare mai rapide
Folosind semnalizatori de funcții, o echipă poate modifica comportamentul unui sistem fără a face modificări perturbatoare ale codului în codul live. Astfel, un avantaj major al semnalizărilor de caracteristici este simplitatea lor de implementare în procesul de dezvoltare. Steagurile de funcții decuplează gestionarea ciclului de viață a funcției de implementarea codului, eliberând echipa de ingineri pentru a lucra la alte sarcini.

Comutator de revenire / ucidere
Activarea sau dezactivarea caracteristicilor noi folosind semnalizatorii de funcții este la fel de ușoară ca activarea sau dezactivarea acestuia sau editarea unui fișier de configurare față de nevoia de a re-implementa și de a trece printr-o lungă apăsare de cod. Dacă o eroare este descoperită într-o nouă caracteristică, aceasta poate fi redusă instantaneu fără a fi nevoie să vă atingeți codul sursă. Acest lucru poate fi deosebit de puternic pentru dezvoltatorii de aplicații mobile, care pot utiliza semnalizatoare de funcții pentru a elibera sau reveni la noi funcții fără a fi nevoie să treacă prin procesul de revizuire a magazinului de aplicații.

Testare A / B pe partea de server
Dezvoltatorii pot implementa teste A / B, utilizând semnalizatori de caracteristici activând o caracteristică pentru jumătate dintr-un segment de utilizatori și dezactivând caracteristica pentru cealaltă jumătate și văzând cum se comportă unul împotriva celuilalt pentru o anumită valoare (cum ar fi utilizarea aplicației) sau cumpărături). Deoarece testul este implementat în backend prin cod, nu există latență, în comparație cu ceea ce s-ar putea experimenta cu un test implementat prin JavaScript partea clientului.

Semnalizatoarele de funcții permit, de asemenea, managerilor de produse și altor non-ingineri să testeze A / B diverse caracteristici în cadrul produselor sau sistemelor fără a fi nevoie de implementarea unui cod. Testele pot fi, de asemenea, direcționate către anumite segmente ale bazei dvs. de utilizatori, de exemplu, utilizatorii care locuiesc într-o anumită țară sau se potrivesc unui anumit profil de utilizator. Companiile de top din domeniul tehnologiei, cum ar fi Google, Facebook, Amazon și Netflix, testează frecvent noi funcții înainte de a se deplasa la baza lor completă de utilizatori.

Caracteristică gating
Semnalizatoarele de funcții pot fi utilizate pentru a implementa lansări de caracteristici direcționate către un anumit subset al utilizatorilor dvs. Acest lucru poate fi excelent pentru funcțiile de testare A / B cu anumite segmente de public, dar poate fi folosit și pentru a elibera caracteristici doar unui subset de utilizatori, de exemplu acordând utilizatorilor din nivelul dvs. de întreprindere acces la funcții care nu sunt disponibile în niveluri inferioare. Implementarea funcției gating folosind steaguri vă permite să lansați cu ușurință caracteristici către mai mulți utilizatori în viitor pe măsură ce produsul dvs. evoluează.

Implementare continuă
Un alt avantaj major este faptul că semnalizatorii de caracteristici sunt capacitatea lor de a permite învățarea rapidă. Semnalizarea caracteristicilor permite companiilor să livreze și să implementeze în mod continuu software către utilizatorii lor într-un mod mai rapid. Utilizarea semnalizatorilor de caracteristici permite companiilor să efectueze lansări treptate ale caracteristicilor, să remedieze erorile din cod fără a fi redistribuit, să experimenteze un ciclu de dezvoltare mai raționalizat și să efectueze reveniri de cod mai ușor.

Caracteristica proces de dezvoltare a steagului
Implementarea semnalizatorilor de funcții în codul dvs. nu trebuie să fie un proces complicat. Cu un serviciu de semnalizare a caracteristicilor, cum ar fi Optimizely, tot ce trebuie să faceți este să instalați SDK-ul, să creați semnalizatoarele în platforma de semnalizare a caracteristicilor și apoi să înfășurați caracteristici noi sau căi de cod în codul dvs. în semnalizatoare.

Asta este tot ce este necesar pentru a activa semnalizatoarele de caracteristici, iar acum noua caracteristică poate fi activată sau dezactivată printr-un fișier de configurare sau chiar printr-o interfață vizuală din cadrul platformei de semnalizare a caracteristicilor. Acest lucru poate permite utilizatorilor non-tehnici, cum ar fi managerii de produse, să efectueze experimente cu funcții noi sau să dezactiveze funcțiile, fără a fi nevoie să se bazeze exclusiv pe echipa de dezvoltare.

Odată ce semnalizatoarele de caracteristici sunt active, un alt aspect important este gestionarea semnalizărilor de caracteristici. Pentru a evita datoria tehnică de a avea semnalizări de caracteristici care rămân în cod după ce și-au îndeplinit scopul, este important să revizuim semnalizatoarele la o cadență regulată și să le eliminăm pe cele care nu mai sunt necesare. Acest proces poate fi automatizat în cadrul multor platforme de semnalizare a caracteristicilor.

Caracteristici steaguri și livrare continuă
Campionată de un influent dezvoltator de software Martin Fowler, livrarea continuă este o disciplină de dezvoltare software în care software-ul poate fi lansat în producție în orice moment. A fost adoptat de companii de software de top din întreaga lume ale căror echipe se așteaptă acum să livreze rapid software-ul stabil și fără erori la baza dvs. de utilizatori.

Semnalizarea caracteristicilor îmbunătățește CI / CD, făcând „continuu” mai realizabil. Semnalizatoarele de funcții și comutările de funcții sunt o componentă cheie a implementării livrării continue, permițând separarea lansării caracteristicilor de implementarea codului. Funcțiile incomplete pot fi îmbinate în baza de coduri de producție, dar ascunse în spatele steagurilor de caracteristici.

Cu livrarea continuă și gestionarea semnalizării caracteristicilor, o echipă își poate lansa, controla și măsura caracteristicile la scară largă.