咪免直播高品质美女在线视频互动社区_咪免直播官方版_咪免直播直播视频在线观看免费版下载

您的位置:首頁 > 軟件教程 > 教程 > 領(lǐng)域驅(qū)動設(shè)計(DDD):軟件工程的第一性原理

領(lǐng)域驅(qū)動設(shè)計(DDD):軟件工程的第一性原理

來源:好特整理 | 時間:2024-08-25 09:57:05 | 閱讀:50 |  標(biāo)簽: 設(shè)計 軟件   | 分享到:

本文書接上回《DDD建模后寫代碼的正確姿勢》,關(guān)注公眾號(老肖想當(dāng)外語大佬)獲取信息: 最新文章更新; DDD框架源碼(.NET、Java雙平臺); 加群暢聊,建模分析、技術(shù)實(shí)現(xiàn)交流; 視頻和直播在B站。 前提 本文需要以系列前文的邏輯鏈條和結(jié)論為前提,如果沒有閱讀過前文的,可以閱讀合集《老肖的領(lǐng)域

在本文中,我們將深入探討領(lǐng)域驅(qū)動設(shè)計(DDD)在軟件工程中的重要性,以及它在長期迭代的業(yè)務(wù)系統(tǒng)中的作用。通過實(shí)例和案例,我們將闡述DDD如何成為軟件工程的第一性原理。

在接下來的內(nèi)容中,我們將從故事背景開始,逐步展開對DDD在軟件工程中的應(yīng)用和影響的討論。

接下來,我們將介紹故事背景,探討在長期迭代的業(yè)務(wù)系統(tǒng)中,領(lǐng)域驅(qū)動設(shè)計的重要性和作用。

在2020年,我所在的研發(fā)團(tuán)隊面臨著維護(hù)一個有近十年歷史的SaaS軟件系統(tǒng)的挑戰(zhàn)。這個系統(tǒng)是公司的主營業(yè)務(wù),用戶活躍度非常高。然而,系統(tǒng)迭代速度遠(yuǎn)遠(yuǎn)無法應(yīng)付客戶需求,每次迭代發(fā)布都是如履薄冰。團(tuán)隊對系統(tǒng)已經(jīng)到了完全失控的邊緣。

當(dāng)時,團(tuán)隊對領(lǐng)域驅(qū)動設(shè)計的認(rèn)知并不通透,但隱約感覺DDD能夠幫助他們走出困境。他們渴求改變,但缺乏確定性的驗證,對于如何改變并走向成功,他們并無把握。在這樣的背景下,團(tuán)隊仍然積極地為作出改變做準(zhǔn)備。

在這個背景下,團(tuán)隊對自己的客戶和業(yè)務(wù)有比較充分的了解,甚至跟著產(chǎn)品經(jīng)理一起去拜訪客戶。他們還打造了一套定制的開發(fā)框架,以更準(zhǔn)確地用代碼表達(dá)業(yè)務(wù)。

在2020年9月,公司CEO領(lǐng)導(dǎo)下,團(tuán)隊成立了獨(dú)立項目組,目標(biāo)是重新打造一套新的SaaS系統(tǒng),以替換舊的系統(tǒng)。新系統(tǒng)的核心目標(biāo)是“保持系統(tǒng)持續(xù)的快速迭代”,這個目標(biāo)改變了團(tuán)隊在需求分析、產(chǎn)品設(shè)計、系統(tǒng)架構(gòu)時的核心決策依據(jù)。

團(tuán)隊一致認(rèn)為這個目標(biāo)是關(guān)于軟件工程和領(lǐng)域驅(qū)動設(shè)計的認(rèn)知質(zhì)變的起點(diǎn),它改變了團(tuán)隊在決策時的邏輯,追求更長期的利益價值,愿意放棄短期利益。

團(tuán)隊認(rèn)為這個轉(zhuǎn)變意味著,整個公司的決策邏輯,從短期拓展到長期,追求更長期的利益價值,愿意放棄短期利益。而最考驗團(tuán)隊的,就是他們是否真的可以拿到“可維護(hù)性”這個長期利益。

如果大家有讀過之前《關(guān)于領(lǐng)域驅(qū)動設(shè)計,大家都理解錯了》一文,應(yīng)該還記得關(guān)于復(fù)雜度的認(rèn)知。因此,團(tuán)隊認(rèn)為要掌控系統(tǒng)的可維護(hù)性,就必須實(shí)行分而治之的策略,將復(fù)雜度限定在一個個有限的范圍內(nèi)。這個邏輯正好與領(lǐng)域驅(qū)動設(shè)計的理念不謀而合。

于是,團(tuán)隊在這個由CEO發(fā)起的戰(zhàn)略級項目中,開啟了一段神奇的領(lǐng)域驅(qū)動設(shè)計落地實(shí)踐之旅,為了確保最終結(jié)果符合預(yù)期,他們甚至建立了一條“不準(zhǔn)跨域”軍規(guī)。

現(xiàn)今已經(jīng)到了2024年的后半年,也就是說上述的項目,已經(jīng)經(jīng)歷了大約四年發(fā)展和迭代。中途我本人也因為個人的一些因素離開了團(tuán)隊,最近我特地向朋友了解項目的近況,他也是項目的核心架構(gòu)師之一,得到了肯定的答復(fù)。

對于確定不迭代的系統(tǒng),意味著可維護(hù)性的意義就不那么重要了,對于科研類或者其它領(lǐng)域的軟件,可能要解決的更重要的問題是“技術(shù)難題”等其它維度的問題。

回歸到主題,我一直在思考“DDD是軟件工程的第一性原理?”這個問題,過往的這些經(jīng)歷,越發(fā)讓我堅信這一點(diǎn),但如果讓結(jié)論更加嚴(yán)謹(jǐn),需要限定條件如下。

在這樣的背景下,那么標(biāo)題的答案是肯定的:DDD是軟件工程的第一性原理!

如果你認(rèn)同本文的推導(dǎo)邏輯和觀點(diǎn),那么我相信你一定會期望了解如何掌握DDD,下一期,我們將講述學(xué)習(xí)和實(shí)踐DDD的最佳路徑。

小編推薦閱讀

好特網(wǎng)發(fā)布此文僅為傳遞信息,不代表好特網(wǎng)認(rèn)同期限觀點(diǎn)或證實(shí)其描述。

相關(guān)視頻攻略

更多

掃二維碼進(jìn)入好特網(wǎng)手機(jī)版本!

掃二維碼進(jìn)入好特網(wǎng)微信公眾號!

本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請發(fā)郵件[email protected]

湘ICP備2022002427號-10 湘公網(wǎng)安備:43070202000427號© 2013~2025 haote.com 好特網(wǎng)