@領域驅動設計

Stories List
@88223100

DDD腳手架及編碼規範

一、背景介紹 我們團隊一直在持續推進業務系統的體系化治理工作,在這個過程中我們沉澱了自己的DDD腳手架項目。腳手架項目是體系化治理過程中比較重要的一環,它的作用有兩點: 可以對新建的項目進行統一的規範 對於指導老項目

88223100 Avatar

@88223100

Nickname 古道輕風

@davenkin

產品代碼都給你看了,可別再説不會DDD(六):聚合根與資源庫

這是一個講解DDD落地的文章系列,作者是《實現領域驅動設計》的譯者滕雲。本文章系列以一個真實的並已成功上線的軟件項目——碼如雲(https://www.mryqr.com)為例,系統性地講解DDD在落地實施過程中的各種典型實踐,以及在面臨實際業務場景時的諸多取捨。 本系列包含以下文章: DDD入門 DDD概念大白話 戰略設計 代碼工程結構 請求處理流程 聚合根與資源庫(本文)

davenkin Avatar

@davenkin

Nickname 無知者雲

@88223100

你真的瞭解TDD和BDD嗎

今天我們來談一談TDD 和 BDD 兩項實踐。我們先來説説 TDD,也就是測試驅動開發(Test Drvien Development)。 TDD 的節奏 或許你已經迫不及待地要舉手了:“TDD 我知道,就是先寫測試,後寫代碼。”但真的是這樣嗎?嚴格地説,“先寫測試、後寫代碼”的做法叫測試先行開發(Test First Development),而不是測試驅動開發。 測試驅動開發不也是先寫測試後

88223100 Avatar

@88223100

Nickname 古道輕風

@miwotech

STM32 + ESP32(AT固件 MQTT協議) + MQTTX(桌面終端) + (EMQX消息服務器)

翻出老物件,搭建一個簡單的 IOT 開發環境,也算是廢物利用了,接下來加傳感器。 1. STM32 採集數據: RTOS。 資源相對比較豐富,可以根據項目需求定製。 2. ESP32 網絡傳輸(AT固件 MQTT協議): AT:封裝好的接口,擴展性不是那麼好,業務簡單的話將就可以用。 SDK:接口比較多,比較複雜,當然能做的業務也多。 E

miwotech Avatar

@miwotech

Nickname DeJun22

@jingdongkeji

DDD技術方案落地實踐

1. 引言 從接觸領域驅動設計的初學階段,到實現一箇舊系統改造到DDD模型,再到按DDD規範落地的3個的項目。對於領域驅動模型設計研發,從開始的各種疑惑到吸收各種先進的理念,目前在技術實施這一塊已經基本比較成熟。在既往經驗中總結了一些在開發中遇到的技術問題和解決方案進行分享。 因為DDD的建模理論及方法論有比較成熟的教程,如《領域驅動設計》,這裏我對DDD的理論部分只做簡要回顧,如果需要了解D

jingdongkeji Avatar

@jingdongkeji

Nickname 京東雲技術團隊

@jingdongkeji

從混亂到優雅:基於DDD的六邊形架構的代碼翻新指南

前言 趁着雙十一備戰封板,終於又有一些時間可以梳理一下最近的心得。 最近這半年跟同事討論比較多的是分層架構,然後就會遇到兩個觸及靈魂的問題,一個是如何做好分層架構,二是DDD在架構層面該如何落地。 為了説好分層,我們需要了解架構的意義。 良好的架構是為了保證一下兩點: 治理應用複雜度,降低系統熵值; 從隨心所欲的混亂狀態,走向井井有條的有序狀態。 比如,你去圖書館借閲書籍,對於紛繁雜亂的各

jingdongkeji Avatar

@jingdongkeji

Nickname 京東雲技術團隊

@for-easy-fast

分佈式應用服務的拆分

需求落地分佈式應用服務 將需求轉化為分佈式應用服務的過程可以按照以下步驟進行: 理解需求:首先,你需要仔細閲讀和理解業務需求。與相關的利益相關者(如業務分析師、產品經理等)進行溝通,確保你對需求的理解是準確的。 設計架構:根據需求,設計一個適合的分佈式應用架構。這包括確定應用的組件和模塊,以及它們之間的通信和交互方式。考慮到分佈式系統的特點,如可伸縮性、容錯性和一致性等。

for-easy-fast Avatar

@for-easy-fast

Nickname 明志德道

@Ahoo-Wang

領域驅動設計之銀行轉賬:Wow框架實戰

領域驅動設計之銀行轉賬:Wow框架實戰 銀行賬户轉賬案例是一個經典的領域驅動設計(DDD)應用場景。接下來我們通過一個簡單的銀行賬户轉賬案例,來了解如何使用 Wow 進行領域驅動設計以及服務開發。 銀行轉賬流程 準備轉賬(Prepare): 用户發起轉賬請求,觸發 Prepare 步驟。這個步驟會向源賬户發送準備轉賬的請求。 校驗餘額(CheckBalance): 源賬户在收到準備轉賬請求後

Ahoo-Wang Avatar

@Ahoo-Wang

Nickname Ahoo-Wang

@Jcloud

DDD學習與感悟——總是覺得自己在CRUD怎麼辦?

一、DDD是什麼? DDD全名叫做Domins drives Design;領域驅動設計。再説的通俗一點就是:通過領域建模的方式來實現軟件設計。 問題來了:什麼是軟件設計?為什麼要進行軟件設計? 軟件開發最主要的目的就是:解決一個問題(業務)而產生的一個交付物(系統)。而軟件設計旨在高效的實現複雜項目軟件。也就是説軟件設計是從業務到系統之間的橋樑。 而DDD則是在複雜業務場景下一種更高效更合理的軟

Jcloud Avatar

@Jcloud

Nickname Jcloud

@jingdongkeji

DDD學習與感悟——向屎山衝鋒

軟件系統是通過軟件開發來解決某一個業務領域或問題單元而產生的一個交付物。而通過軟件設計可以幫助我們開發出更加健壯的軟件系統。因此,軟件設計是從業務領域到軟件開發之間的橋樑。而DDD是軟件設計中的其中一種思想,旨在提供一種大型複雜軟件的設計思路和規範。通過DDD思想可以讓我們的業務架構、系統架構、部署架構、數據架構、工程架構等都具備高擴展性、高維護性和高測試性。 但是落地DDD是一件很困難的事情。首

jingdongkeji Avatar

@jingdongkeji

Nickname 京東雲技術團隊

@visionalsun

主流編程語言的“介紹”與“選擇”

前言: 《編程語言》本身沒有優劣之分,不同的語言適合不同的場景,文中説的建議,多是站在小白要就業的立場給出的建議。 適合場景: Perl、VBScript:系統腳本; C/C++:運算程序; C#、.Net:C/S、B/S 系統應用; Lua、Ruby、Rust:函數腳本; Python、Golang:算法程序; { 靜謐、蠕動、邏輯、規則、策略、排序、哈希、匹配、搜索

visionalsun Avatar

@visionalsun

Nickname Visional S. XIA

@visionalsun

《數據要素》專題:什麼是《數據資產》? 應該如何落地《數據資產管理與實施》?

2021 年 12 月,中國南方電網發佈了《南方電網數據資產管理體系白皮書》,白皮書指出,數據資產管理,是數據資產價值釋放的必經之路。 報告中稱,不少企業對於數據如何促進內部的提質增效及外部價值的釋放並無統一認知,對於數據資產的運營缺乏體制化規劃。 隨着企業數字化進程發展,數據資產管理不再侷限於數據資源本身,對數據進行加工後的數據產品或數據服務也要加以管理。 為什麼數

visionalsun Avatar

@visionalsun

Nickname Visional S. XIA

@tangshiye

字節面試:領域、子域、核心域、通用域和支撐域怎麼劃分?

領域驅動設計(DDD)裏面有一堆專業術語,比如領域、子域、核心域、通用域、支撐域等等,聽着是不是覺得挺嚇人?別怕,我來帶你輕鬆搞懂它們。 如何理解領域和子域? 領域是指一定的業務範圍或問題域。在解決業務問題時,DDD 會將業務領域進行細分,將問題範圍限定在一定的邊界內,在這個邊界內建立領域模型,用代碼實現這些領域模型,解決相應的業務問題。實際上,核心思想就是分而治之。 領域可以進一步劃分為子域,每

tangshiye Avatar

@tangshiye

Nickname AI架構師湯師爺

@visionalsun

《數據要素》專題:《數據資產》如何確權、估值? 《數據產權》又該如何明確、保護?

2020 年 04 月 10 日,《中共中央國務院 關於“構建更加完善的要素市場化配置體制機制”的意見》正式公佈,將數據確立為五大生產要素(土地、資本、勞動力以及技術)之一,數據要素市場化已成為建設數字中國不可或缺的一部分,數據資產時代已然來臨。 會計學上,資產指由企業過去的交易或事項形成的、由企業擁有或者控制的、預期會給企業帶來經濟利益的資源,具有三項核心特徵:資產應歸屬某主體所有

visionalsun Avatar

@visionalsun

Nickname Visional S. XIA

@visionalsun

《數字經濟》

今天,為大家推薦一篇《數字經濟:產業集羣發展 白皮書》的報告。 報告 共 71 頁。 從 “數字經濟概念、特徵、典型產業集羣案例、要素、策略、產業展望” 等六個方面,詳細解讀了《2023 數字經濟產業》。 很重磅。 #01# 【關鍵要點】 一、數字經濟定義 《數據資產》作為關鍵生產要素,以 “現代信息網絡作為重要載體 和 信息通信技術的有效使用”來作為 “效率提升 和 經濟結

visionalsun Avatar

@visionalsun

Nickname Visional S. XIA

@lemondu

架構-初識DDD

引言 繼上一篇BFF的文章後,我又去網上學習了一下DDD(領域驅動設計),發現一篇不錯的文章,參考並寫了一些自己的理解分享在這裏。 DDD 是什麼 領域驅動設計(Domain Driven Design) 是一種從系統分析到軟件建模的一套方法論。以領域為核心驅動力的設計體系。 為什麼使用 面向對象設計,數據行為綁定,告別貧血模型 優先考慮領域模型,而不是切割數據和行為 準確傳達業務規則

lemondu Avatar

@lemondu

Nickname LemonDus

@mooodo

DDD你真的理解清楚了嗎?怎麼準確理解“值對象”

這些年,隨着軟件業的不斷髮展,軟件系統開始變得越來越複雜而難於維護。這時,越來越多的開發團隊開始選擇實踐DDD領域驅動設計。領域驅動設計是一種非常優秀的軟件設計思想,它可以非常好地幫助我們梳理複雜業務,解決大規模業務系統的設計開發與更新維護。但是,領域驅動的學習成本卻非常高,使得很多同學難於準確地理解DDD,更難於真正落地實際項目的設計編碼。為此,我通過這一系列知識分享,讓大家真正準確地理解DDD

mooodo Avatar

@mooodo

Nickname 充滿詩意的聯盟

@sevenShaw

DDD重構項目

雲圖庫項目ddd重構 把原項目複製一份,用副本進行項目重構 原結構為 com.yupi.yupicturebackend.xxx,保留 com.yupi,新建一個和 yupicturebackend 包同級的包來當作ddd重構包 把主類 xxxApplication 先拖到新建的根包中。因為主類會掃描相同包下的路徑,我們要在重構的ddd的項目架構中運行程序,所以

sevenShaw Avatar

@sevenShaw

Nickname sevenShaw

@mrye

領域驅動設計實戰:聚合根設計與領域模型實現

附:源代碼參考 Eleven 低成本可落地的 DDD 技術方案腳手架 現代化領域驅動設計原書示例 背景介紹 我清楚的知道一點,其實大家如果上網找文章,90%以上的人肯定是想知道具體編程的時候怎麼落地,尤其是聚合根。 現在互聯網的文章要麼是水軍寫的,要麼是宣傳廣告來的,他們的問題如下: 一來要麼是衝你錢包來的,實際參考價值不足0; 二來全部清一色電商平台,就好像全世界都是淘寶亞馬遜。

mrye Avatar

@mrye

Nickname 有泥土的路