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.

Buat fungsi evaluateFlag(flag, user) yang mengevaluasi feature flag untuk seorang user.

flag format:

{
  enabled: boolean,         // master switch
  percentage: number,       // 0-100, rollout percentage
  allowlist: string[],      // user IDs yang selalu enabled
  blocklist: string[]       // user IDs yang selalu disabled
}

user format: { id: string, plan: string }

Rules (cek berurutan):

  1. Jika flag.enabled = false → return false
  2. Jika user.id ada di blocklist → return false
  3. Jika user.id ada di allowlist → return true
  4. Jika percentage >= 100 → return true
  5. Jika percentage <= 0 → return false
  6. Hitung hash user.id: jumlahkan char code semua karakter, modulo 100. Jika hasil < percentage → true, else false.

Hint