这个问题其实还挺典型的,软件工程越来越重要这个观点我很赞同
在以往的传统软件工程中,我们在写代码之前会先明确需求 -> 架构设计 -> 接口设计 -> 模块实现 ... 这样的流程
当下的 AI 虽然非常非常聪明了,但它无法知道它应该知道但你没告诉它的事(看起来像废话吗?其实不是)。比如这个项目的预期维护周期,是一个临时小工具,还是一个会持续迭代几年的大项目?项目需求是否会持续迭代,随着迭代可能的架构相对变化和不变的地方都有哪些?
这些问题,如果你不告诉 AI 的话,它一般会以最小可实现代码来实现,以免过度设计
我现在 Vibe Coding 的感觉是,有些东西是不能完全交给AI的(至少是和AI共同结对编程来明确),比如 整体架构、表结构、数据结构、接口设计 这些
当然我也有直接 /goal 的时候,这种情况还挺多,就是在一次性小项目或者一个原型项目的时候,我希望能尽快出来看看效果,而不是长期维护
如果这个小项目后续要变成长期维护项目了,我会新开一个项目,不留历史包袱,直接重写一个架构良好的新项目出来
“何时重构” 这个问题甚至有时候是一种感觉,一种品味。就像以前软件工程里说的 bad smell 一样,AI时代我们每个人都要锻炼这种敏锐度。但无论如何,我认为应该记住一点:重构,在任何时候都是软件生命周期中必不可少的一环