AI 开发新现实:用文字代替代码
The AI Situation in Software Development
在软件开发的 AI 时代,实施时间看似消失,实则转移到了系统设计和前期规划上。面对 LLM 的上下文窗口限制,我们要么事无巨细地提供细节,要么只给高层指令,但最稳妥的方式往往是折中:解释难点并投喂示例。无论是处理用户认证这类常见模式,还是应对全新的复杂问题,都需要人工引导。随着代码库扩大,如何压缩信息、提升信噪比成为关键。归根结底,我们并没有停止实施工作,只是从编写代码变成了用文字进行实施。
实施时间已经消失,现在花费的时间转移到了前期系统设计、改变假设以及优化开发环境上。
HN 评论区
69- petilon
AI 的一个短板在于控制复杂度。如果你让它实现某个功能,它就会照做,却不会考虑这会给系统增加多少复杂度,也不会权衡其他方案。相反,一位经验丰富的工程师可能会判断该功能带来的收益与其增加的复杂度不成正比,从而决定不做。或者,他可能会做出一些巧妙的折中,在保留大部分功能的同时维持代码库的简洁。AI 在这类判断上很弱,它不会自发地保持架构上的克制。结果就是,代码可能会逐渐变得过于复杂,连 AI 自己都难以驾驭,最终陷入“打地鼠”的困境:任何改动都会导致其他地方出错。
- qprofyeh
面对区块链、微服务等过去的工程趋势,你可以选择不随大流。但编码代理(coding agents)这一趋势不同,它正在改变软件工程的根本肌理(抱歉用了 Claude 式的说法),无论好坏。我敢肯定,我们再也回不到主要靠写代码来编程的时代了。
- usremane
用 AI 编程现在引入了“功能多巴胺”。这有时会导致系统更容易出现故障,因为 AI 可能遗漏了边界情况。
此外,我感受到工作满意度的下降,也更容易拖延,因为我知道代理能比我快 10 倍地完成工作。我个人对这种转变感到担忧,害怕自己随着时间的推移知识越来越少,或者因为代理能搞定一切而觉得没必要跟进新的技术栈。
- sagabai
关于“用文字实现”这一点:我不认为英语是种好的编程语言。
它没有类型安全,不是面向对象的,也不是函数式的。缺乏高亮语法或导航“词库”的优良工具,无法快速失败。它没有测试,留给机器或其他人类解读的空间太大。
很多时候,用 Java 表达我的想法反而更容易,而 Java 讽刺地被称为一种“啰嗦”的语言。但它的啰嗦程度远不及英语。
- livvy
而且你立刻就把知识产权拱手让人,任其使用。如果你有值得构建的想法,第四个选项就是:别用大语言模型,直接动手把它做出来。