极狐 GitLab

实验指南

实验可由任何极狐GitLab 团队进行,最常见的是增长子部门的团队。实验与版本无关,因为它们主要针对 JihuLab.com。

实验以 A/B/n 测试的形式运行,并位于实验功能标志之后,以打开或关闭测试。根据实验生成的数据,团队决定实验是否产生了积极影响,并应成为新的默认设置,还是回滚。

极狐GitLab 中的实验与极狐GitLab 开发中的功能标志所提供的概念紧密耦合。强烈建议你在考虑运行实验之前,阅读并理解文档中极狐GitLab 开发中的功能标志部分。实验增加了额外的概念,如果不了解极狐GitLab 在开发中如何使用功能标志的基础知识,这些概念可能会显得混乱或高级。一个概念:实验可以运行多个变体,有时称为 A/B/n 测试。

我们使用 gitlab-experiment gem(有时称为 GLEX)来运行我们的实验。该 gem 存在于一个单独的仓库中,因此可以在任何使用 Ruby 的极狐GitLab 资产中共享。如果你想深入研究更高级的主题或提出问题,你应该可以轻松阅读该项目的文档。请注意,那里的文档反映了主分支中的内容,可能与极狐GitLab 中使用的版本不同。

术语表#

为了确保共同语言,你应该理解我们在交流实验时使用的这些基本术语:

  • experiment:我们希望在某些时候运行,而在其他时候不运行的任何代码路径偏差。
  • context:我们在实验中提供的一致体验。
  • control:默认或“原始”代码路径。
  • candidate:定义只有一个代码路径的实验。
  • variant(s):定义具有多个代码路径的实验。
  • behaviors:用于引用实验的所有可能代码路径,包括对照组。

实验工作流#

要在极狐GitLab 中运行实验,请遵循此工作流:

  1. 实现你的实验 - 使用 GLEX 框架创建和配置你的 A/B/n 测试
  2. 测试你的实验 - 编写 RSpec 测试并验证实验行为
  3. 推出你的实验 - 使用功能标志部署你的实验
  4. 代码审查指南 - 以适当的标准审查实验代码

GLEX - 或 Gitlab::Experiment,即 gitlab-experiment gem - 是在极狐GitLab 中实现实验的首选选项。

为实验添加新图标和插图#

某些实验可能需要你向我们的代码库添加自定义图标或插图。此过程很漫长,而且在此阶段,实验的结果尚不确定。因此,你应该将此工作推迟到实验清理流程之后。

我们推荐以下工作流:

  1. 查看 Pajamas 关于图标插图的指南。
  2. 在极狐GitLab 仓库的 /app/assets/images(或 EE)路径中添加图标或插图作为 .svg 文件。
  3. 使用 image_tagimage_path 通过资产管道进行渲染。
  4. 如果实验成功,设计师会在清理过程中将新图标或插图添加到 Pajamas UI 套件中。然后,工程师可以将其添加到 SVG 库中,并根据前端开发指南修改实现。

其他资源#