我是在这样一个环境中开发的,我们往往会做大量的A/B测试。我很想向其他人学习如何在您的代码库中管理A/B测试代码?
您是否将A/B测试代码与控制代码(现有功能)混合使用。如果这样做,如何确保代码库不会变得不可维护?
是否有一种特定的设计模式在“分叉”的控制和测试代码中很有用?
我目前的位置基本上是要求前端工程师为每个实验保留“整个”前端文件夹,并对其进行修改。
发布于 2019-09-12 19:08:31
发布于 2019-09-12 17:10:05
在每个版本部署许多特性并在生产中测试它们时,有四件事对我有很大帮助:
特征标志允许我们在控制的时间内启用一个特征,例如一天中的特定部分,或者仅在一个区域。它允许我们快速地“撤销”一个不适用于客户的更改。
白名单允许我们只为一组特定的、定义良好的客户启用一个功能。它允许我们有明确的“测试版测试人员”的一个功能,并迅速扩大或缩小他们的名单。
路由控制允许我们例如将2%的流量定向到具有特征集A的服务器,将3%的流量定向到具有特征集B的服务器,而将其余的流量引导到最新的稳定服务器。
详细的日志记录使我们能够判断哪一行属于哪个服务器,哪个版本等等。每一行包含足够的信息,可以轻松地分组启用/禁用特定功能的行,并进行分析/比较(使用Splunk)。
希望这能有所帮助。
https://softwareengineering.stackexchange.com/questions/398346
复制相似问题