返回首页

devtools 中的 AI 代码:Google 工程师关于 Claude 的经验教训

Google 工程师 Lalit Maganti 描述了使用 Claude Code 开发 syntaqlite 的过程:C 的第一迭代因混乱失败,Rust 的第二迭代通过手动控制成功。AI 擅长实现但架构薄弱。关键——测试和审查。

与 Claude 的 250h:为什么 Google 工程师扔掉了 AI 代码
Advertisement 728x90

Google 工程师谈 DevTools 中 AI 代理的陷阱:从意大利面条代码到 Rust 重构

Google 工程师 Lalit Maganti 花了三个月和大约 250 小时开发 syntaqlite——一套 SQLite 工具套件,包括解析器、格式化器、代码检查器和 LSP 服务器。第一种方法是将一切完全委托给 Claude,导致代码变得无法管理,只能全部推倒重来。改用 Rust 并将 AI 作为自动补全工具,最终发布了可用的 0.1 版本。

第一迭代:委托给 AI 导致代码混乱

Maganti 从最大化自动化开始:Claude 负责设计和实现,而作者仅扮演经理角色。一个月内,他们创建了:

  • 用 C 实现的解析器。
  • 格式化器。
  • Web 界面。
  • 500 多个测试。

结果在功能上能工作,但审查时暴露了问题:

Google AdInline article slot
  • 函数乱七八糟地散布在各个文件中。
  • 模块膨胀到数千行代码。
  • 从 SQLite 源代码提取代码的管道变得连作者自己都看不懂。

代码库变成了“意大利面条代码”。解决方案:彻底拆除并重新开始。

第二迭代:Rust、手动设计、AI 自动补全

切换技术栈到 Rust 后,Maganti 亲自掌控架构。Claude 只用于根据精确规范生成代码,并进行严格审查。

关键实践:

Google AdInline article slot
  • 自动化测试:一个驱动程序将每个 SQL 查询与 1390 个上游 SQLite 测试进行对比,验证 syntaqlite 解析器。
  • 持续重构:每次更改都经过手动审查。
  • 日志记录:日志(约 4000 字)、会话记录、提交历史。

核心部分在二月组装完成,0.1 版本于三月中旬发布。这个酝酿了 8 年的项目,作为副业得以实现。

AI 代理的陷阱:从沉迷到失控

Maganti 将使用 Claude 的过程比作玩老虎机:

  • “再来一个提示”拖到深夜。
  • 疲劳导致提示质量下降。
  • 失去对代码库的“感觉”,变成管理别人代码的经理。

沟通出现断层:模糊描述导致错误解读。AI 在函数/类层面表现出色,但在架构、API 设计和项目上下文方面力不从心。

Google AdInline article slot

关键经验教训

  • AI 加速实现,但无法取代设计:模型缺乏“品味”和历史积累。
  • 完全委托导致代码失控:手动审查必不可少。
  • Rust + AI 自动补全胜过 C + 代理:架构至关重要。
  • 基于上游测试验证至关重要,针对 SQLite 解析器。
  • 日志记录加速迭代:发布日志而非一次性故事。

对中高级开发者的建议

  • 将 AI 用于常规任务:自动补全、重构小部分代码。
  • 保留对架构的控制:模型无法把握长期上下文。
  • 实现自动化管道:与参考测试(SQLite 上游)对比。
  • 记录会话:分析提示、提交、错误。

Maganti 的方法表明:AI 能加速副业项目,但需要自律。Syntaqlite 是人类与代理在复杂 DevTools 中平衡的典范。

— Editorial Team

Advertisement 728x90

继续阅读