Latihan 1: Feature Flags & Gradual Rollouts — DevOps

Latihan 1 dari materi Feature Flags & Gradual Rollouts di DevOps — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.

Lengkapi function evaluateFlag(flag, user) supaya mengembalikan true kalau fitur aktif untuk user itu, dan false kalau gak.

flag berbentuk { enabled, percentage, allowlist, blocklist }, dan user berbentuk { id, plan }. Cek aturannya berurutan, aturan pertama yang cocok langsung return:

  1. flag.enabled false: kembalikan false (kill switch, menang dari semua aturan).
  2. user.id ada di flag.blocklist: kembalikan false.
  3. user.id ada di flag.allowlist: kembalikan true.
  4. flag.percentage >= 100: kembalikan true. flag.percentage <= 0: kembalikan false.
  5. Selain itu, hitung bucket: mulai hash = 0, lalu untuk tiap karakter user.id, hash = (hash * 31 + char.charCodeAt(0)) % 100. Kembalikan hash < flag.percentage.

Yang dicek:

Baris const flag = ... dan console.log(...) di kode awal sudah ada, biarkan saja. Dia mencetak true.

Hint