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