dif.sh favicon

dif.sh

一款 Git 原生的功能标志(Feature Flagging)和 A/B 测试平台,通过 Markdown 文件和命令行界面(CLI)直接在代码库中管理实验,实现实验即代码的开发体验。

编程&IT构建时冲突检测AI 助手上下文生成自动化实验归档本地变体预览
dif.sh product interface screenshot
收录于 AIToolly

dif.sh 是什么?产品概览

产品用途与官方定位

dif.sh 是一个以开发者为中心的实验平台,它将功能标志、A/B 测试和发布策略作为 Markdown 文件存储在项目仓库中。这种方法允许团队使用标准的版本控制工具来管理功能标志的整个生命周期。

该系统与现有的 Git 工作流深度集成,支持通过拉取请求(Pull Request)进行实验审批,并保留所有更改的永久版本化历史记录。它包含一个 CLI,可自动执行测试的创建、验证和结束,同时生成用于生产环境的类型化客户端。

通过利用本地构建过程,该工具可以在实验进入生产环境之前检测到潜在的实验碰撞。它还会生成专门设计的上下文文件,帮助 AI 编码助手理解代码库当前的实验状态和历史背景。

dif.sh 可以用来做什么?

有官方来源支持的使用场景

管理 A/B 测试

团队可以在 Markdown 文件中定义变体、假设和指标,以便在代码中运行和跟踪实验。

AI 编码助手上下文

为编码助手提供生成的上下文文件,使其在开发过程中了解活跃的实验和先前的学习成果。

如何使用 dif.sh

官网提供的使用流程

  1. 1

    初始化

    运行 init 命令在仓库内设置本地文件夹结构,包括实验目录和 Surface 目录。

  2. 2

    创建实验

    使用 CLI 起草新测试,系统会自动从相关的 Surface 日志中提取历史背景以辅助制定新假设。

  3. 3

    验证与 QA

    执行验证检查以确保配置正确,并使用 QA 命令在本地预览特定的实验变体。

  4. 4

    构建与部署

    运行 build 命令生成类型化客户端,并在将代码发布到生产环境前解决排除组冲突。

  5. 5

    结束实验

    通过归档文件、起草决策块并更新 Surface 的学习日志来完成测试,供未来参考。

基于 Git 的实验生命周期

该平台将功能标志和实验视为代码工件,利用 Markdown 文件进行配置,并使用 Git 进行版本控制。这种方法旨在使审计日志和审批流程保留在现有的开发者工作流(如拉取请求)中,消除了对单独数据库或外部配置管理仪表板的需求。

在构建过程中,该工具会解析排除图,以确保没有用户同时被分配到两个冲突的实验中。如果检测到冲突,构建将在持续集成(CI)环境中失败,从而防止逻辑冲突影响到生产环境的应用程序。

  • 自动生成 AI 助手感知的上下文文件。
  • 构建时冲突检测,有效减少重叠实验带来的风险。
  • Surface 日志维护特定应用区域的历史学习记录。
  • 生成类型化客户端,确保生产环境代码精简且高性能。

选择 dif.sh 前需要测试什么

用自己的素材和工作流完成验证

  • 确认 CLI 在构建过程中能够正确识别并拦截同一排除组内重叠的实验。
  • 验证生成的上下文文件是否包含预期的活跃标志和变体,以便外部编码助手使用。
  • 检查在通过 CLI 结束实验后,Surface 日志是否已正确更新并包含决策块。

dif.sh 来源与核对时间

核对了哪些信息以及核对时间

最后核对
分类
编程&IT

dif.sh 常见问题

基于已核对产品资料的回答

如何处理实验冲突?

系统使用文件 Frontmatter 中定义的排除组,并在构建步骤中检查冲突;如果用户会被分配到两个冲突的测试中,则构建会失败。

客户数据存储在哪里?

客户数据不会存储或提交到仓库中;相反,受众属性在配置中声明,而具体数值在运行时从应用程序的用户上下文中提供。

Surfaces 目录的作用是什么?

Surfaces 充当机构记忆库,包含记录特定屏幕或功能的先前学习成果和潜在问题的 Markdown 文件,为未来的实验提供参考。

该工具如何与 AI 编码助手集成?

每次构建都会重新生成一个包含活跃标志和近期学习成果的上下文文件,编码助手可以在会话开始时读取该文件以了解当前的实验状态。

使用该工具是否需要云服务?

不需要,核心功能通过 CLI 和本地文件运行,但对于需要集中化分析和置信区间可视化图表的团队,也提供可选的云端层。

继续查看同一分类中近期收录的其他工具。