Project: Feature Flags
Loyiha: Feature flag'lar
Feature flag — kodingiz biror xatti-harakatni ishga tushirishdan oldin tekshiradigan nomlangan yoqish/o'chirish tugmasi. Funksiyaga new-checkout kabi nom berasiz va uni tez tekshiruv bilan himoyalaysiz: if flags.Enabled("new-checkout"). Flag o'chiq bo'lsa, o'sha kod yo'li o'tkazib yuboriladi; uni yoqsangiz, funksiya jonlanadi. Tugma ma'lumotda yashaydi, shuning uchun uni kodga tegmasdan yoki qayta joylashtirmasdan o'zgartirishingiz mumkin.
Bu sizga yarim tugallangan funksiyani o'chirish yoki izohga olish o'rniga, o'chiq holda joylashtirish, so'ng tayyor bo'lganingizda yoqish imkonini beradi.
Bu kodni joylashtirishni uni chiqarishdan ajratadi:
- •Funksiyani o'chiq holda joylashtirib, keyinroq boshqa joylashtirishsiz yoqishingiz mumkin.
- •Uni avval foydalanuvchilarning kichik qismi uchun yoqib, sog'lom ko'rinsa kengaytirishingiz mumkin.
- •Agar u production'da buzilsa, flagni o'chirish qaytarib joylashtirishdan tezroq.
Ma'lumotning shakli
Sizga ikkita tur kerak:
- •
Flagbitta tugmani ushlab turadi: uning nomi, yoqiq/o'chiq holati, va qisman chiqarishlar uchun rollout foizi. - •
Storebutun to'plamga egalik qiladi. Go'da, bunday tur —Flagslicasini o'rab olgan struct.
>_ Exercise
Boshlang'ich main kompilyatsiya bo'lishi uchun Flag va Store turlarini aniqlang.
Flag
Uchta maydonli bitta feature flag:
- •
Name—string - •
Enabled—bool - •
Rollout—int(foiz, 0 dan 100 gacha)
Store
Butun to'plamga egalik qiladi:
- •
Flags—Flagslicasi
Stuck? Reveal a hint to help you.
Key Takeaway
Key Takeaway:
Go'da to'plam turi odatda slicani o'rab olgan struct; o'sha slicani o'zgartiradigan metodlar keyingi navbatda.
NEXT UP
Project: Setting a Flag
$ go run main.go
Kodingizni ishga tushiring