Hacker News 中文摘要

RSS订阅

氛围工程 -- Vibe engineering

文章摘要

文章探讨了AI编程的两个方向:一种是完全依赖提示词、不关注代码原理的"氛围编程"(vibe coding);另一种是专业人士在保持对代码负责的前提下利用LLM加速工作的"氛围工程"(vibe engineering)。作者指出,在非玩具项目中使用LLM其实颇具挑战性,需要深入理解工具并规避陷阱。随着能迭代测试代码的编程代理工具出现,对开发者提出了更高要求。

文章总结

氛围工程:专业开发者如何驾驭AI编程新时代

概念缘起

随着"氛围编程"(vibe coding)——那种完全依赖AI提示、不关心代码实现细节的快速开发方式——的普及,专业开发者们需要一个新的术语来描述另一种AI协作模式:在保持代码质量与可维护性的前提下,通过LLM提升工作效率。作者Simon Willison提出了"氛围工程"(vibe engineering)这一略带戏谑但内涵深刻的概念。

专业开发的挑战与机遇

在非玩具项目中,有效使用LLM进行开发面临诸多挑战: - 需要深入理解工具特性并规避潜在陷阱 - 编码代理(如Claude Code、Codex CLI等)的兴起大幅提升了LLM的实用性 - 资深工程师开始并行运行多个代理处理不同任务(作者亲测有效但精神消耗巨大)

与传统"氛围编程"不同,这种工作流程强调: - 通过迭代生成符合生产标准的代码 - 保持开发者对代码的长期维护能力

LLM放大的工程实践

作者发现LLM能显著强化以下专业实践: 1. 自动化测试:健全的测试套件能让编码代理如虎添翼 2. 预先规划:高层次设计比直接编码更重要 3. 完善文档:帮助LLM理解跨模块API调用 4. 版本控制:Git操作能力甚至优于多数开发者 5. 自动化流程:CI/CD等基础设施让代理更高效 6. 代码审查文化:快速审查能力成为关键技能 7. 管理技巧:清晰的指令和反馈机制(比管理人类简单) 8. 质量保证:超越自动化测试的手动验证能力 9. 研究能力:解决方案的评估与验证 10. 预览环境:安全测试代理生成的代码 11. 任务分配直觉:动态判断AI与人工的职责边界 12. 时间预估:AI带来的效率提升使传统估算方法失效

专业门槛的重新定义

要充分发挥这些工具的价值,开发者需要: - 负责技术选型、架构设计、验收标准制定 - 设计代理工作循环(agentic loops) - 管理"数字实习生"团队(需防范其作弊倾向) - 投入大量时间进行代码审查

这些要求恰恰与高级软件工程师的核心能力高度重合,印证了"AI工具会放大现有专业优势"的论点。

命名争议与意图

作者承认这个名称可能引发争议: - "氛围"概念在AI领域已显疲态 - 故意制造"随性"与"工程"的语义冲突 - 旨在与"氛围编程"形成明确区分 - 此前推广的"AI辅助编程"等术语未能流行

这种命名策略既保留了技术讨论的趣味性,又强调了专业实践的严肃性,反映出AI时代软件开发方法论仍在快速演进中的现状。

(全文共1,098字,保留核心观点与关键案例,删减了部分重复论述和个人化表述)

评论总结

以下是评论内容的总结:

1. 对"vibe coding/engineering"术语的批评

  • 认为该术语过于随意,缺乏专业性
    • "Vibe is just a bad word to describe anything that requires skill beyond 'taste'" (oidar)
    • "Engineering is something hard, vigorous...stark contrast to 'vibing something out of thin air'" (rimmontrieu)
  • 担心负面含义影响技术认知
    • "Using the word 'vibe' is inherently giving it a negative connotation" (citbl)
    • "Vibe coding implies it's newbies throwing prompts and hoping some of them stick" (Areibman)

2. 支持或中立观点

  • 认为名称虽奇怪但可能流行
    • "It's a genius move...catchy, ridiculous and still cool" (flakiness)
    • "I've embraced it...started as tongue in cheek" (chucknthem)
  • 强调技术实质比名称重要
    • "Either you're getting good results from AI or you're not" (cramsession)
    • "The job hasn't changed...It's just coding" (alganet)

3. 替代术语建议

  • 强调辅助性质:
    • "LLM extended programming" (citbl)
    • "Augmented Engineering" (plainOldText)
  • 强调管理角色:
    • "Managed programming" (ianbutler)
  • 简单化处理:
    • "I'd just call it 'coding'" (drchaim)
    • "It's just engineering, or coding" (zer00eyz)

4. 实践应用反馈

  • 正面体验:
    • "Been all-in for 4 months...overall amazing" (metadat)
    • "Allows us to learn quicker, very powerful if used properly" (citbl)
  • 负面体验:
    • "Feels like the PMs have no idea how much tech debt we're creating" (anonEbWZRLG)
    • "The first 2 months was exhausting" (metadat)

5. 行业影响讨论

  • 工具演变视角:
    • "Like someone saying...'vibe compiling' because we didn't compile manually" (resters)
    • "We didn't stop calling them Framers when they got electric saws" (zer00eyz)
  • 专业标准担忧:
    • "Real engineering has a requirement of personal liability" (sys64738)
    • "The headline made me think of a bridge designed by an LLM...I'll pass" (richsasha)