時(shí)梨
【摘要】? ? 隨著IT技術(shù)的發(fā)展,IT管理系統(tǒng)為企業(yè)健康發(fā)展提供新的支撐,甚至賦予了企業(yè)新型能力。然而,隨著IT系統(tǒng)應(yīng)用的深入,漸漸凸顯出IT系統(tǒng)在設(shè)計(jì)方面存在的一些問(wèn)題。在解決這些問(wèn)題之前,也需要明確好管理系統(tǒng)中可能會(huì)出現(xiàn)的問(wèn)題以及其中的原因,是否具有其存在的必要性,可能具有的解決措施。本文基于一種指導(dǎo)軟件開(kāi)發(fā)的思想體系,即對(duì)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)研究,運(yùn)用相關(guān)理論知識(shí)并在開(kāi)發(fā)各階段中實(shí)踐應(yīng)用,在此基礎(chǔ)上對(duì)IT管理系統(tǒng)進(jìn)行建設(shè),較好地提高IT管理系統(tǒng)的工作效率。
【關(guān)鍵詞】? ? 領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)? ? IT管理系統(tǒng)? ? 應(yīng)用研究
想要高效實(shí)現(xiàn)IT系統(tǒng)管理,需要積極利用領(lǐng)域驅(qū)動(dòng)進(jìn)行設(shè)計(jì)和籌劃,充分發(fā)揮領(lǐng)域驅(qū)動(dòng)的引領(lǐng)和帶動(dòng)作用,為整個(gè)IT系統(tǒng)管理奠定堅(jiān)實(shí)的基礎(chǔ)、保證整個(gè)企業(yè)的信息技術(shù)系統(tǒng)穩(wěn)定、健康發(fā)展。
一、領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)思想
著名的建模大師Eric Evans 在2004年首次提出了“領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)(DDD:Domain-Driven Design)”的概念,體現(xiàn)了軟件開(kāi)發(fā)從基于數(shù)據(jù)庫(kù)設(shè)計(jì)轉(zhuǎn)變?yōu)榛谀P驮O(shè)計(jì)的方式, 它為一種模型驅(qū)動(dòng)的基本策略,領(lǐng)域模型就是其不可替代的核心內(nèi)容。從概念上看,領(lǐng)域模型當(dāng)中包含是豐富的模型元素,其中主要采用分層方式來(lái)進(jìn)行業(yè)務(wù)的基本區(qū)分和隔離,每一層都具有其固定的特點(diǎn)以及其功能,且每一層都是獨(dú)立體,之間相互配合,共同構(gòu)建成為系統(tǒng)。基于領(lǐng)域驅(qū)動(dòng)的基本設(shè)計(jì),很好地保障了系統(tǒng)的可恢復(fù)性以及其一定的復(fù)雜性。而且以往系統(tǒng)需求分析和系統(tǒng)設(shè)計(jì)都是分離的,需求分析與系統(tǒng)設(shè)計(jì)并不相符、無(wú)法滿(mǎn)足使用需求——很多軟件在開(kāi)發(fā)完成、甚至投入實(shí)測(cè)后才發(fā)現(xiàn)功能不健全或者不符合需求,甚至系統(tǒng)不能有效跟隨需求變化。而企業(yè)在發(fā)展中也越來(lái)越追求管理的效率性,軟件的開(kāi)發(fā)也需要達(dá)到需求,也就需要提高開(kāi)發(fā)效率,將開(kāi)發(fā)的理想性與現(xiàn)實(shí)性之間的誤差率降到最低。領(lǐng)域?qū)邮钦麄€(gè)系統(tǒng)中最重要一層,領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)將數(shù)據(jù)和業(yè)務(wù)邏輯結(jié)合,提供一種通用語(yǔ)言,來(lái)解決業(yè)務(wù)復(fù)雜的IT系統(tǒng)開(kāi)發(fā)問(wèn)題。
二、領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的架構(gòu)
領(lǐng)域驅(qū)動(dòng)的核心應(yīng)用就是為了解決一些復(fù)雜業(yè)務(wù)的設(shè)計(jì)問(wèn)題那么其特點(diǎn)也就與整個(gè)系統(tǒng)聯(lián)系密切。分清楚其基本的框架也是為了可以更好的從中找出問(wèn)題,同時(shí)也是為了確定每層的特殊作用。領(lǐng)域驅(qū)動(dòng)的架構(gòu)主要分為四個(gè)部分,分別是用戶(hù)界面層、應(yīng)用層、領(lǐng)域?qū)?、基礎(chǔ)設(shè)施層,其中領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的思想將側(cè)重點(diǎn)放在領(lǐng)域?qū)樱谠搶又胁捎脤?shí)體(Entity)、值對(duì)象(Value Object)、服務(wù)(Service)、工廠(chǎng)(Factory)等設(shè)計(jì)元素來(lái)對(duì)業(yè)務(wù)邏輯進(jìn)行封裝,可以有效降低業(yè)務(wù)核心在其他層級(jí)上的暴露,能夠有效做到以領(lǐng)域?qū)訛橹行摹⑶覍?shí)現(xiàn)與其他層級(jí)之間的松耦合關(guān)系,進(jìn)而可以按照最小代價(jià)實(shí)現(xiàn)對(duì)另外層的更替。 領(lǐng)域驅(qū)動(dòng)的合理安排和設(shè)計(jì)可以在構(gòu)建一個(gè)應(yīng)用系統(tǒng)的時(shí)候,真正、有效地實(shí)現(xiàn)轉(zhuǎn)正核心矛盾,而不是將大量的關(guān)注投放在基礎(chǔ)設(shè)施的籌劃和持久性的建設(shè)當(dāng)中,盡可能不過(guò)多分散注意力去關(guān)注較為基礎(chǔ)的前臺(tái)展現(xiàn)層相關(guān)技術(shù)。能夠達(dá)成這種理想的技術(shù)層面,也是因?yàn)轭I(lǐng)域?qū)釉诟鱾€(gè)技術(shù)架構(gòu)當(dāng)中都是可以達(dá)到重復(fù)使用的,這才是整個(gè)系統(tǒng)的核心內(nèi)容。只有有效注意業(yè)務(wù)架構(gòu)的基本情況和效果,才能夠有效驅(qū)動(dòng)應(yīng)用架構(gòu)。其中,業(yè)務(wù)架構(gòu)的核心架構(gòu)層就應(yīng)該體現(xiàn)到應(yīng)用架構(gòu)的領(lǐng)域?qū)幽P椭?,這樣可以使得整個(gè)系統(tǒng)的運(yùn)轉(zhuǎn)特點(diǎn)充分體現(xiàn)出來(lái)。
1.用戶(hù)接口層(user interface):負(fù)責(zé)展示前端界面,即用戶(hù)可見(jiàn)、可操作的前端展示,主要采用 MVC的模式(MVC( model - view - controller) 是一種架構(gòu)型模式,由模型( model) 、視圖( view) 、控制器( controller) 組成)。
2.應(yīng)用層(application):負(fù)責(zé)響應(yīng)用戶(hù)界面層的各種請(qǐng)求,且不包含任何業(yè)務(wù)邏輯,僅根據(jù)相應(yīng)控制邏輯調(diào)用領(lǐng)域?qū)又猩婕暗牟煌?wù)、接口或數(shù)據(jù)。這一層關(guān)系到后續(xù)系統(tǒng)能做些什么,它的主要任務(wù)就是將工作委托給領(lǐng)域?qū)ο筮M(jìn)行實(shí)操。
3.領(lǐng)域?qū)樱╠omain):負(fù)責(zé)規(guī)定整體的業(yè)務(wù)邏輯,是整體領(lǐng)域設(shè)計(jì)架構(gòu)的關(guān)鍵內(nèi)容。也可以命名為業(yè)務(wù)領(lǐng)域,是重中之重,也是必要環(huán)節(jié)。
4.基礎(chǔ)設(shè)施層(infrastructure):是整個(gè)框架的底層,為其他層提供通用的技術(shù)實(shí)現(xiàn)能力,比如數(shù)據(jù)訪(fǎng)問(wèn)、網(wǎng)絡(luò)通信、郵件發(fā)生等。有效的信息可以使得整個(gè)系統(tǒng)在運(yùn)行時(shí)更加牢固,快遞實(shí)現(xiàn)技術(shù)需求。
三、領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)在構(gòu)建IT管理信息過(guò)程中各個(gè)階段的應(yīng)用要點(diǎn)
3.1系統(tǒng)需求分析階段
在系統(tǒng)需求分析的階段,主要應(yīng)用的是分析模型。系統(tǒng)需求當(dāng)中的分析模型存在,主要是為了幫助開(kāi)發(fā)人員和領(lǐng)域業(yè)務(wù)人員之間能夠有效進(jìn)行溝通、減少因?yàn)闇贤ú粫扯a(chǎn)生的問(wèn)題和矛盾,達(dá)到快速溝通的效果,使得整個(gè)系統(tǒng)在運(yùn)行過(guò)程中發(fā)揮較大的優(yōu)勢(shì),這也是整個(gè)系統(tǒng)中重要環(huán)節(jié),促進(jìn)整個(gè)系統(tǒng)的良好運(yùn)行。分析模型的展示方式較為多樣,可以結(jié)合系統(tǒng)需求進(jìn)行選取和合理安排,只要是任何有助于溝通業(yè)務(wù)需求的各項(xiàng)方式都可以投放使用,可以促進(jìn)系統(tǒng)運(yùn)行效率。
3.2概要設(shè)計(jì)階段
在概要設(shè)計(jì)階段,戰(zhàn)略設(shè)計(jì)模式是為了建立系統(tǒng)的業(yè)務(wù)框架,此階段一方面是戰(zhàn)略設(shè)計(jì)模式建模由開(kāi)發(fā)人員負(fù)責(zé),重點(diǎn)涉及理解子域如何劃分、界限上下文、上下文映射圖等概念,并思考設(shè)計(jì)采取何種方式構(gòu)建系統(tǒng);另一方面領(lǐng)域業(yè)務(wù)人員負(fù)責(zé)描述領(lǐng)域問(wèn)題、領(lǐng)域邏輯、業(yè)務(wù)愿景等。也就是初步建立基本的框架,這樣可以方便后期的更加詳細(xì)籌備,同時(shí)在初期構(gòu)建時(shí)也是為了初步排除其中一些不必要的結(jié)構(gòu),在進(jìn)行設(shè)計(jì)時(shí)也可以初步考慮多種因素,使得整個(gè)系統(tǒng)在逐步建立時(shí)體現(xiàn)出其層次性。
3.3詳細(xì)設(shè)計(jì)階段
在詳細(xì)設(shè)計(jì)階段,該階段一方面是指導(dǎo)下一階段的正確編碼,體現(xiàn)驅(qū)動(dòng)設(shè)計(jì)的思維;另一方面是開(kāi)發(fā)人員進(jìn)行戰(zhàn)術(shù)設(shè)計(jì)模式建模,體現(xiàn)出驅(qū)動(dòng)設(shè)計(jì)的思維。詳細(xì)設(shè)計(jì)也是為了在進(jìn)一步構(gòu)建模式時(shí)使得各層次之間相互聯(lián)系,增加系統(tǒng)的可運(yùn)行性。
3.4編碼階段
編碼階段是領(lǐng)域設(shè)計(jì)當(dāng)中的重要組成部分,開(kāi)發(fā)者需要利用戰(zhàn)略設(shè)計(jì)和戰(zhàn)術(shù)設(shè)計(jì)的領(lǐng)域模型進(jìn)行分析和研究,嘗試通過(guò)通用語(yǔ)言將編碼與領(lǐng)域模型保持一致。值得注意的是,有效編碼可以幫助整個(gè)系統(tǒng)實(shí)現(xiàn)快速運(yùn)轉(zhuǎn),同時(shí)也是整個(gè)系統(tǒng)的主要部分,編碼環(huán)節(jié)可以做到從另一種表現(xiàn)方式體現(xiàn)出領(lǐng)域模型。
四、領(lǐng)域驅(qū)動(dòng)構(gòu)建IT管理系統(tǒng)的設(shè)計(jì)與建設(shè)
1.用戶(hù)接口層:該層是整個(gè)IT管理系統(tǒng)設(shè)計(jì)過(guò)程中最為簡(jiǎn)單的一層,主要是人機(jī)交互的最前端,重點(diǎn)是各種UI界面設(shè)計(jì),強(qiáng)調(diào)界面的簡(jiǎn)潔性與使用的便捷性。在建設(shè)實(shí)現(xiàn)過(guò)程中,要先確認(rèn)各種應(yīng)用架構(gòu),用于滿(mǎn)足系統(tǒng)建設(shè)的靈活性和擴(kuò)展性。 也就是最基礎(chǔ)的接口,在做領(lǐng)域分析的時(shí)候會(huì)發(fā)現(xiàn)有些領(lǐng)域很難真正實(shí)現(xiàn)有效映射到對(duì)象,實(shí)際上這時(shí)就可以實(shí)現(xiàn)基礎(chǔ)接口的有效性,發(fā)揮基礎(chǔ)接口層的使用效果。
2.應(yīng)用層:該層不包含所有的業(yè)務(wù)邏輯,是用于協(xié)調(diào)各種應(yīng)用情況。在建設(shè)實(shí)現(xiàn)過(guò)程中,要先明確該層的主要目的,比如實(shí)現(xiàn)身份認(rèn)證、操作日志、系統(tǒng)報(bào)錯(cuò)等技術(shù)要求,其次該層為不對(duì)系統(tǒng)造成其他影響,所以在封裝上要明確一定限制,按照統(tǒng)一的調(diào)用方法進(jìn)行處理。主要是可以提高整體系統(tǒng)的運(yùn)行效率,幫助協(xié)調(diào)其他層有可能出現(xiàn)的潛在問(wèn)題,實(shí)現(xiàn)各層之間相互配合,統(tǒng)一運(yùn)行的效果。
3.領(lǐng)域?qū)樱涸搶邮钦麄€(gè)系統(tǒng)中最重要的一層,以領(lǐng)域驅(qū)動(dòng)的思想進(jìn)行各個(gè)層級(jí)的劃分和安排。 在設(shè)計(jì)過(guò)程中,一是確定核心域;二是確定核心域概念;三是確定核心域相關(guān)子域;四是進(jìn)行團(tuán)隊(duì)劃分。在建設(shè)實(shí)現(xiàn)過(guò)程中,一是需要確認(rèn)通用語(yǔ)言與代碼和領(lǐng)域模型的一致性;二是需要對(duì)各子域的權(quán)限進(jìn)行合理設(shè)計(jì);三是需要考慮系統(tǒng)穩(wěn)定性和安全性。 在領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)里面領(lǐng)域?qū)邮呛诵牟课弧P枰⒁鈨蓚€(gè)方面的內(nèi)容,每一個(gè)業(yè)務(wù)組件部分都會(huì)向上層提供領(lǐng)域服務(wù)任務(wù),并且每一個(gè)業(yè)務(wù)組件部分也會(huì)向其它業(yè)務(wù)組件提供領(lǐng)域服務(wù)任務(wù),這也就使得各層之間的聯(lián)系得到了加強(qiáng),在運(yùn)行時(shí)也會(huì)發(fā)現(xiàn),核心部分往往也是運(yùn)行的核心環(huán)節(jié),幫助整個(gè)系統(tǒng)實(shí)現(xiàn)有效運(yùn)行。
4.基礎(chǔ)構(gòu)建層:該層主要是對(duì)領(lǐng)域?qū)舆M(jìn)行支撐,重點(diǎn)是數(shù)據(jù)庫(kù)、存儲(chǔ)兩個(gè)方面的設(shè)計(jì)與建設(shè)實(shí)施,首先要根據(jù)自身需求,按照產(chǎn)品本身特點(diǎn)來(lái)選擇所需產(chǎn)品;其次在設(shè)計(jì)過(guò)程中要根據(jù)需求,對(duì)數(shù)據(jù)庫(kù)和存儲(chǔ)的方式進(jìn)行逐一論證和測(cè)試;最后要充分考慮所選產(chǎn)品之間的契合度,降低數(shù)據(jù)庫(kù)和存儲(chǔ)的故障率,更好的支撐各層應(yīng)用。同時(shí)各個(gè)層次部分在運(yùn)行環(huán)節(jié)中也不是互不關(guān)聯(lián)的,主要也是需要在構(gòu)建時(shí)結(jié)合產(chǎn)品特點(diǎn),結(jié)合各層次之間的關(guān)系進(jìn)行,這樣可以有效幫助減少其中可能會(huì)出現(xiàn)的不必要部分,降低軟件運(yùn)行過(guò)程中可能會(huì)出現(xiàn)的缺陷率,提高運(yùn)行效果。
五、結(jié)束語(yǔ)
實(shí)際項(xiàng)目中的應(yīng)用證明了這個(gè)框架能夠輔助進(jìn)行系統(tǒng)設(shè)計(jì)開(kāi)發(fā),提高了軟件開(kāi)發(fā)的效率和幫助減少一定的缺陷。領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的最大優(yōu)勢(shì)是直接將核心業(yè)務(wù)邏輯與領(lǐng)域模型結(jié)合起來(lái),更好實(shí)現(xiàn)高內(nèi)聚,松耦合,這種優(yōu)勢(shì)逐漸使其成為軟件設(shè)計(jì)的主流思想,特別是面對(duì)大型復(fù)雜的IT管理系統(tǒng)。 同時(shí)現(xiàn)如今的企業(yè)發(fā)展也越來(lái)越重視運(yùn)行效率,所以領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)也會(huì)越來(lái)越取得廣泛應(yīng)用,在進(jìn)行系統(tǒng)設(shè)計(jì)時(shí),需要按照一定要求充分展現(xiàn)出其合理設(shè)置。在進(jìn)行分層建設(shè)過(guò)程中,也需要充分考慮好各種不必要因素,及時(shí)調(diào)整,選擇合理框架以及開(kāi)發(fā)系統(tǒng),提高運(yùn)行效率。
合理進(jìn)行軟件開(kāi)發(fā),加快對(duì)于其中不必要因素的排查,提高軟件在實(shí)際運(yùn)行過(guò)程中的效率,使得軟件的有效性得到最大化的開(kāi)發(fā)與利用。這些內(nèi)容即是比較重要的,也是軟件開(kāi)發(fā)過(guò)程中需要特別注意的問(wèn)題。只有有效完成領(lǐng)域設(shè)計(jì)的各項(xiàng)工作,才能夠切實(shí)推進(jìn)企業(yè)信息化發(fā)展的進(jìn)程,憑借IT管理系統(tǒng)的有效搭建為企業(yè)發(fā)展注入新鮮的活力,保證整個(gè)企業(yè)發(fā)展高速推進(jìn)。
參考文獻(xiàn):
【1】(美)Vernon.騰云[譯].實(shí)現(xiàn)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì).電子工業(yè)出版社,2014.3
【2】胡俊霞.領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)在企業(yè)信息化系統(tǒng)中的應(yīng)用研究[D].鄭州:鄭州大學(xué),2017.
參? 考? 文? 獻(xiàn)
[1] (美)Vernon.騰云[譯].實(shí)現(xiàn)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì).電子工業(yè)出版社,2014.3
[2]胡俊霞.領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)在企業(yè)信息化系統(tǒng)中的應(yīng)用研究[D].鄭州:鄭州大學(xué),2017.