亚洲 欧洲 日韩 综合色天使,久久国产Av无码一区二区老太,人妻醉酒被下药迷昏带到诊所 ,亚州老熟女A片AV色欲小说

項目書模板范文,項目書模板范文不常見?

本文大概1300字,大??芍苯硬榭?span style="background-color: #F04142">高亮的字即可。

回顧:隨著公司產(chǎn)品功能越堆越多,代碼的可復(fù)用性越來越無法保障,項目中出現(xiàn)越來越多的重復(fù)代碼,而無法優(yōu)化的情況。幾年前接觸DDD,但沒有深入研究,當(dāng)時參考了一個DDD的程序框架,就開始了產(chǎn)品開發(fā)之路,目前回頭重新整理這條開發(fā)技術(shù)路線。

DDD(Domain Driven Design, DDD)領(lǐng)域驅(qū)動設(shè)計,是一個方法或者思路,并不是一個技術(shù)工具。在搜索資料的時候發(fā)現(xiàn)了一個有意思的代碼倉庫:https://github.com/heynickc/awesome-ddd,該倉庫匯總了一些常見的關(guān)于ddd的書籍,訓(xùn)練課程,社區(qū)資源以及不同語言的ddd代碼示例庫。

項目書模板范文,項目書模板范文不常見?

關(guān)于ddd的一些書籍

項目書模板范文,項目書模板范文不常見?

免費的電子書

項目書模板范文,項目書模板范文不常見?

不同語言的ddd示例項目

在尋找的過程中,發(fā)現(xiàn)了符合自己技術(shù)棧(spring boot,messaging,jpa)的另一個開源庫:https://github.com/citerus/dddsample-core,雖說有段時間沒更新,但對于學(xué)習(xí)或者借鑒項目的思路是完全沒問題的。

直接跳過新手過程(如果項目無法跑起來或者有奇怪的錯誤,可私信我),打開項目訪問地址:http://localhost:8080/dddsample/。項目集成了freemarker模版和幾個靜態(tài)的網(wǎng)頁,也算一個完整的小型項目。

項目書模板范文,項目書模板范文不常見?

默認(rèn)項目訪問首頁。

頁面主要包括一個簡單的增刪改查功能,這并非我重點關(guān)注對象。直接查看對應(yīng)的代碼結(jié)構(gòu),提取出符合項目中常用的一些思路方法。

項目書模板范文,項目書模板范文不常見?

默認(rèn)使用hsqldb,基于hibernate切換任何數(shù)據(jù)庫都方便

項目書模板范文,項目書模板范文不常見?

完整的目錄結(jié)構(gòu)圖

常用的目錄結(jié)構(gòu)如下:

  • application

應(yīng)用層,主要描述當(dāng)前應(yīng)用的任務(wù)以及對外服務(wù)的模塊。根據(jù)實際情況可以保留也可以刪除。

  • domain

領(lǐng)域?qū)樱钪匾彩谴a量最大的目錄。包含模型,服務(wù),倉庫接口定義等。

model 定義了眾多業(yè)務(wù)內(nèi)部模型。對于業(yè)務(wù)設(shè)計和實現(xiàn)而言,此處的難度都比較大。
service 當(dāng)前領(lǐng)域的服務(wù)(Domain services)。
shared 共享目錄,定義一些共享的目錄,此處有幾個有意思的定義:領(lǐng)域事件DomainEvent,實體Entity,值對象ValueObject。在實際的項目中,此目錄對后期的業(yè)務(wù)開發(fā),具有很大的指導(dǎo)作用。
  • infrastructure

基礎(chǔ)設(shè)施,此目錄對內(nèi)使用

messaging.jms 消息目錄,異步接收外部消息。
persistence.hibernate jpa數(shù)據(jù)庫持久化層,此處沒有方法定義,只負(fù)責(zé)基礎(chǔ)設(shè)施的實現(xiàn);基礎(chǔ)設(shè)施的定義,在模型目錄中定義。
routing 路由服務(wù),個人沒看出有啥用處。
  • interfaces
facade 裝飾器或適配器,定義了各種dto,用于與用戶接口層交互。
web 可以換個更熟悉的名字“控制器”Controller,主要用于與網(wǎng)頁進(jìn)行數(shù)據(jù)交互。

到此這個項目,最粗略的解讀就結(jié)束了,更多的還是得靠自己去認(rèn)真理解每個目錄,靈活地應(yīng)用到自己的項目中。


對以上目錄的解讀和閱讀其他資料,匯總了DDD中幾個常見的概念名稱。

  1. Interface用戶層 負(fù)責(zé)與用戶或網(wǎng)頁交互,實現(xiàn)遠(yuǎn)程調(diào)用。
  2. Application應(yīng)用層 用來表示應(yīng)用的一些任務(wù),這里不包含業(yè)務(wù)邏輯。
  3. Domain領(lǐng)域?qū)?本層是最重要的一層,也是業(yè)務(wù)軟件的核心代碼所在。一般包括業(yè)務(wù)的模型建立和核心業(yè)務(wù)的定義。
  4. Infrastructure基礎(chǔ)設(shè)施層 作為底層服務(wù)支撐,很多底層的實現(xiàn)均在此層。

在閱讀的過程中還匯總了一些其他的常用要素。

  • 實體 Entity,能夠被持久化同時與業(yè)務(wù)直接關(guān)聯(lián)可直接被理解的業(yè)務(wù)對象。
  • 值對象 ValueObject,傳值使用與其對應(yīng)的還有DTO。
  • 領(lǐng)域服務(wù) DomainService,負(fù)責(zé)對領(lǐng)域?qū)ο筮M(jìn)行調(diào)度和封裝。
  • 倉庫 Repository,封裝了數(shù)據(jù)持久化相關(guān)操作。

此開源工程最大的優(yōu)勢,在眾多的spring boot和jpa項目中,提供了一個現(xiàn)成的可直接使用的技術(shù)方案(拿來主義)。當(dāng)然項目中對jpa和activemq的封裝可能已經(jīng)落伍,根據(jù)需要直接替換掉即可。

感謝大家看到最后,別忘記加關(guān)注哦。一起學(xué)習(xí)一起進(jìn)步。

本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 sumchina520@foxmail.com 舉報,一經(jīng)查實,本站將立刻刪除。
如若轉(zhuǎn)載,請注明出處:http://www.qjsdgw.cn/102268.html