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

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

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

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

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

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

關于ddd的一些書籍

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

免費的電子書

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

不同語言的ddd示例項目

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

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

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

默認項目訪問首頁。

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

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

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

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

完整的目錄結構圖

常用的目錄結構如下:

  • application

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

  • domain

領域層,最重要也是代碼量最大的目錄。包含模型,服務,倉庫接口定義等。

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

基礎設施,此目錄對內使用

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

到此這個項目,最粗略的解讀就結束了,更多的還是得靠自己去認真理解每個目錄,靈活地應用到自己的項目中。


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

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

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

  • 實體 Entity,能夠被持久化同時與業(yè)務直接關聯(lián)可直接被理解的業(yè)務對象。
  • 值對象 ValueObject,傳值使用與其對應的還有DTO。
  • 領域服務 DomainService,負責對領域對象進行調度和封裝。
  • 倉庫 Repository,封裝了數(shù)據(jù)持久化相關操作。

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

感謝大家看到最后,別忘記加關注哦。一起學習一起進步。

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