这只橡胶鸭不调试——它在吐槽

发布: (2026年4月5日 GMT+8 18:05)
6 分钟阅读
原文: Dev.to

I’m happy to translate the article for you, but I’ll need the full text you’d like translated (the content that follows the source line). Could you please paste the rest of the article here? Once I have it, I’ll provide the Simplified Chinese translation while preserving the formatting, markdown, and code blocks as requested.

概览

Rubber Roast — 一款 VS Code 扩展,让你的橡皮鸭成为一位爱挑刺的代码评论员。受 CS50 橡皮鸭调试的启发,这只鸭子不仅倾听,还会读取你的代码,发现异味,并对其进行嘲讽。

每当你保存文件时,Rubber Roast 会扫描代码异味,并在违规行旁边直接插入讽刺的内联注释:

  • 硬编码的 API 密钥? “这个凭证的安全性堪比潜艇上的纱窗。”
  • 空的 catch(e) {} “宝可梦异常处理:全都抓住……然后全部忽略。”
  • 47 条 console.log 语句? “这不是程序,而是一个 console.log 投递系统。”
  • 三年前的 TODO 注释? “这个 TODO 已经经历了 47 次冲刺和 3 位项目经理的审阅。”

每条嘲讽都会根据严重程度使用颜色标记——绿色表示轻微,黄色表示中等,粉色表示辣味——并附带一个鸭子表情,让你清楚是谁在评判你。

内置了两种嘲讽引擎:

  • 模板模式(免费) – 数百条犀利单行句,零 API 调用。
  • LM 模式 – 使用 VS Code 的语言模型 API,让你的 AI 副驾驶也能加入嘲讽。

Rubber Roast 通过内置正则表达式捕获 7 类代码异味(TODO/HACK、空的 catch、被注释掉的代码、console.log 垃圾信息、硬编码密钥、过长函数、重复的魔法字符串),并且会检测你已有的 linter 和语言服务器标记的所有问题(类型错误、未使用的变量、已弃用的 API、lint 违规等)。在玩笑背后,它是真正的代码异味检测器。

功能

  • 内联吐槽注释 – 讽刺的一行文字以斜体注释形式出现在问题行旁边,按严重程度(轻度/中度/辣)着色。
  • 两种吐槽引擎 – 免费的基于模板的吐槽或通过 VS Code 语言模型 API 生成的 AI 吐槽(需要 Copilot 或类似工具)。
  • 自动吐槽 – 在文件保存、文件切换和诊断更新时触发。

什么会被烤

Rubber Roast 检测来自两个来源的代码异味:

内置正则规则(无需 linter)

异味捕获内容
TODO/HACK 注释// TODO, // FIXME, // HACK, // WORKAROUND, 等
空的 catch 块catch(e) {} – 静默吞掉错误
被注释掉的代码连续 3 行以上的注释代码
硬编码的机密API 密钥、令牌以及高熵字符串
控制台垃圾过多的 console.log 语句
长函数超过可配置行数的函数
重复的魔法字符串在多个位置使用的相同字面字符串

Linter 与语言服务器诊断

Rubber Roast 还会展示现有工具(如 ESLint、TypeScript、Pyright、Ruff、rust‑analyzer 等)报告的问题,并将其归类为可烤制的类别(类型错误、未使用变量、已弃用 API、lint 违规等)。

技术细节

  • 实现方式 – TypeScript,无运行时依赖。
  • VS Code 扩展 API – 行内文本装饰、诊断监听器、命令、状态栏集成。
  • 基于正则的扫描器 – 自定义模式匹配并对行进行分类(代码 vs. 注释 vs. 字符串),以避免误报。
  • 诊断扫描器 – 挂钩到现有语言服务器,并将其输出映射到可吐槽的类别。
  • VS Code 语言模型 API – 可选的 AI 驱动吐槽,使用 Copilot 并提供模板回退。
  • 香农熵检测 – 捕获不符合已知前缀的硬编码密钥。
  • 打包方式esbuild 将所有内容打包成单个文件。
  • 隐私 – 无外部 API,无遥测;所有处理均在本地完成。

开始使用

对评委认为合适的任何类别开放——这只鸭子不偏爱任何人,只是对所有人一视同仁地吐槽。

0 浏览
Back to Blog

相关文章

阅读更多 »