最近跟一個師兄吃飯,聊到他在微軟的工作,感嘆超過1萬人維護了30年的office軟件,不得不說,一個軟件,能夠在如此多平臺,如此多歷史版本中還能不斷地迭代,還能把兼容性做得如此之好真是不容易。聊到一些中美程序員的差異,中國的互聯(lián)網(wǎng)公司大多追求短平快,大部分地程序員并非軟件工程專業(yè)出生,軟件工程在大學(xué)也是一門比較無足輕重地必修課。但在國外,很多公司會給你充足的時間,讓你慢慢把軟件做好,做好的最重要一點,便是可維護。無論你的設(shè)計有多么巧妙,算法有多么高深,這些都不是好代碼的標(biāo)準(zhǔn),好的代碼是可以給一個團隊不停地維護,迭代中,不輕易出現(xiàn)混亂與差錯。
編程這個行業(yè)在我國盛行,也不到20年的歷史,真正流行并快速發(fā)展的,也只有最近十年。以往在大多數(shù)公司里面,開發(fā)的規(guī)范比較少,大家各成一派,有著自己的風(fēng)格,不過這幾年,國內(nèi)的一些開發(fā)規(guī)范慢慢盛行起來。今天我們來簡單聊一聊阿里巴巴推出的JAVA開發(fā)規(guī)范中的服務(wù)分層。
業(yè)務(wù)分層在我們的開發(fā)中非常的常見,好處也是非常多,首先是業(yè)務(wù)分層讓分工更加明確,邏輯更加清晰,更好地進行維護。其次業(yè)務(wù)分層可以讓代碼更加容易復(fù)用,舉個簡單例子,我們通常會把跟數(shù)據(jù)庫交互的代碼收攏到一個DAO層,如果你不這么做,會有什么問題呢?假如某一天我們對表結(jié)構(gòu)進行表更,新增或者替換了字段,我們可能要修改非常多處的代碼,令人頭疼。最后是讓業(yè)務(wù)更加容易擴展,那一層有性能問題,我們可以針對那一層該加機器就加機器,該優(yōu)化就進行優(yōu)化。
在業(yè)務(wù)邏輯層,會處理通用的業(yè)務(wù),例如電商系統(tǒng)中的交易成單接口,會調(diào)用商品,優(yōu)惠,會員等多個子系統(tǒng),完成成單服務(wù)。在業(yè)務(wù)邏輯層中,一些通用的業(yè)務(wù)會被抽象出來,放到Manage層,我們還是舉電商交易成單的例子,我們有一個訂單查詢接口,但是這個查詢接口不太想去理解太多業(yè)務(wù)邏輯,例如交易的類型,業(yè)務(wù)方,訂單的狀態(tài)等等,可以由Service層去理解這些邏輯,然后調(diào)用Manage層對應(yīng)的查詢接口。Service層接口與Manage層都可以訪問后方的DAO層,DAO層主要負(fù)責(zé)與數(shù)據(jù)庫交互,不理解業(yè)務(wù)邏輯。
所以,我們在開發(fā)項目的過程中,雖然不用完全按照這個規(guī)范,但也至少也把項目分成若干個層次,這樣,才能讓代碼更容易閱讀與維護。
-
JAVA
+關(guān)注
關(guān)注
20文章
2989瀏覽量
109942 -
編程
+關(guān)注
關(guān)注
88文章
3689瀏覽量
95287 -
阿里巴巴
+關(guān)注
關(guān)注
7文章
1638瀏覽量
48248
發(fā)布評論請先 登錄
評論