假設(shè)我們身邊的一切都是用制造材料加以描述的:“空調(diào)”不是“空調(diào)”,而是“由金屬和塑料做成的物體”;“書”不是“書”,而是“由纖維和墨做成的物體”。溝通時(shí)我們也不用“空調(diào)”和“書”這樣的詞匯,而是“金屬和塑料做成的物體”和“纖維和墨做成的物體”。可以想象大腦在面對這些信息時(shí)會(huì)讓我們覺得多么的痛苦,顯然這樣的事情在現(xiàn)實(shí)中很少發(fā)生,因?yàn)槲覀兊拇竽X具備很強(qiáng)的抽象能力 ,會(huì)通過抽象塑造“空調(diào)”和“書”這樣的概念提升溝通效率和維持思維次序。我們學(xué)習(xí)知識(shí)的過程其實(shí)就是不斷精確掌握(抽象)概念和建立思維次序的過程。
對于程序員來說除了生活在現(xiàn)實(shí)世界,還“身處”由程序所構(gòu)建的虛擬世界中。程序設(shè)計(jì)其實(shí)是在個(gè)人頭腦中構(gòu)建虛擬世界的過程,而維護(hù)代碼則首先是通過程序所表達(dá)的虛擬世界與其他程序員間接溝通的過程。為了提高程序員間的間接溝通效率,我們一定希望虛擬世界也象現(xiàn)實(shí)世界那樣充滿著象“空調(diào)”和“書”這樣的概念,也希望程序員們在虛擬世界所使用的概念相似。由于現(xiàn)實(shí)世界中程序員們已掌握了大量的相似概念,如果能將這些概念帶入虛擬世界,那將顯著提升程序員間通過虛擬世界(即程序)溝通的效率。因此,作者認(rèn)為軟件設(shè)計(jì)的真諦,是通過程序構(gòu)建與現(xiàn)實(shí)世界相似的虛擬世界。通常,設(shè)計(jì)質(zhì)量越高就越能在虛擬世界中找到現(xiàn)實(shí)世界的影子。
軟件設(shè)計(jì)活動(dòng)的關(guān)鍵又是什么呢?還是讓我們回到現(xiàn)實(shí)世界去尋找答案吧!
在遠(yuǎn)古時(shí)期,人類只能通過徒步從一個(gè)地方到達(dá)另一個(gè)地方。后來發(fā)現(xiàn)馬可以被馴服,通過馬車能更快地從一處到達(dá)另一處。再后來,人類逐步發(fā)明了自行車、汽車和飛機(jī),且每一次發(fā)明都使得交通效率得以大幅提高。在這里,馬車、自行車、汽車和飛機(jī)都共同地為了解決交通效率問題。很顯然,馬車、自行車、汽車和飛機(jī)都是不同的概念,人類通過抽象發(fā)明這些概念,并通過相互學(xué)習(xí)的方式使得大家掌握其含義。如果將焦點(diǎn)放在交通工具上,我們會(huì)發(fā)現(xiàn)交通效率越高則其概念越抽象,復(fù)雜度也越高。或者說,越是抽象的概念,其所隱藏的復(fù)雜度就越高。
從這個(gè)關(guān)于交通的例子中我們不難發(fā)現(xiàn),現(xiàn)實(shí)世界中我們是通過轉(zhuǎn)移復(fù)雜度的方式解決復(fù)雜問題的,且每一次不同的轉(zhuǎn)移都伴隨著抽象概念的建立,轉(zhuǎn)移的復(fù)雜度越多所建立的概念就越抽象。由于復(fù)雜度被轉(zhuǎn)移了后,使得一小部分人專注于被轉(zhuǎn)移的復(fù)雜度(比如制造飛機(jī)),而其他絕大部分人在享用復(fù)雜度被轉(zhuǎn)移所帶來好處的同時(shí)不用關(guān)心被轉(zhuǎn)移走的復(fù)雜度(乘飛機(jī)的人不用關(guān)心飛機(jī)的駕駛與制造)。同樣的事情也發(fā)生在軟件行業(yè)!不同的是軟件行業(yè)“制造”的不是汽車和飛機(jī),而是編程語言、數(shù)據(jù)庫、平臺(tái)和框架等。
不難發(fā)現(xiàn),軟件設(shè)計(jì)的關(guān)鍵活動(dòng)應(yīng)是抽象,通過抽象建立新的概念并將部分復(fù)雜度轉(zhuǎn)移到概念背后。盡管不斷的抽象增加了新概念的復(fù)雜度,但也簡化了所需解決問題的復(fù)雜度。顯然,好的設(shè)計(jì)應(yīng)是其簡化的復(fù)雜度要大于因?yàn)槌橄笏鶆?chuàng)造的復(fù)雜度。
Copyright@ 2011-2016 版權(quán)所有:大連千億科技有限公司 遼ICP備11013762-3號(hào) google網(wǎng)站地圖 百度網(wǎng)站地圖 網(wǎng)站地圖
公司地址:大連市沙河口區(qū)中山路692號(hào)辰熙星海國際2317 客服電話:0411-39943997 QQ:2088827823 37482752
法律聲明:未經(jīng)許可,任何模仿本站模板、轉(zhuǎn)載本站內(nèi)容等行為者,本站保留追究其法律責(zé)任的權(quán)利! 隱私權(quán)政策聲明