可啟用和停用功能的功能標幟 feature-flags

功能標幟可讓您在執行階段開啟或關閉應用程式功能,而不需重新部署程式碼。 此外,他們還將計畫碼部署與功能可用性分開 — 新計畫碼可以在標幟後面部署到生產環境,並且僅在您準備好時開啟。

此做法可大幅降低風險。 開發人員可以靈活自信地建立,而產品團隊仍可控制每個功能發佈的時間和對象。

在開發期間管理相依性 manage-dependencies

在快速開發週期中進行測試時,功能標幟有助於管理相依性。 開發人員花在解決合併衝突和重構上的時間更少,而花在提供功能上的時間則更多。

由於功能可用性是在程式碼之外加以控制,因此多個功能可同時開發,而不需要複雜的分支。 個別功能可以獨立前轉或後轉,而不會影響其他進行中的功能。

深色部署 dark-deployments

由於啟用和停用決策位於程式碼基底之外,因此您可以將程式碼部署到生產環境,同時讓一般使用者看不到此功能。 這稱為​深色部署

深色部署可讓您將計畫碼安全地推送至生產環境、在即時環境中針對真實條件測試計畫碼,並在您選擇時上線,而不是在部署排程強制您上線時。

逐步轉出 gradual-rollout

準備發行時,您可以使用功能標幟來執行​逐步推出:開啟功能至1%的使用者、測量意見與效能,然後逐步增加。

這種滾動式方法可讓您更嚴密地控制您提供的體驗,並以更快的速度與真實使用者進行回饋迴路,讓您的團隊可在完整版發行之前快速回應。

終止開關 kill-switch

如果發行未按計畫進行 — 不利的回饋、錯誤或效能問題 — 您可以使用功能標幟作為​ 終止開關 ​立即關閉功能。 不需要變更或重新部署程式碼。

功能標幟生命週期 lifecycle

體驗轉出中的功能標幟會遵循此一般生命週期:

  1. 開發人員會建立功能標幟並單獨進行測試,而不會將標幟公開給其他使用者。
  2. 產品所有者將受眾連結至標幟,使定義的一組外部使用者可看見此功能。
  3. 旗標會選擇性地新增至功能群組,與相關的旗標一併管理。
  4. 可選擇將旗標新增至版本,以進行跨團隊協調。
recommendation-more-help
d13798b4-8a4f-43f0-94df-d937d1de33b1