簡單才好
今天吃午飯的時候,閑聊說起SNMP協議的設計過于簡單(簡陋?),但就是這樣簡陋的東西,基本上成了網管協議的事實標準。記得在大學通信課上了解的幾種主要的組網方式,現在,除了公認效率很低的以太網遍地開花,有幾個人見過token ring,apple talk網?為什么呀,簡單唄。
我記得開始做軟件的時候,有幾年時間,看了些軟件工程、軟件開發思想方面的書,半瓶子醋的很厲害,寫東西的時候,腦袋里充斥了兩個字:抽象。拿到需求,先自己對需求進行放大,然后把相關需求拿到一起找共性,然后開始設計通用機制,或者抽取公用API,然后使得一系列需求能夠通過“靈活的配置”在一套代碼上實現。實際上,基本上沒有用戶會使用這種配置,因為用戶也是喜歡簡單的人,最終只能是我們的實施人員或者開發人員來完成配置工作,但,實施人員與開發人員,永遠不能在設計的“精巧”性上達成共識。
后來,當我和幾個團隊成員意識到這種“無原則抽象”的問題之后,開始有意識的控制這種思路,對于有些需求,就事論事解決就好。
之后,我又進入另外一個誤區,那就是對代碼質量的過度關注。源于對優雅代碼的渴求,讓我像患上精神潔癖一樣,不停的向別人灌輸這種理念,總希望所有人的代碼都站在同一個水平線上。基于同樣的原理,寫出高質量的代碼并不是一件簡單的事情,所以,并非所有人都能達到所謂的“要求”,而當他們達到要求的時候,又有一個而很重要的成本問題擺在眼前。
微博比博客火,網頁游戲比大型網游火,而偷菜又比網頁游戲火,簡單最好,簡單的東西,才能夠被更多的人接受。
實際上,真正成功的簡單,多數是來自于復雜的思考,或者說經歷過復雜的階段再變的簡單,就好像有了淘寶這樣無所不能得購物網站,人們發現購物過程變的越來越復雜,就出現了像groupon和美團這樣的一天只賣一種商品的購物網站,從簡入繁,再從繁化簡,都需要功力啊。
當我覺得越來越多的東西并不像當初想象的那么重要時,真不知道是一種進步還是一種退化。