有一项XP原则确实提高了“设计之城”的架构品质,这就是YAGNI(如果你不是马上需要,就不要去做)。这促使我们在早期只设计了重要的部分,将所有余下的决定推迟,直到我们对实际的需求有了更清晰的理解并知道如何放到系统种最好时,再做出这些决定。
- 当你还不理解问题时就开始设计,这是一件糟糕的事。YGANI迫使你等待,直到你知道真正的问题时什么,它应该怎样由设计来体现为止。这消除了猜测的工作,确保设计是正确的
- 当你开始创建软件设计时就加入所有可能需要的东西时危险的。你的大部分设计工作会变成无用功,得到的只是额外的负担,你不得不在软件的整个变更生命周期种支持这些设计。它一开始就增加了成本,而且在项目的生命周期种不断增加成本。
保持品质
- 结对编程
- 对没有结对编程的工作进行代码/设计复审
- 对每一段代码进行单元测试
这些过程确保了系统种从未加入不正确的,不合适的变更。所有不符合软件设计的内容都被拒之门外。这可能听起来有点过于严厉,但这些是开发者们坚信的过程
这种信念凸显了一个重要的态度:开发者们相信设计,认为设计对项目相当重要。他们用于设计,对设计负责
管理技术债务
“设计之城”的开发是相当注重实效的。随着dead line期限的临近,一些不太重要的功能被砍掉,让产品能够准时推出。小的代码“瑕疵”或者设计问题允许存在代码集中,要么是为了让功能快一点儿实现,要么是为了在接近发布时避免高风险的改动。