[導(dǎo)入]Less is More and More is Less
Posted on 2005-12-12 22:46 canonical 閱讀(683) 評(píng)論(1) 編輯 收藏 所屬分類: 設(shè)計(jì)理論 據(jù)說(shuō)"Less is
more"是1961年寶姿品牌提出的設(shè)計(jì)理念,它開創(chuàng)了簡(jiǎn)約優(yōu)雅的時(shí)尚風(fēng)格。Unix系統(tǒng)的設(shè)計(jì)可以說(shuō)也是這一設(shè)計(jì)理念的最佳體現(xiàn)。使用Unix工具,
讀Unix系統(tǒng)源碼,我們時(shí)時(shí)都能體會(huì)到一種簡(jiǎn)約之美。而Microsoft發(fā)放出來(lái)的源代碼一般都相當(dāng)冗長(zhǎng),變量名也長(zhǎng),這一度讓我很反感。為了簡(jiǎn)化C
++中的COM編程,我不得不專門寫了一個(gè)封裝框架。
簡(jiǎn)約并不簡(jiǎn)單。例如,注釋一般都是期望能夠幫助理解的,應(yīng)該是有益的。但注釋太多就會(huì)干擾對(duì)程序的理解。這里關(guān)鍵就是能否提供有效的信息量。利用這一點(diǎn),我們換一個(gè)角度看,多未必意味著復(fù)雜。例如,這樣的一個(gè)函數(shù)調(diào)用
StupidFunc(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8)
顯然不如
BetterFunc(userName:arg1, userMail:arg2, ...)
非常緊湊的調(diào)用可能需要極端強(qiáng)度的注意力和思考力的投入,即要求我們付出的更多才能夠理解。Perl這樣的腳本是可以緊致到變態(tài)的一種語(yǔ)言。 Microsoft的自動(dòng)化組件支持命名參數(shù),則大大簡(jiǎn)化了OLE編程。與此類似,xml動(dòng)態(tài)腳本中的函數(shù)調(diào)用也是比較容易理解的,甚至比java函數(shù)調(diào) 用更容易理解。
<sendMail from="a@b.com" to="c@d.com" text="hello" />
使用witrix平臺(tái)中的SQL類寫起SQL語(yǔ)句來(lái)雖然語(yǔ)句很長(zhǎng),但參數(shù)意義明顯,并不容易出錯(cuò)。
很多時(shí)候都存在著某個(gè)最適尺度,偏離了這個(gè)尺度,我們就會(huì)遇上各種各樣的"More"。不要畫蛇添足,也不要削足適履。
簡(jiǎn)約并不簡(jiǎn)單。例如,注釋一般都是期望能夠幫助理解的,應(yīng)該是有益的。但注釋太多就會(huì)干擾對(duì)程序的理解。這里關(guān)鍵就是能否提供有效的信息量。利用這一點(diǎn),我們換一個(gè)角度看,多未必意味著復(fù)雜。例如,這樣的一個(gè)函數(shù)調(diào)用
StupidFunc(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8)
顯然不如
BetterFunc(userName:arg1, userMail:arg2, ...)
非常緊湊的調(diào)用可能需要極端強(qiáng)度的注意力和思考力的投入,即要求我們付出的更多才能夠理解。Perl這樣的腳本是可以緊致到變態(tài)的一種語(yǔ)言。 Microsoft的自動(dòng)化組件支持命名參數(shù),則大大簡(jiǎn)化了OLE編程。與此類似,xml動(dòng)態(tài)腳本中的函數(shù)調(diào)用也是比較容易理解的,甚至比java函數(shù)調(diào) 用更容易理解。
<sendMail from="a@b.com" to="c@d.com" text="hello" />
使用witrix平臺(tái)中的SQL類寫起SQL語(yǔ)句來(lái)雖然語(yǔ)句很長(zhǎng),但參數(shù)意義明顯,并不容易出錯(cuò)。
很多時(shí)候都存在著某個(gè)最適尺度,偏離了這個(gè)尺度,我們就會(huì)遇上各種各樣的"More"。不要畫蛇添足,也不要削足適履。