GoDasturchi
Project: Feature Flags

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:

  • Flag bitta tugmani ushlab turadi: uning nomi, yoqiq/o'chiq holati, va qisman chiqarishlar uchun rollout foizi.
  • Store butun to'plamga egalik qiladi. Go'da, bunday tur — Flag slicasini o'rab olgan struct.

>_ Exercise

Boshlang'ich main kompilyatsiya bo'lishi uchun Flag va Store turlarini aniqlang.

Flag

Uchta maydonli bitta feature flag:

  • Namestring
  • Enabledbool
  • Rolloutint (foiz, 0 dan 100 gacha)

Store

Butun to'plamga egalik qiladi:

  • FlagsFlag slicasi

Stuck? Reveal a hint to help you.

Hints (0/4)

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

OUTPUT

$ go run main.go
Kodingizni ishga tushiring

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:

  • Flag bitta tugmani ushlab turadi: uning nomi, yoqiq/o'chiq holati, va qisman chiqarishlar uchun rollout foizi.
  • Store butun to'plamga egalik qiladi. Go'da, bunday tur — Flag slicasini o'rab olgan struct.

>_ Exercise

Boshlang'ich main kompilyatsiya bo'lishi uchun Flag va Store turlarini aniqlang.

Flag

Uchta maydonli bitta feature flag:

  • Namestring
  • Enabledbool
  • Rolloutint (foiz, 0 dan 100 gacha)

Store

Butun to'plamga egalik qiladi:

  • FlagsFlag slicasi

Stuck? Reveal a hint to help you.

Hints (0/4)

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