一个月没有 AI

AI 编码助手和代理式工具正在帮助开发者更快交付更多功能,但许多工程师也表示,当他们依赖模型生成大规模、复杂变更时,自己的技能、代码质量和架构控制感正在被侵蚀。评论者描述了短期速度与长期可维护性之间的权衡:臃肿的代码、更难的审查、脆弱的工作流以及不断退化的专业能力,和调试、生成样板代码、学习不熟悉技术栈方面的真实收益并存。新兴共识是:当 AI 被严格约束并良好集成到现有实践中时,它可以非常强大;但若放任使用——尤其是端到端功能实现——则有可能把代码库变成连其名义上的所有者也不再完全理解的、晦涩而脆弱的系统。

AI 在编码中的使用范围

  • 有些人把它描述为接近完全的“vibe-coding”:几个月里不手动输入或阅读代码;功能(例如 2FA、游戏、复杂应用)用自然语言指定,由代理端到端实现。
  • 另一些人则只在有限范围内使用 AI:样板代码、重构、单元测试、小脚本,或作为高级搜索/调试助手,同时保持核心实现手动完成。
  • 还有一部分开发者会刻意在新项目中避开 AI,以重新获得控制感并保持敏锐。

质量、安全性与验证

  • 批评者认为,盲目信任 AI 去实现安全敏感功能(如 2FA)是不负责任的;即使“网络安全模型”很擅长渗透测试,你仍然要为结果负责。
  • 几位人士表示,他们审查过 AI 生成的系统,并发现了细微但严重的 bug(异步竞态条件、缺少背压、静默抑制错误)。
  • 建议的缓解方式包括:更强的静态分析、更丰富的类型系统、形式化验证,以及把测试只当作证明的一层。

生产力、WIP 与复杂度

  • 一些团队声称交付速度提升了一个数量级,并迅速交付了长期拖延的功能。
  • 另一些团队发现,代理会生成巨大的 PR 和文档墙,造成审查瓶颈,并鼓励空泛表述。
  • 某团队的“重度使用代理”实验导致 WIP 很高、集成停滞、利益相关者不满;他们最终回退到严格的 WIP 限制和更多的人类协作。
  • 评论者强调,AI 往往会增加复杂性,除非对其进行严格约束。

技能退化与抽象化

  • 很多人表示,他们感觉自己的实现能力退化得很快;短暂的“无 AI”时段会令人焦虑,但也会带来安心感。
  • 有些人把这看作自然的抽象迁移(就像从汇编语言转向高级语言);另一些人则坚持认为,不主动编码就无法进行良好的设计。

AI 何时表现良好

  • 通过关联日志、代码和奇怪的边缘情况来调试复杂的生产问题。
  • 比起如今被 SEO 垃圾充斥的网页搜索,更快地学习不熟悉的技术栈(例如 BLE、asyncio、MicroPython)。
  • 生成单元测试、小工具和脚手架,而此时代码质量和长期可维护性没那么重要。

代理式开发与控制丧失

  • 代理群体会诱使人们多任务并推迟审查;原本 20 分钟就能手写完成的任务,会变成持续数天的审查工作。
  • 有些人承认,他们已经不再完全理解一大块 AI 编写的代码库在做什么,而是依赖端到端测试和“duck tests”(看起来是否能工作?)。

写作与非代码用途

  • 用 LLM 进行写书实验会快速产出初稿,但风格普通、逻辑不一致、措辞陈词滥调,而且往往需要数月清理——通常并不值得。
  • 几位人士表示,模型在代码方面更好了,但在长篇写作上却变差了,或者更平淡了。

模型行为与工具差异

  • 体验差异非常大:有些人认为前沿模型“比大多数开发者更好”;另一些人则遇到幻觉、错误的文件使用、计数错误和虚构变量。
  • 质量在很大程度上取决于模型版本、提供商和集成方式(聊天 vs 带工具的 IDE/代理);有人怀疑存在静默降级或量化处理,另一些人则对此表示异议。

文化态度与类比

  • 类比从“AI 像可卡因/老虎机”到“AI 像自动驾驶仪或 CNC 机床”不等;有些人看到的是道德恐慌,另一些人则认为确实存在类似成瘾的过度使用。
  • “不用就会被甩在后面”的拥护者与担心垃圾代码、依赖性和长期可维护性的人之间,明显存在两极分化。