ugrás a tartalomhoz

Feature branches vs. Feature flags?

T.G · 2014. Nov. 11. (K), 08.35
Sziasztok! A Web Konferencián már másodszor hallom, hogy a flipperek milyen jók, és hogy a branch-ek meg nem. De nem értem, hogy ezek miért zárnák ki egymást? Vagy nem pontosan értem, hogy mit mond az előadó, vagy valamelyik fogalmat másként értelmezem, nem tudom.
Valaki fel tudna világosítani, hogy a branch-ek miért gátolnák a flag-eket?
 
1

Nem gátolják egymást, hanem

pp · 2014. Nov. 11. (K), 09.19
Nem gátolják egymást, hanem két fejlesztési módszerről van szó.

A flippernél egy új funkciót úgy vezetsz be a kódba, hogy az akármikor akár az éles szerverre is kitehető legyen. Tehát nem külön kódba/branch-be teszed az új funkciót és szenvedsz a mergeléssel, hanem egyből tolod ki élesbe. Ráadásul még felhasználói szegmenseknek is be/ki kapcsolhatod az új funkciót. Gondolj bele úgy tudsz élesben tesztelni, hogy csak Te látod. :)

Nem a legjobb de talán érthető példa a Drupal modulok. Ha kell egy modul funkcionalitása, akkor azt bekapcsolod, ha nem kell, akkor azt kikapcsolod, de simán kint lehet élesen is, mert ha nincs bekapcsolva semmilyen ráhatása nincs a rendszerre. (azért ez a példa mert hétvégén többek között arról fogok beszélni, hogy Drupalban hogyan lehet egyszerűen flippereket megvalósítani)

pp
3

Szia,Sajnos nem volt

ecrazor · 2014. Nov. 11. (K), 09.41
Szia,

Sajnos nem volt lehetőségem részt venni az eseményen, érdeklődnék van-e videó róla? Ha igen hol? Érdekelne engem is a téma, mert elég rég óta Drupal fejlesztő vagyok, és rám férne egy kis update/upgrade. Főleg a flipperek terén! :-)

Köszönöm.

sb
4

Egy feature switchet nem

Ajnasz · 2014. Nov. 11. (K), 10.46
Egy feature switchet nem lehet branchben fejleszteni? Meg miért nagyobb szenvedés branchet mergelni, mint remote kódot?
5

értem is, meg nem is...

T.G · 2014. Nov. 11. (K), 10.53
Köszönöm a választ, nagyjából értem is, meg nem is. Valószínű én valami hibrid valamit használok. Mennyire félkész terméket mutatunk meg az ügyfélnek? Gondolok itt arra, hogy ha van egy két hetes fejlesztés, amit három-négy naponta szeretnék megmutatni, akkor miért ne használnék branch-t? A fejlesztés legvége előtt nem élesítem mindenkinek az adott funkciót, de sosem gondoltam arra, hogy kommitonként kellene a belső ellenőrző munkatársaknak látniuk az adott munkafolyamatot. A külsősöknek meg biztosan nem. Így számomra ez a kettő elfér egyben.
Az mondjuk tény, hogy én is csak 3-4 naponta látom a fejlesztésemet az éles szerveren.

Remélem lesz videó az előadásodról, mert nagyon szívesen megnézném! :)
2

Flipperek

Poetro · 2014. Nov. 11. (K), 09.39
Mik azok a flipperek?
6

Szinonimák

T.G · 2014. Nov. 11. (K), 11.01
Számomra kicsit kavalkád van a szavak között, de én kb. szinonimaként használom az alábbiakat: feature flag, feature toggle, feature bit, feature switch vagy feature flipper.
Forráskódba beteszünk olyan kapcsolókat, amelyek segítségével egyes felhasználók tesztelhetik a félkész funkciókat. (legalábbis én erre használom:)
7

Értem

Poetro · 2014. Nov. 11. (K), 11.15
OK, így már értem. És mi mindkettőt használjuk. Mármint branch-eket és feature toggle-t. Egy új szolgáltatást lefejlesztünk egy új branchben, majd hozzáadunk egy kapcsolót, és alapértelmezetten ki van kapcsolva. Aztán amikor bekerül a főágba, bekapcsoljuk a teszt szerveren, majd teszteljük, hogyan működnek együtt a kód többi részével. Majd kikerül élesbe, és folyamatosan kapcsoljuk be, egyre több kód útvonalat lefedve.