上一篇Day 29 - 開發流程(上) 瀑布式(Waterfall Model) & 敏捷式(Agile Model)了解了整個專案的開發流程,而這篇要講的是自己後端開發一個功能的流程,當開發有個固定的流程在進行時,功能才可以做得完整,也可以早一點發現問題。
我們先根據三層架構的圖片可以知道,當使用者發送一個請求進來,會一路從表現層、業務邏輯層和資料存取層逐一進行相關的處理,這邊先將使用者換成我們開發時的測試程式。
由上而下的思維方式就是從測試程式開始設計,在測試程式假定一堆可能的資料傳入Controller
,Controller
該呼叫哪些Service
,而Service
又該如何處理資料、是否回傳資料或是否拋出例外等等,就像是由外而內的逐步將功能完善。
由下而上的思維方式則是從最底層的資料存取層開始,先判斷哪些資料需要操作,而這些資料有哪些邏輯需要判斷,然後是這個功能由哪個Controller
觸發,最後開發測試程式,也就是由內而外般,從實體、資料庫操作等一路向外開發。
其實筆者在寫文章之前,一直都是使用由上而下的思維方式進行開發,在查詢資料時才知道有分成**由上而下
** 和**由下而上
**,而這個系列文就是用由下而上的思維方式,就目前的體驗來講,個人還是比較喜歡由上而下的方式開發,感覺就像是畫圖從輪廓開始往內描繪,比較不容易走偏或長歪,而由下而上則是反過來,從內部結構往外畫很容易不小心就長歪,當然有可能是筆者資歷還不夠,兩種思維方式都有各自的大師在使用,不管哪一種思維方式,最重要的就是把註解寫好,好開發好維護才是好程式。
終於結束了這難熬的30天,心情從一開始的游刃有餘到後來的黔驢技窮,有看完整個系列文的讀者應該有發現從15天之後的文章內容越來越少,這是因為我原本的心態就是寫成一個完整的教學文章,所以我幾乎每篇文章都會查閱了數十篇教學文章,綜合許多前輩的知識來做成一篇文章,但要查閱的知識點實在太多了,寫到最後實在是力不從心。
不過學習的路途是無止盡的,近期會繼續更新系列文章的內容,目前正在著手進行Spring Security 的研究,有碰過的應該都會知道Spring Security 是一個大坑,在查閱資料的時候就覺得很多文章內容不夠完整,或是實作的地方太少,所以打算閱讀官方文件進行最完整的學習,但我的英文並沒有很好,翻譯跟理解都需要一點時間,還請有興趣的讀者耐心等候。
再來就會是中間文章的更新,當時候是處於放棄邊緣,導致文章品質急速下降,但後來回去看覺得還有很多不足的地方想要補充,不僅是因為要給讀者學習不能誤人子弟,也是因為要給未來的我進行複習,畢竟未來要接觸的技術肯定越來越多,當一個技術不常用就一定會忘記,這時候就需要拿出自己的筆記複習。
最後,感謝這段時間的讀者,有你們的瀏覽給了我很大的支持,因為我對自己有一定的要求,希望自己能把文章打到最好,但其實有想過如果瀏覽數很低,應該就會很容易放棄了,畢竟嘔心瀝血的作品沒人注意到很打擊士氣,謝謝各位讀者,也請放心我會持續更新內容,把這個系列的文章都寫到自己能滿意的程度。