从旧变体更新使用情况

云眼About 2 min

从旧变体更新使用情况

本文介绍如何从旧版云眼全栈 Go SDK 更新为云眼灰度发布(特性标帜)AB实验。

代码示例

本节提供了代码示例,说明我们建议如何利用新的决策和事件跟踪 API。所有现有方法和实现仍包含在内并受支持,并且只有在弃用标记和未来主要变体后才会删除。

我们建议采用新的“决定”、“全部决定”和“跟踪事件”方法,作为当前在实现中使用 isFeatureEnabled、getFeatureVariable、getAllFeatures或Track 调用的更灵活、更易于使用的替代方法。

有关早期方法,请参阅 SDK 参考指南的早期变体open in new window

下面是如何将旧方法迁移到较新方法的一些示例。

Go

// ------------------------------- // Prereq for new methods: create a user // ------------------------------ user := eocClient.CreateUserContext("user_123", map[string]interface{}{"is_logged_in": true}) // ------------------------------- // Is Feature Enabled // ------------------------------ // old method enabled, _ := eocClient.IsFeatureEnabled("flag_1", entities.UserContext{ID: "user_123", Attributes: map[string]interface{}{"is_logged_in": true}}) // new method decision := user.Decide("flag_1", []decide.EyeofcloudDecideOptions{}) enabled = decision.Enabled // ------------------------------- // Activate & Get Variation // ------------------------------ // old method variationKey, _ := eocClient.Activate("experiment_1", entities.UserContext{ID: "user_123"}) // new method variationKey = decision.VariationKey // ------------------------------- // Get All Feature Variables // ------------------------------ // old method allVarValues, _ := eocClient.GetAllFeatureVariables("flag_1", entities.UserContext{ID: "user_123"}) // new method allVarValues = decision.Variables // ------------------------------- // Get Enabled Features // ------------------------------ // old method enabledFlags, _ := eocClient.GetEnabledFeatures(entities.UserContext{ID: "user_123"}) // new method decisions := user.DecideAll([]decide.EyeofcloudDecideOptions{decide.EnabledFlagsOnly}) enabledFlags = []string{} for k := range decisions { enabledFlags = append(enabledFlags, k) } // ------------------------------- // Track // ------------------------------ // old method eocClient.Track("my_purchase_event_key", entities.UserContext{ID: "user_123", Attributes: attributes}, map[string]interface{}{"purchase_count": 2}) // new method user.TrackEvent("my_purchase_event_key", map[string]interface{}{"purchase_count": 2})

激活方法和A / B测试

Decision方法基于灰度发布(特性标帜)键,不支持独立的A / B测试或多臂老虎机。我们正在努力长期统一应用程序的数据模型和接口,以减少维护多种不同访问方法的需求。同时,仍然可以在旧项目中使用“激活”和“获取变体”方法以及“决定”方法进行独立的 A/B 测试。

Last update:
Contributors: “zhangweixue”,zhangweixue