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