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

java責(zé)任鏈模式審批流程 自學(xué)java怎么入門?

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

自學(xué)java怎么入門?

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

Java項(xiàng)目的代碼,你們都是怎么設(shè)計(jì)分層的?分層有什么好處?

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

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

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

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

其他項(xiàng)目可以獨(dú)立部署,相關(guān)的功能通過MQ解耦。

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

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

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

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

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

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

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

分層分包和分層的優(yōu)點(diǎn)看似讓代碼結(jié)構(gòu)更加復(fù)雜,但這種結(jié)構(gòu)的復(fù)雜實(shí)際上可以降低系統(tǒng)的復(fù)雜度:

單一責(zé)任:每層代碼只負(fù)責(zé)一類責(zé)任,責(zé)任邊界變得非常清晰;

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

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

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