最近和 Mentor 討論功能的開發時,討論到了我再來要用「從上往下」,還是「從下往上」的開發順序,覺得滿有意思的,所以記錄下來。

從上往下的意思是:從 UI 和功能開始構想,發現缺什麼功能就往下去補 Service、Dao、Domain。

過去開始工作前,在寫小組專題時,我都是用這樣的模式去開發,因為我們是先畫 UI,再開始補功能,覺得從上往下開發比較直覺一點。

但從上往下開發有個缺點,就是容易讓程式之間的耦合度比較高,也很難切單元測試,這點在我剛開始學習單元測試時也有體會到。

相對來說,由下往上開發就是從 Domain、Dao 開始構想功能,如果已經有開發過類似的功能,已經有定義好 Interface 的話,開發時就比較不會有高耦合度的問題,因為已經切割過功能的規劃了。

個人覺得一般的開發可能都會先經歷「從上往下」的開發,能實作達到需求後,再重構程式碼,變成是「從下往上」的開發,確保程式碼是更乾淨,更好維護的。

當然如果一開始就能做到「從下往上」的開發的話,這樣應該是最好的,但思考起來會抽象許多,比較難做到。


文章作者: Michael

上次更新: 2023-12-07

授權條款: 保留所有權利