日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

软件设计的真谛

發(fā)布時(shí)間:2023/12/13 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 软件设计的真谛 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
假設(shè)我們身邊的一切都是用制造材料加以描述的:“空調(diào)”不是“空調(diào)”,而是“由金屬和塑料做成的物體”;“書”不是“書”,而是“由纖維和墨做成的物體”。溝通時(shí)我們也不用“空調(diào)”和“書”這樣的詞匯,而是“金屬和塑料做成的物體”和“纖維和墨做成的物體”。可以想象大腦在面對(duì)這些信息時(shí)會(huì)讓我們覺得多么的痛苦,顯然這樣的事情在現(xiàn)實(shí)中很少發(fā)生,因?yàn)槲覀兊拇竽X具備很強(qiáng)的抽象能力 ,會(huì)通過抽象塑造“空調(diào)”和“書”這樣的概念提升溝通效率和維持思維次序。我們學(xué)習(xí)知識(shí)的過程其實(shí)就是不斷精確掌握(抽象)概念和建立思維次序的過程。

對(duì)于程序員來說除了生活在現(xiàn)實(shí)世界,還“身處”由程序所構(gòu)建的虛擬世界中。程序設(shè)計(jì)其實(shí)是在個(gè)人頭腦中構(gòu)建虛擬世界的過程,而維護(hù)代碼則首先是通過程序所表達(dá)的虛擬世界與其他程序員間接溝通的過程。為了提高程序員間的間接溝通效率,我們一定希望虛擬世界也象現(xiàn)實(shí)世界那樣充滿著象“空調(diào)”和“書”這樣的概念,也希望程序員們?cè)谔摂M世界所使用的概念相似。由于現(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ù)雜度,但也簡(jiǎn)化了所需解決問題的復(fù)雜度。顯然,好的設(shè)計(jì)應(yīng)是其所簡(jiǎn)化的復(fù)雜度要大于因?yàn)槌橄笏鶆?chuàng)造的復(fù)雜度。

總結(jié)

以上是生活随笔為你收集整理的软件设计的真谛的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。