设计其实是一种病
軟件設計的學問很深,學一點可以開拓思路,學透了可以成為專家,而學得半透不透的時候,感覺就會像一種病,一種“設計病”。
得了“設計病”的程序員干活很慢。你看那些剛畢業的年輕同志,拿到任務后立刻打開開發工具,又是點又是敲的,一會兒就能看到界面,程序功能一個一個地不斷被實現,速度快的很。得了“設計病”的程序員就不能這樣。拿到任務后左思右想,總覺得這樣也行,那樣也不錯,一個小程序他能想出幾百種方法來,光權衡就得半天。寫程序通常也不從界面開始做,悶著頭在鍵盤上狂按了好久,程序還是不能運行,搞得項目經理直冒汗。
“設計病”的程序員寫的程序,寫著費勁,看起來勞神。通常別人寫一個函數的,“設計病”人非要寫成好幾個。使用面向對象開發語言的更是如此。“設計病”人寫的程序里,類特別多。人家用兩三個類就可以實現的功能,“設計病”人要用五六個類,甚至更多。還弄一些個類,一堆虛函數,一個成員變量也沒有。稍大一點的程序就有幾十上百的類擠在一起,關系也很復雜,一般人還真看不懂。
和“設計病”人討論問題也不容易。通常大家都在談這是個什么功能,某個功能怎么樣才能實現,而“設計病”人常常不討論這個,嘴上總掛著什么“復用”、“耦合”、“模式”等一類莫名其妙的詞匯。就算“設計病”人在討論功能的時候,聽起來也和程序的實際功能相差很遠。比如當大家在討論使用多線程實現的時候,他就討論線程管理類的接口;當大家討論發送數據要緩沖的時候,“設計病”人卻在研究如何實現一個快速的數據隊列。
事實上“設計病”人自己也很痛苦。他們對現有的方案總是不滿意,甚至昨天他自己寫的方案,今天再看時也覺得不滿。自己費盡心機設計出來的可復用的類,卻從來都沒有被復用過。自己好不容易設計出的松耦合的模塊結構,在增加新功能時,卻不得不在很多層次的類上做修改。
“設計病”也很難治好。“設計病”人總是不由自主地做設計,不愿意用直接的方式實現程序,總想把程序一點點剝開、分解。怎么勸都不會有用。他們相信遲早有一天自己的設計會發揮作用。
“設計病”人寫出過很多爛程序。要么設計失敗,考慮不周,程序結構有問題,要么過度設計,簡單的功能,大堆的類,還不如不做設計。
不由自主地去設計,努力去寫出爛程序,不是一種病又是什么?
如果您覺得也得了“設計病”了,也別太著急,辦法有一個,就是繼續“病”下去,努力做設計。直到有一天,能平衡完美和實用了,這病也就好了。
總結
- 上一篇: 从实验室到山寨,技术发展的普遍道路
- 下一篇: Mysql中文乱码问题解决