Feature Toggles: Cách Facebook update tính năng mà không cần đợi duyệt App Store
Làm sao để test tính năng mới trên 1% user? Làm sao để rollback ngay lập tức nếu có lỗi mà không cần release lại app? Đó là Feature Flags.
Quy trình Release cũ (Nỗi đau)
Code xong.
Build App.
Submit lên Apple Store/Google Play.
Đợi 2 ngày để được duyệt.
User tải về dùng -> Lỗi Crash App!
Fix bug -> Build lại -> Submit lại -> Đợi 2 ngày nữa. Trong 2 ngày đó, user chửi bới và xóa app.
Feature Toggles (Cờ tính năng)
Thay vì hard-code, hãy bọc tính năng mới trong một câu lệnh if:
if (FeatureFlag.isEnabled("new_checkout_flow", currentUser)) {
showNewCheckout();
} else {
showOldCheckout();
}Cái FeatureFlag này được điều khiển từ Server.
Lợi ích nếu sử dụng hiệu quả:
Canary Release: Bật tính năng cho 1% user hoặc chỉ nội bộ team để test trước. Nếu ổn thì tăng lên 10%, 50%, 100%.
Kill Switch: Nếu 1% user kia bị crash? Tắt cờ ngay lập tức trên Server. App quay về giao diện cũ. User an toàn. Không cần đợi Apple duyệt lại.
A/B Testing: Bật cờ A cho nhóm này, cờ B cho nhóm kia dễ dàng.
Feature Flags là vũ khí lợi hại của PM và Dev. Hãy yêu cầu team setup hệ thống này nên dùng Firebase Remote Config hoặc LaunchDarkly ngay từ đầu dừng tự build khi quá sớm dù không khó. Nó là tờ giấy Bảo hiểm cho dự án của bạn.



