Yadda 3.0.0:AI 智能体时代的 BDD 库
Yadda 3.0.0 已正式发布到 npm。作为 JavaScript 生态中一款行为驱动开发(BDD)库,Yadda 与 Cucumber 类似,但更强调灵活性。其最新版本不仅是一次现代化升级,更引人注目的是,这次重构大部分由 AI 编程工具 Claude Code 完成,标志着 AI 在软件开发中的角色正从辅助走向主导。
更自由的 BDD 表达
Yadda 的核心优势在于它对规格说明的编写方式几乎不加限制。传统的 BDD 工具(如 Cucumber)要求使用固定的 Given-When-Then 句式,而 Yadda 允许开发者使用更自然的语言。例如,你可以直接写:“东英吉利大学提供计算机科学学位课程,入学要求为 ABB”,而不是生硬地套用“Given...And...When...Then”的模板。这种灵活性让规格说明更易读、更接近业务语言,降低了非技术人员参与的门槛。
现代化改造
Yadda 3.0 的更新主要围绕现代化展开:
- 仅支持 Node:移除了浏览器打包及对 CasperJS、PhantomJS、Bower 等过时集成的支持,聚焦当前生态。
- 测试与工具链升级:采用 node:test、Biome 和 lefthook,源代码转为 ES6 语法。
- 新增 TypeScript 定义:方便 TypeScript 项目集成。
- 示例更新:加入 Playwright 和 Puppeteer 的当前示例。
这些改动让 Yadda 更贴合现代开发流程,但真正的亮点在于其开发方式。
AI 主导的重构
Yadda 的维护者透露,这次重构大部分由 Claude Code(基于 Opus 4.8)完成。整个过程被拆分为多个阶段:移除过时功能、更新工具链、格式化代码、现代化源码、探索 API 变更、更新示例和 CI,最后完善文档和类型定义。每个阶段先规划再实施,Claude 的表现令人惊讶,错误极少。
这引发了一个有趣的问题:当 AI 能独立完成大部分编码任务时,开发者的角色将如何演变?维护者作为“监督者”和“决策者”,负责规划阶段和审查结果,而 AI 则高效执行。这种协作模式可能成为未来软件开发的常态,尤其是在维护老项目、处理重复性任务时,AI 的价值尤为突出。
结语
Yadda 3.0 不仅是一个库的更新,更是 AI 编程实践的一个案例。它展示了 AI 如何加速软件维护,同时也提醒我们,人的判断力和架构设计能力依然不可替代。对于 BDD 爱好者,Yadda 3.0 的灵活性和现代化特性值得一试;对于开发者社区,这次重构的流程或许能带来更多关于人机协作的思考。