知识卡片

敏捷开发不等于不做设计,YAGNI反对的是不必要的工作,不是设计本身

专业/工作

内容

“设计之城”团队采用极限编程,旁观者曾断言”直接写代码不做设计”必然重蹈”混乱大都市”的覆辙,但这是对XP的常见误解——YAGNI(你不会需要它)原则真正反对的是提前实现用不上的功能,而不是反对前期设计本身:如果确实需要前端设计,XP同样要求你做,只是提倡用快速原型(spike)尽早验证设计是否成立。”设计之城”的实际做法是:先画出核心功能领域的简单分层草图(只有几个大方块,不深入细节),再把额外的设计精力集中投入到真正的系统核心(音频管道)上。这提示一个分配设计精力的原则:不是”要不要设计”,而是”把有限的设计深度,优先投入到系统里最核心、改动代价最高的那部分”。

参考来源

《架构之美》第2章《两个系统的故事:现代软件神话》