作者重構舊專案時發現代碼耦合嚴重,交由同事重構後雖結構清晰、引入設計模式,但層次過多、數據結構復雜,導致調試需深入多層才能觸達核心邏輯。由此引發「是否過度設計」的疑問,拋至知乎引發熱烈討論。
| 參與者 | 核心觀點 |
|---|---|
| 孫立偉 | 語言特性非關鍵,關鍵在設計與編碼功力;抽象層次應與業務復雜度正比,為抽象而抽象有害;「手裡有錘子看哪裡都是釘子」是常見誤區。 |
| 陳碩 | 推薦《樸實的 C++ 設計》;解耦常被濫用為過度設計的遮羞布,真正關鍵是內聚。 |
| 白順龍 | 乘法比加法復雜但效率高,微積分更復雜但解決更難問題;代碼復雜度應匹配問題域復雜度,別停留在「小學生水平」。 |
| 余天升 | 寧犧牲易用性保代碼質量;嘗試尋找同時解決多問題的模式。 |
| Edwin | 邏輯復雜非缺點,關鍵在可復用與質量;長期看高質量代碼降低成本。 |
| 鄭書清 | 模式價值取決於團隊共識與掌握度;代碼寫給人看,團隊不爽會破壞結構。 |
結論:沒有標準答案,但在「代碼寫給人看、團隊能維護、業務能增長」的三角形內尋找動態平衡,才是架構師的本職工作。