交付自動化 中階

什麼是 Feature Flags?它如何支援持續部署和降低發布風險?

AI 練習作答

Feature Flags(功能旗標)

在程式碼中加入條件判斷,讓你能在不重新部署的情況下動態開啟或關閉功能。

if (featureFlags.isEnabled('new-checkout-flow', userId)) { return newCheckoutFlow(); } else { return legacyCheckoutFlow(); }

使用場景

漸進式發布:先對 1% 的使用者開啟新功能,確認正常後逐步擴大範圍

Trunk-based Development:開發中的不完整功能可合併至主分支但保持關閉,避免長期 feature branch

緊急關閉:生產環境發現問題時,無需回滾部署,即時關閉問題功能

A/B 測試:針對不同用戶群展示不同版本,收集業務指標

Beta 測試:只對特定使用者(如內部員工或 beta 群組)開放新功能

Flag 類型

類型 特點 生命週期
Release Flag 控制功能上線 短暫(功能穩定後移除)
Experiment Flag A/B 測試 短暫(實驗結束後移除)
Ops Flag 緊急熔斷控制 長期
Permission Flag 基於用戶權限 長期

常見工具

  • 開源:Unleash、Flagsmith
  • 商業 SaaS:LaunchDarkly、Split.io

技術債警告

Feature flags 是技術債的來源。每個 flag 都需要最終移除,否則程式碼中的條件分支會不斷累積,增加複雜度和測試負擔。應建立 flag 的生命週期管理機制。

✦ AI 模擬面試

輸入你的答案,AI 即時分析精準度與改進空間

登入後即可使用 AI 評分