卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

java責任鏈模式審批流程 自學java怎么入門?

自學java怎么入門?其實編程語言的學習,尤其是對于有編程經(jīng)驗的人來說,應該掌握語言的主要元素,比如幾乎每一種語言都有變量、函數(shù)、集合(如數(shù)組、字典、類、結構等。)、過程控制(if-else、brea

自學java怎么入門?

其實編程語言的學習,尤其是對于有編程經(jīng)驗的人來說,應該掌握語言的主要元素,比如幾乎每一種語言都有變量、函數(shù)、集合(如數(shù)組、字典、類、結構等。)、過程控制(if-else、break、continu

Java項目的代碼,你們都是怎么設計分層的?分層有什么好處?

在我看來,Java項目分層簡直是必須的,即使一個項目是一個人獨立開發(fā)的,也要進行代碼分層;我現(xiàn)在負責的項目沒有參考任何代碼層次規(guī)范,因為項目的框架是我自己搭建的,也是我憑經(jīng)驗設計的,有些地方摻雜了一些個人喜好。

分包我們的項目分幾個包,但沒有到微服務的程度,因為公司的一些基礎不是很完善,比如容器、容器管理工具、持續(xù)集成。雖然已經(jīng)起步,但還不夠成熟,無法用于生產(chǎn)環(huán)境。畢竟是金融行業(yè),穩(wěn)定大于創(chuàng)新。

我們的項目現(xiàn)在按照功能模塊分成包,比如接口服務、定時服務、前端頁面、監(jiān)控等等;

前端頁面是純前端頁面(I m不確定這個描述是否清晰),頁面需要的所有數(shù)據(jù)都是通過調(diào)用接口獲得的,接口本身不與數(shù)據(jù)庫交互;

其他項目可以獨立部署,相關的功能通過MQ解耦。

分層在單個項目中,分層的設計是一樣的,類似于主流的代碼分層(我們項目的大部分功能都是接口,少數(shù)頁面功能也分在單獨的包里):

DAO層:數(shù)據(jù)訪問對象,數(shù)據(jù)訪問對象,我們用MyBatis,在方法的注釋里寫SQL語句;

服務層:業(yè)務邏輯層,這里其他服務或DAO可能被稱為;我覺得有些系統(tǒng)的服務層會分為兩部分,一部分是功能單一的業(yè)務邏輯,一部分是組合。商業(yè)邏輯;個人覺得這個有點繁瑣;

控制器層:請求處理層,包括類型轉換和參數(shù)驗證的功能在這里完成;

模型層:數(shù)據(jù)的實體對象,與數(shù)據(jù)庫列名一致;類名也以型號命名;

領域層:我們?yōu)檩斎雲(yún)?shù)和返回參數(shù)做了一個單獨的層,但不與模型層混合;即使一個接口要查詢單個表,查詢結果也要把Model轉換成Domain;我們已經(jīng)在領域級別標準化了許多字段,以便保持其含義是已知的。領域層的內(nèi)容確定后,屬性名稱不變,但模型層的內(nèi)容允許修改。

其余的是Util、Contants、Config等等。

分層分包和分層的優(yōu)點看似讓代碼結構更加復雜,但這種結構的復雜實際上可以降低系統(tǒng)的復雜度:

單一責任:每層代碼只負責一類責任,責任邊界變得非常清晰;

高內(nèi)聚、低耦合、易維護:業(yè)務邏輯放在一起,可以快速修改,無遺漏;如果業(yè)務邏輯分散在多個代碼層,修改時需要修改多個代碼,必然導致遺漏;上層代碼依賴下層代碼,清晰,無循環(huán)依賴;

高重用性:一個功能是抽象的,可以在多個業(yè)務流程中重用。

我會繼續(xù)分享我對Java開發(fā)、架構設計、程序員職業(yè)發(fā)展等方面的看法,希望得到大家的關注。