(1)设计是一个险恶的问题
险恶的问题就是那种通过解决或者部分的解决才能被明确的问题。这个看似矛盾的定义其实是在暗示说,你必须首先把这个问题“解决”一遍以便能够明确地定义它,然后再次解决问题,从而形成一个可行的方案。
(2)设计是一个了无章法的过程(即使它能得出清爽的结果)
软件设计的成果应该是阻止良好、干净利落的,然后形成这个设计的过程却并非如此清爽。
说设计了无章法,是因为在此过程中你会采取很多错误的步骤,多次误入歧途——你会犯很多的错误。事实上,犯错正是设计的关键所在——在设计阶段犯错并加以改正,其代价要比在编码后才发现同样的错误并彻底修改低的多,说设计了无章法,还因为优、劣设计之间的差异往往非常微妙。说了无章法还因为你很难判断设计何时“足够好”了。
(3)设计就是确定取舍和调整顺序的过程
在现实世界里,设计者工作的一个关键内容是去衡量彼此冲突的各项设计特性,并尽力在其中寻求平衡。
(4)设计受到诸多限制
设计的要点,一部分是在创造可能发生的事情,而另一部分又是在限制可能发生的事情。
(5)设计是不确定的
如果让三个人去设计一套同样的程序,他们很可能会做出三套既然不同的设计,而每套设计都很不错。
(6)设计是一个启发式过程
正因为设计过程充满了不确定性,因此设计技术也就趋于具有探索性——“经验法则”或者“试试没准能行的办法”——而不是保证能产生预期结果的可重复过程。
(7)设计是自然而然形成的
把设计的综合特性归纳起来,我们可以说设计是“自然而然形成的”。设计不是在谁的头脑中直接跳出来的。他是在不断的设计评估、非正式讨论、写试验代码以及修改试验代码中演化和完善的。
posted on 2007-09-19 14:32
探丫头 阅读(782)
评论(0) 编辑 收藏 引用 所属分类:
《代码大全》读书笔记