[鐵人賽Day01] ASP.Net Core MVC 進化之路 - 前言

如果有維管過老舊系統的經驗(如ASPJSP)的開發人員,
你應該有看過「前後端擺在一起」的著作。

這樣的開發方式並不會影響產品的交付的速度,
日後幾年維護也不成問題(假設原開發團隊還在的話)。
但數年後換人接手修改時,
可能就會讓人踩到許多的「」。

小劇場

第一篇先來講個小故事,內容純屬虛構,如有雷同純屬巧合。

[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的心得,
也會介紹幾項筆者開發中較常使用的工具及雲端相關服務。
如有文章內容摘述不清之處,再麻煩各路大神指點。