示例用法

云眼About 2 min

示例用法

本主题提供如何使用云眼灰度实验 Go SDK 评估灰度标帜、激活 A/B 测试或功能测试的简短代码示例。

安装 SDK 后,将 Eyeofcloud 功能实验库导入代码,获取云眼灰度实验项目的数据文件,并实例化客户端。然后,可以使用客户端评估标帜规则,包括 A/B 测试和标帜传递。

此示例演示了以下每个概念的基本用法:

  1. 使用 Decide 方法计算具有product_sort键的标帜。作为副作用,Decision函数还会向云眼灰度实验发送决策事件,以记录当前用户已暴露于实验。

  2. 有条件地执行特征代码。有以下几种选择:

  • 获取启用标帜的状态,然后检查名为sort_method的标帜上的配置变量。SDK 会评估标帜规则,并确定用户所处的标帜变体,从而确定他们应该看到的排序方法变量。
  • 获取标帜变体,然后运行“控制”或“处理”代码。
  1. 使用事件跟踪跟踪名为purchased的事件。此转化事件衡量实验的影响。使用 Track Event 方法,购买会自动归因于我们做出决策的正在运行的 A/B 测试,SDK 会通过可自定义的事件调度程序向 Eyeofcloud 功能实验发送网络请求,以便我们可以将其计入“结果”页面。

Go

import eoc "github.com/eyeofcloud/go-sdk/pkg/client"  

eyeofcloud_client, er := eoc.Client("SDK_KEY_HERE")  

// create a user and decide a flag rule (such as an A/B test) for them 
user := eyeofcloud_client.CreateUserContext("user123", map[string]interface{}{"logged_in": true}) 
decision := user.Decide("product_sort", []decide.EyeofcloudDecideOptions{})  

var variationKey string 
if variationKey = decision.VariationKey; variationKey == "" {   
    fmt.Printf("[decide] error: %v", decision.GetReasons())   
    return 
}  

// execute code based on flag enabled state 
enabled := decision.Enabled  

if enabled {   
    // get flag variable values   
    var value1 string   
    decision.Variables.GetValue("sort_method", &value1)   
    // or:   
    value2 := decision.Variables.ToMap()["sort_method"].(string) 
}  

// or execute code based on flag variation: 
if variationKey == "control" {   
    // Execute code for control variation 
} else if variationKey == "treatment" {   
    // Execute code for treatment variation 
}  

// Track a user event 
user.TrackEvent("purchased", nil)

有关更详细且可运行的代码示例,请参阅快速入门

Last update:
Contributors: zhangweixue