我构建了一个系统级技术词典,因为 AI 让我感到笨

发布: (2026年2月22日 GMT+8 13:16)
8 分钟阅读
原文: Dev.to

I’m happy to translate the article for you, but I need the full text of the post (the content you’d like translated). Could you please paste the article’s body here? I’ll keep the source line exactly as you provided and translate everything else while preserving the original formatting, markdown, and technical terms.

介绍

几个月前,我请 Claude 帮我搭建一个部署流水线。它给了我一个完美可用的配置,包含 nginx 反向代理Docker 多阶段构建、健康检查端点以及优雅关闭处理程序。

第一次尝试就成功了。

而我只理解了大约 40 % 的内容。

我可以使用它,可以复制粘贴它,甚至可以稍作修改。但如果有人问我反向代理到底是干什么的,或者为什么 Docker 构建里会有多个 FROM 语句,我只能敷衍了事。

这正是我们很多人的新常态。AI 写出的代码能够运行,却使用了我们尚未完全内化的词汇。“它能跑”与“我明白为什么能跑”之间的差距正在不断扩大。

流程问题

显而易见的答案是“直接查一下”。但实际操作是这样的:

  1. 你在 VS Code 中阅读 AI 生成的代码。
  2. 碰到一个你不太明白的术语。
  3. 打开浏览器,去 Google 搜索。
  4. 得到一条 Stack Overflow 的答案,但它是为另一个情境写的。
  5. 阅读了三段文字,又打开了两个标签页。
  6. 忘记了自己在做什么。
  7. 重复上述过程。

或者让 AI 解释,这会打开一个新的聊天线程,丢失上下文,把一个 5 秒的问题变成 2 分钟的对话。

我想要的效果: 选中术语,按下一个键,得到答案,继续编写代码。

我做了它

Quill 是一个 macOS 菜单栏应用,只做一件事:

  • 在任意应用中选中任意词汇。
  • 按下 Ctrl + Option + Q
  • 一个浮动面板会出现在光标附近,显示解释。
  • 该面板不会抢夺焦点——你的源应用保持活跃。

这就是核心功能,但还有一些额外特性,使其真正对学习有帮助,而不仅仅是快速查找。

解释层级

并非每个人都需要相同的深度。Quill 提供 5 个层级,只需一次点击即可切换:

层级你会得到的内容
ELI5简单的词汇和类比。例如:“WebSocket 就像一次电话通话,而不是寄信。”
ELI15使用真实术语,语言清晰。适合中级学习者。
Pro权衡取舍、设计模式、何时使用、边缘情况。
Samples2‑3 个实用代码片段。
Resources下一步学习材料、官方文档、常见陷阱。

关键洞见: 你通常从 ELI5 开始,等概念“点通”后再深入。所有层级只需一次点击,使用起来自然流畅。

Drill‑down: the rabbit‑hole feature

这是我最常使用的部分。AI 会在解释中用双括号标记相关术语,Quill 会把它们转换成可点击的链接。

  • 点击 WebSocket 解释中的 “TCP” → 你会看到 TCP 的解释。
  • 再点击其中的 “packet” → 更深入。

面包屑路径会记录你所在的位置:

WebSocket > TCP > packet

点击任意面包屑即可返回。 这就像是为技术概念量身定制的个人维基百科,只是每篇文章都以你选择的层次编写。

你也可以直接选中解释中的任意文字,再次按下快捷键——无需使用括号。看到想要探索的术语?选中它,按下快捷键,深入了解。

架构(好奇者请看)

我在 Swift 中采用了 六边形架构(Ports & Adapters)

Domain/          — Models + Ports (AIServiceProtocol)
Infrastructure/ — AI backends, Accessibility API, Keychain
Presentation/   — FloatingPanel, Settings, MenuBar

可能有趣的几个技术决策

  • 非激活的 NSPanel
    浮动面板使用带有 .nonActivatingPanelNSPanel。这是关键技巧——如果窗口被激活(获得焦点),源应用会失去焦点,Accessibility API 就无法替换文本。大多数 macOS 浮动窗口教程都忽略了这一点。

  • Accessibility API,不能沙箱化。
    应用通过 AXUIElement 读取选中文本。这需要 Accessibility 权限,这意味着应用不能使用沙箱,也就无法上架 App Store。为了系统范围的功能,这个取舍是值得的。

  • 基于协议的 AI 后端。
    AIServiceProtocol 定义了端口。Gemini、Claude API 和 Claude CLI 是适配器。添加新后端(Ollama、本地 LLM 等)只需实现一个协议。领域层永远不知道具体使用的是哪个后端。

  • 多层 JSON 解析。
    AI 响应并不总是有效的 JSON。解析链为:Codable → 清理常见问题 → JSONSerialization → 正则提取 → 原始文本回退。一个大括号匹配深度追踪器能够比简单的 lastIndex(of: "}") 更好地处理截断的响应。

  • 通过 stdin 传递提示。
    Claude CLI 适配器将提示通过 stdin 传递,以避免它出现在 ps 输出中。虽是小事,却对安全性很重要。

整个项目约 3 000 行 Swift 代码,依赖三项库。无需 Xcode 项目——swift build 即可编译。

免费且开源

Quill 使用 MIT 许可证。默认使用 Google Gemini 的免费层,因此您可以在不支付任何费用的情况下开始使用它。如果您愿意,也支持 Claude。

Ways to contribute

  • New AI backends — Ollama、本地 LLM、其他提供商(只需实现 AIServiceProtocol)。
  • UI/UX — 浮动面板设计、Markdown 渲染、可访问性改进。
  • Localization — 解释会根据系统语言进行适配,但 UI 仅限英文。
  • Testing — 六边形架构使单元测试简洁,但覆盖率仍然不足。

更大的意义

我们正处于一个奇怪的时代,AI 让我们更高效,却可能让我们更少了解。代码能跑,但我们不一定明白原因。

我不认为答案是停止使用 AI。答案是搭建更好的桥梁,让“它能工作”和“我懂它”之间相连。Quill 是我尝试搭建的一个小桥梁。

如果你曾在不理解一半术语的情况下点头赞同 AI 生成的代码……不妨试试 Quill。

It — give it a try. And if you have ideas for making it better, PRs are open.
0 浏览
Back to Blog

相关文章

阅读更多 »