奧卡姆剃刀原則:如無必要,勿增實體。

近來思考解決方案,系統設計,在腦海里反思最多的就是這條原則。這一原則,初看來是一句廢話,每個人都知道說,要簡單,不要複雜。很多時候,去跟一個沒經驗的毛頭小子談論,他也會跟你說,簡單就好簡單就好,甚至還會搬出喬布斯來給你說教。而,事實是這些把成天把簡單掛在嘴上的人,大多數是沒經歷過深刻的思考,只為了給自己的思維懶惰找一個藉口而已。

世界是複雜的,但當然並非是某個特定的實體或者活動是複雜的,而是這些表面上簡單的活動或實體,每一個都有滿足其運行需要的特定要求,把這些簡單的活動和實體聯合在一起,結果就會是複雜和令人困惑的:整體大於各部分的總和。而那些看著單個活動、實體,看不到它們相互之間交合,閉著眼說“簡單就好”的完全是掩耳盜鈴,自欺欺人。

既然事實如此複雜,那是不是奧卡姆剃刀是一條無用的原則呢?當然不是。在我看來,這條原則的理解上,太多人講注意力放在了“必要”上,而沒看到“實體”。“必要”是一個抽象的意願性描述詞,大多數的時候,因為能契合當下的心理,所以容易吸引多數人的注意,這是自然的。但是深刻思考的人,會將注意力放在“實體”一詞上,會去想什麼是“實體”?“實體”在當下的情況下,是一個什麼樣的定義?缺乏基礎的概念定義,一般是我們爭論和錯誤的罪首。

如何定義實體,其實就是如何定義事物的邊界,包括兩點:事物運行的特定需求、事物產生的必然效果。一個準確的實體定義,應包括一個盡量小的特定需求集,同時產生一個可以量化的效果。這就好比如計算機程序,如果我們需要能確認這個程序是健壯的,最佳的辦法就是能將他定義成一個最小的輸入條件下滿足一個準確而可量化的結果輸出。