軟體開發中,我們經常會遇到各種令人抓狂的設計問題。有時候是趕進度的壓力讓我們妥協了設計品質;有時候是忽略了好的設計原則,結果掉進了各種反模式的坑裡。今天我們來繼續聊聊幾個常見的反模式。
寫死 Hard Code
直接將資料值或邏輯硬寫死在程式碼裡,當需求變更時,修改這些 Hard Code 變得十分麻煩,因為你可能需要在程式碼中到處找那些固定的值。像是在大樓的每個角落藏了不同的開關,想改變某個功能就得翻遍整棟大樓找那個隱藏的開關,讓人崩潰。
船錨 Boat Anchor
系統中留下了不再使用但又沒移除的程式碼或功能,就像系統中的沈重船錨。這些過時的程式碼沒有任何用處,但卻一直佔著資源,卻又沒人敢輕易動它,拖累整個開發進度,讓系統的開發和維護變得更加困難。為什麼這些舊程式碼還在,我們早就不用它了!
重新發明方的輪子 Reinventing the Square Wheel
有時候開發者會為了解決一個問題,自己重新設計某個功能,卻沒有考慮現成的解決方案。結果是寫出來的程式碼比市場上已有的方案還要爛。就像明明有好用的圓形輪子,但你非要自己設計個方的,最後問題更多。
測試人員驅動開發 Tester Driven Development
開發過程完全依賴測試人員來發現問題,然後開發者只是在測試指出的地方修修補補,卻不從根本上解決問題。長此以往,開發變成了一場無止境的救火行動,系統問題不斷,測試和開發之間疲於奔命。測試人員驅動了整個開發過程,而不是依據設計和需求來開發。