邏輯解偶:
MVC是一個表現層的架構模式,它把我們的Web應用劃分成模型,檢視,控制器三部分。從邏輯上解耦了系統的業務邏輯和表現邏輯。但問題在於MVC的各部分並沒有一個嚴格的定義,去指導我們什麼時候使用M什麼時候應該使用V,這些判斷都取決於我們以往的專案經驗,所以對於工作應驗不多的人來說要完全理解並且合理應用並不容易,甚至可能還會引入不必要的複雜性。
前後端耦合:
由於模版檔案和靜態demo由專案中不同的角色來維護,前端修改demo,需要通知後端去同步模版,相應的模版變更也要通知前端去同步demo。如過兩者不同步就會產生問題。另外後端套vm模版需要修改HTML,後端不擅長做這些事情,就比較容易出問題。工作可能會遇到這樣的場景,前端同學把靜態demo交付給開發,開發拿到demo套後端模版,接著進行前後端聯調。聯調完成後,一直執行的很好。某天后端同學來過來說介面有問題,經過反覆溝通,花費時間排查問題。發現原來是修改vm模版檔案的時候HTML標籤巢狀錯了。
前後端分離:
開發中分離關注點有助於遮蔽專案的複雜性,降低維護成本。前端和後端的分工協作就是為了更好的實現關注點分離。然而由於vm模版這塊職責不清,當前這種協作方式導致前後端耦合較多。通過前後端分離,前端關注介面(檢視)和介面互動(控制器)的實現,後端關注業務功能和持久化的實現。後端通過介面的形式提供資料給前端使用,後端不用關心資料怎麼顯示在那顯示。前端不關心資料從哪來的比如資料庫,快取還是其他什麼地方,也不關心資料是怎麼來的,比如經過了那些複雜的邏輯處理。專業人員做自身擅長的領域,使得專案中表現和業務邏輯的物理解耦,進一步提高了前後端開發人員犯錯門的門檻,也可以有效提升專案的可維護性和不同角色之間協作溝通效率。
怎麼實施:
如果讓前端開發參與到java工程中接手專案中的檢視和控制器這個明顯不符合實際。 javascript,是每個前端前端工程師的必備技能,有很多成熟的基於nodejs的web mvc開發框架。可以很容的幫我實現控制器和和檢視的功能。我認為前端工程師不等於瀏覽端器工程師,和介面、介面互動相關的技術實現都應該屬於前端範疇。