Anti-Pattern:追求泛用性而不計所造成的overhead代價
我愛瑞士刀,這真是個很棒的發明。有太多種工具我們不常用,不過需要時沒有它還真麻煩。在家中可以準備一個工具箱隨時應急,但是出門在外總不好隨時拎著工具箱。當年去歐洲讀書,父親送我一副瑞士刀。剛開始住宿還沒安定下來的期間,從切水果到鎖緊眼鏡螺絲,一切都靠它。
軟體設計,常在簡單性與泛用性之間做掙扎。一套Library或是Framework,因為簡單好用,使用的開發人員就漸漸增加。這套工具要適用的不同應用情境與軟硬體環境就越來越多,需要逐漸調整,做些擴充以及一般化,簡單的工具就會變複雜一些。持續演化與累積,最後複雜度會變得很可觀。這個複雜度最常反應在設定檔,或是物件的起始方法,以及函式的呼叫方法。