我們在分析設(shè)計一個方案時,是要面面俱到,使其從功能到展現(xiàn),從需求到擴展,等方方面面萬能嗎?
即使不考慮是否存在這樣一個方案,也不考慮這個最終方案實現(xiàn)所需的成本,單就算是弄出來了,我們會不會最終發(fā)現(xiàn)這已經(jīng)背離了我們需求的初衷,這不是我們需要的?
是的。這是不需要的,也是不現(xiàn)實的,更是不必要的!
《C陷阱與缺陷》中第0章有一個很有意思的習(xí)題,剛開始我還不理解此題的用意,至少覺得放在這樣一本技術(shù)書籍中是多少有些“莫名其妙”的,但是后來發(fā)現(xiàn)這是對的。作者作為一個資深的技術(shù)專家,用自己幾十年的經(jīng)驗研究了程序設(shè)計中的方方面面,在分享自己的經(jīng)驗時,在最前面就用此題來告訴后人一個意識形態(tài)的東西,而且很明顯他認(rèn)為這在程序設(shè)計中也是需要首要考慮的。
這個題目是這樣的:“在烹飪時你是否失手用菜刀切傷過自己的手?怎樣改進菜刀使得使用更安全?你是否愿意使用這樣一把經(jīng)過改良的菜刀?”
對以上這個題目,聰明的您是如何考慮的呢?好好想一下,下面我就給出作者的真知灼見了哦~
Answer:“我們很容易想到讓一個工具更安全,代價是原來簡單的工具現(xiàn)在要變得復(fù)雜一些。食品加工機一般有連鎖裝置,保護使用者不讓手指受傷。但是菜刀卻不同,給這樣一個簡單、靈活的工具附加保護手指避免受傷的裝置,只能讓它失去簡單靈活的特點。實際上,這樣做最后得到的更像一臺食品加工機,而不是一把菜刀。”
好了,經(jīng)典名言誕生了:“使其難于做‘傻事’常常會使其難于做‘聰明事’,正所謂‘弄巧成拙’。”!
不愧是C語言的大師!我想C語言的哲學(xué)應(yīng)該也就是這樣。C語言經(jīng)歷這么多年,其初始的設(shè)計思想始終如一:程序員了解他們在做什么,惟一的要求是程序員要明確地表達他們的意圖。
這是放之四海皆準(zhǔn)的哲學(xué):簡單就是美!