知识卡片
关键架构组件不必在项目最初就选定,可以留到"最后负责时刻"再引入
内容
Creation Center项目里,Spring是在第一个发行版进行到三分之一时才加入的,Hibernate是两三次迭代之后才引入,DVD刻录软件甚至是初始开发快结束时才采购——这些后来都成为架构核心的组件,一开始却完全没有出现在设计里。团队采用的原则是”最后负责时刻”:在不做决定的代价还没有超过实现这个特性的代价之前,先不做决定,把时间花在探索”这个应用到底应该长成什么样”上,而不是提前套用某个框架的世界观来削足适履。这提示一个和常见直觉相反的判断:架构设计不需要在项目起点就把所有大件想清楚,推迟一个技术选型的决定本身也是一种设计能力,前提是你能识别出”现在还不做决定”和”以后会来不及”之间的那条界线在哪里。
参考来源
《架构之美》第4章《记忆留存》