如果有維管過老舊系統的經驗(如ASP、JSP)的開發人員,
你應該有看過「前後端擺在一起」的著作。
這樣的開發方式並不會影響產品的交付的速度,
日後幾年維護也不成問題(假設原開發團隊還在的話)。
但數年後換人接手修改時,
可能就會讓人踩到許多的「雷」。
同步發表於個人點部落 - [鐵人賽Day01] ASP.Net Core MVC 進化之路 - 前言
第一篇先來講個小故事,內容純屬虛構,如有雷同純屬巧合。
[Start]
小菜是個大學剛畢業的菜鳥工程師,在完成公司的教育訓練後正式開始他的程式職涯。
某天DBA調整了資料庫Schema的欄位名稱,
好巧不巧這份程式碼剛好就是前後端不分離,
還夾雜著許多凌亂的SQL語法,
於是主管交給小菜第一個任務。
主管:小菜阿,因為DBA那邊有調整欄位名稱,你等等把有影響的地方修一下,這應該很簡單吧?
小菜:好的我試試看(用說的都馬很簡單,不然你來...)。
而小菜在修改的過程中卻發現了一堆問題...
問題1.
:主管說有影響的地方都要改,阿我才剛交接完,code也不是我寫的,我怎麼知道要改哪裡?
不要怕,交接文件有寫,請詳閱系統維護手冊。
問題2.
:文件修改日期是2009年,但今年都2018年了,這份文件還能參考嗎?
文件本來就是僅供參考,不然請你來幹嘛?
問題3.
:我怎麼知道有多少地方需要調整欄位,它們全部都散落在無數個前端頁面裡阿?
你可以使用密技
Ctrl+Shift+F
對整個專案作關鍵字搜尋,然後全部取代。
於是小菜使用地表最強開發神器Visual Studio
執行全部取代的動作,
3分鐘就收功快樂又輕鬆,還順手將程式碼佈上正式環境。
就這樣過了半小時,然後業務部門開始響起嘈雜的電話聲響...
[End]
耦合性過高
,一個不小心可能就改到別人的程式碼。重用性過低
,資料處理邏輯沒有被獨立抽出。使用MVC模式可以改善這些問題,讓前後端程式碼分離。
而透過CICD工具,可在每個階段適當地做權限控管。
但若要追根究柢,
改善開發人員寫程式的習慣是最大的問題,
否則你的程式只是擁有MVC的框架而不是靈魂。
本系列文章將記錄筆者由ASP.Net MVC5
→ ASP.Net Core MVC
的心得,
也會介紹幾項筆者開發中較常使用的工具及雲端相關服務。
如有文章內容摘述不清之處,再麻煩各路大神指點。