(1)設計是一個險惡的問題
險惡的問題就是那種通過解決或者部分的解決才能被明確的問題。這個看似矛盾的定義其實是在暗示說,你必須首先把這個問題“解決”一遍以便能夠明確地定義它,然后再次解決問題,從而形成一個可行的方案。
(2)設計是一個了無章法的過程(即使它能得出清爽的結果)
軟件設計的成果應該是阻止良好、干凈利落的,然后形成這個設計的過程卻并非如此清爽。
說設計了無章法,是因為在此過程中你會采取很多錯誤的步驟,多次誤入歧途——你會犯很多的錯誤。事實上,犯錯正是設計的關鍵所在——在設計階段犯錯并加以改正,其代價要比在編碼后才發現同樣的錯誤并徹底修改低的多,說設計了無章法,還因為優、劣設計之間的差異往往非常微妙。說了無章法還因為你很難判斷設計何時“足夠好”了。
(3)設計就是確定取舍和調整順序的過程
在現實世界里,設計者工作的一個關鍵內容是去衡量彼此沖突的各項設計特性,并盡力在其中尋求平衡。
(4)設計受到諸多限制
設計的要點,一部分是在創造可能發生的事情,而另一部分又是在限制可能發生的事情。
(5)設計是不確定的
如果讓三個人去設計一套同樣的程序,他們很可能會做出三套既然不同的設計,而每套設計都很不錯。
(6)設計是一個啟發式過程
正因為設計過程充滿了不確定性,因此設計技術也就趨于具有探索性——“經驗法則”或者“試試沒準能行的辦法”——而不是保證能產生預期結果的可重復過程。
(7)設計是自然而然形成的
把設計的綜合特性歸納起來,我們可以說設計是“自然而然形成的”。設計不是在誰的頭腦中直接跳出來的。他是在不斷的設計評估、非正式討論、寫試驗代碼以及修改試驗代碼中演化和完善的。
posted on 2007-09-19 14:32
探丫頭 閱讀(792)
評論(0) 編輯 收藏 引用 所屬分類:
《代碼大全》讀書筆記