ios 灰度方案

app内有新的功能发布时,为了确定功能的效果及影响往往会进行灰度。 只让一部分用户参与试用此功能。

需求:一个新功能每个版本有 1/5的用户试用此功能 。

取deviceid 进行hash ,然后取hash后的值得后两位, 如果后两位的值 <=20 ,则认为该用户可以当做试用用户。

这种实现简单方便,但是有一个问题:每次都是同一批用户参与该功能的实验, 如果想每次换不同批次的用户参与实验的话就需要判断后两位值的范围 。

例如:第一批用户 deviceid hash 后的值 <=20  , 那么在下个版本设置 deviceid hash后两位的值 >20 && <=40 ,同理往下继续......  。这样就可以分批次的对不同用户进行灰度。这种方案的好处是参与功能的用户不会重复,用户参与了第一批次的实验,就没法参与下一个批次的试验了 。

    NSString *deviceid = [UIDevice uniqueDeviceIMEI];
    NSUInteger hashValue = [deviceid hash];
    /**  取后两位 */
    NSUInteger percentValue = hashValue % 100;
    if ( percentValue <= 20) {
       // 参与实验
        return YES;
    } else {
      // 不参与实验
    }

还有一种方式是使用随机数 。如控制1/5的用户参与功能,则需要进行 random ,判断random 的数字 == 1 ,则参与该功能的实验 。这种方式比较简单,但是可能会有重复参与实验的用户 。

转载于:https://my.oschina.net/zhxx/blog/1506738

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值