设计实践
1、你已经做过多次迭代,并且从众多尝试结果中选择最佳的一种,而不是简单选择第一次尝试的结果吗?
2、你尝试用多种方案来分解系统,以确定最佳方案吗?
3、你同时用自下而上和自上而下的方法来解决设计问题吗?
4、为了解决某些特定的问题,你对系统中的风险部分或者不熟悉的部分创建过原型、写出数量最少的可抛弃的代码吗?
5、你的设计方案被其他人检查了吗(无论正式与否)?
6、你一直在展开设计,直到实施细节跃然纸上了吗?
7、你用某种适当的技术——比如说Wiki、电子邮件、挂图、数据照片、UML、CRC卡或者在代码写注释——来保留设计成果吗?
设计目标
1、你的设计是否充分地处理了由系统架构层定义出并且推迟确定的事项?
2、你的设计被划分为层次吗?
3、你对把这一程序分解成为子程序、包和类的方式感到满意吗?
4、你把对这个类分解成为子程序的方法感到满意吗?
5、类与类之间的交互关系是否已设计为最小化了?
6、类和子程序是否被害人设计为能够在其他的系统中重用?
7、程序是不是易于维护?
8、设计是否精简?设计出来的每一部分都绝对必要吗?
9、设计中是否采用了标准的技术?是否避免使用怪异且难以理解的元素?
10、整体而言,你的设计是否有助于最小化偶然性的和本质性的复杂吗?