2022-10-28
數字化轉型帶來(lái)的(de)業務變化對傳統的(de)理論和(hé / huò)架構正在(zài)形成巨大(dà)的(de)沖擊。
傳統的(de)運營模式注重效率,認爲(wéi / wèi)商業環境組織有序、變化緩慢且相對可預測,其業務的(de)需求和(hé / huò)邊界是(shì)清晰的(de),是(shì)可以(yǐ)被準确描述和(hé / huò)表達的(de),所以(yǐ)傳統系統設計遵循企業EA架構中業務需求-業務架構-數據架構-應用架構-技術架構這(zhè)一(yī / yì /yí)嚴密的(de)邏輯實現路徑,這(zhè)在(zài)業務相對穩定的(de)年代是(shì)規範的(de)構建方式,也(yě)是(shì)被廣泛接受的(de)基于(yú)數據庫爲(wéi / wèi)核心的(de)系統建設範式模式。
然而(ér),這(zhè)其中的(de)挑戰在(zài)于(yú)沒有辦法實現對“不(bù)确定性”的(de)支撐!這(zhè)種不(bù)确定性源于(yú)業務需求的(de)不(bù)明确,業務邊界被打破而(ér)導緻的(de)模糊化,以(yǐ)及業務架構的(de)不(bù)斷變化。
通過一(yī / yì /yí)個(gè)更形象的(de)例子(zǐ)來(lái)解釋這(zhè)種不(bù)确定性對于(yú)傳統EA架構理論的(de)挑戰:
我們的(de)企業就(jiù)好比一(yī / yì /yí)個(gè)人(rén)體組織,人(rén)體組織運行依賴結構、動力和(hé / huò)控制三個(gè)核心要(yào / yāo)素,其中結構就(jiù)類同組織—業務概念模型,動力就(jiù)是(shì)業務流程,控制對應業務規則。
可以(yǐ)想象的(de)是(shì),組織是(shì)具有生命力且靈活變化的(de)有機體,概念模型、業務流程和(hé / huò)業務規則相互關聯。流程對概念模型中所代表的(de)關于(yú)事物的(de)知識采取行動,而(ér)這(zhè)些行動又受制于(yú)業務規則。成功的(de)商業行爲(wéi / wèi)取決于(yú)有效的(de)整合,這(zhè)些基本的(de)相互關系必須考慮在(zài)内。而(ér)當整個(gè)有機體發生任何一(yī / yì /yí)個(gè)局部變化的(de)時(shí)候,傳統系統設計中那個(gè)最初的(de)也(yě)是(shì)最爲(wéi / wèi)根本的(de)基礎業務需求就(jiù)會出(chū)現變化,如果按照傳統的(de)設計理念來(lái)應對這(zhè)些變化,那幾乎就(jiù)是(shì)每一(yī / yì /yí)次的(de)推倒重來(lái),這(zhè)顯然是(shì)不(bù)可想象且難以(yǐ)接受的(de)。
可組合的(de)業務(Business Composability)已經被Gartner倡導認爲(wéi / wèi)是(shì)應對業務創新中不(bù)确定性的(de)最佳策略和(hé / huò)方法,其核心思想是(shì)将具備業務共性的(de)元素沉澱形成組件化、模塊化,以(yǐ)便快速的(de)搭建新的(de)應用。Gartner副總裁兼分析師陳勇指出(chū),一(yī / yì /yí)方面,企業需要(yào / yāo)有一(yī / yì /yí)個(gè)方式來(lái)應對環境的(de)不(bù)确定性;另一(yī / yì /yí)方面,企業也(yě)需要(yào / yāo)把其業務做到(dào)更加敏捷。
同時(shí),Gartner認爲(wéi / wèi)可組合業務由組合式思維、可組合的(de)業務架構和(hé / huò)可組合技術三個(gè)部分組成。
可組合的(de)思維,是(shì)最上(shàng)面的(de)一(yī / yì /yí)層。Gartner副總裁分析師Monika Sinha強調:“傳統業務思維将變化視爲(wéi / wèi)一(yī / yì /yí)種風險,而(ér)可組合性思維能夠駕馭加速變化的(de)風險,并且創造出(chū)新的(de)業務價值。”數字化時(shí)代,企業架構需要(yào / yāo)爲(wéi / wèi)不(bù)确定性和(hé / huò)持續的(de)變化而(ér)設計。可組合的(de)企業架構不(bù)是(shì)爲(wéi / wèi)了(le/liǎo)效率而(ér)優化,而(ér)是(shì)爲(wéi / wèi)适應而(ér)優化。企業在(zài)設計業務的(de)時(shí)候,從理念上(shàng)面來(lái)講,就(jiù)要(yào / yāo)考慮把這(zhè)個(gè)業務設計成爲(wéi / wèi)一(yī / yì /yí)個(gè)可組合的(de),便于(yú)未來(lái)重新組裝,也(yě)可稱爲(wéi / wèi)“模塊内部緊耦合、模塊之(zhī)間松耦合”,也(yě)就(jiù)是(shì)說(shuō),模塊和(hé / huò)模塊之(zhī)間耦合的(de)關系是(shì)松散的(de),這(zhè)樣更便于(yú)拆開來(lái);而(ér)模塊内部耦合是(shì)比較緊的(de)、形成一(yī / yì /yí)塊積木。具備可組合性思維的(de)企業機構,其領導者往往鼓勵創建并重複使用模塊化的(de)業務能力和(hé / huò)技術,指導企業機構應對不(bù)确定性和(hé / huò)把握機遇的(de)思維方式。
可組合的(de)業務架構可确保組織具有靈活性和(hé / huò)彈性。組合能力相對較高的(de)企業,往往通過多種不(bù)同的(de)方式組合能力、産品和(hé / huò)服務等業務要(yào / yāo)素,從而(ér)創造出(chū)新的(de)價值。
可組合的(de)技術,是(shì)采用一(yī / yì /yí)些适合變化的(de)敏捷方法論,比較典型适配的(de)就(jiù)是(shì)低代碼。可組合技術可以(yǐ)理解爲(wéi / wèi)業務需要(yào / yāo)依靠技術運行,而(ér)技術本身必須具備組合能力才能運行可組合的(de)業務。爲(wéi / wèi)此,企業機構需要(yào / yāo)将組合能力延伸至整個(gè)技術棧,構建可快速便捷整合的(de)系統和(hé / huò)數據,通過使用API、微服務和(hé / huò)其他(tā)模塊化組件,可将技術能力生成工作進行模塊化和(hé / huò)自動化處理。
于(yú)是(shì),你會發現,低代碼是(shì)天然匹配這(zhè)三個(gè)“可組合的(de)思維”、“可組合的(de)業務架構”和(hé / huò)“可組合的(de)技術”的(de)核心訴求!
當然,這(zhè)種可組合的(de)業務或者說(shuō)業務組件也(yě)不(bù)是(shì)僅靠低代碼就(jiù)可以(yǐ)實現的(de),低代碼在(zài)這(zhè)其中僅僅扮演了(le/liǎo)最後封裝的(de)那個(gè)角色,實現可以(yǐ)全面支撐敏捷高效的(de)另外一(yī / yì /yí)個(gè)條件就(jiù)是(shì)領域建模。所以(yǐ)這(zhè)裏所說(shuō)的(de)低代碼顯然不(bù)是(shì)局限于(yú)二維表單的(de),而(ér)是(shì)面向領域建模的(de)以(yǐ)模型驅動爲(wéi / wèi)核心的(de)低代碼技術!因爲(wéi / wèi),隻有領域驅動設計的(de)領域建模才有可能滿足複雜業務場景!
“Domain-Driven Design領域驅動設計”簡稱DDD,是(shì)一(yī / yì /yí)套綜合軟件系統分析和(hé / huò)設計的(de)面向對象建模方法,某種程度上(shàng)可以(yǐ)理解爲(wéi / wèi)這(zhè)是(shì)一(yī / yì /yí)種具有颠覆意義的(de)設計思想。過去系統分析和(hé / huò)系統設計都是(shì)分離的(de),這(zhè)樣割裂的(de)結果導緻需求分析的(de)結果無法直接進行設計編程,而(ér)能夠進行編程運行的(de)代碼卻扭曲需求,導緻客戶運行軟件後才發現很多功能不(bù)是(shì)自己想要(yào / yāo)的(de),而(ér)且軟件不(bù)能快速跟随需求變化。
DDD則打破了(le/liǎo)這(zhè)種隔閡,提出(chū)了(le/liǎo)領域模型概念,統一(yī / yì /yí)了(le/liǎo)分析和(hé / huò)設計編程,使得軟件能夠更靈活快速跟随需求變化。DDD其實是(shì)研究将包含業務邏輯的(de)語句統一(yī / yì /yí)在(zài)對象建模的(de)學問,包括業務流程、業務規則、規則引擎、術語字典、DSL或正則表達式、商業智能和(hé / huò)數據分析等都屬于(yú)業務邏輯的(de)範疇領域。DDD革命性在(zài)于(yú):領域模型準确反映了(le/liǎo)業務語言,接觸到(dào)需求第一(yī / yì /yí)步就(jiù)是(shì)考慮領域模型,而(ér)不(bù)是(shì)将其切割成數據和(hé / huò)行爲(wéi / wèi),然後數據用數據庫實現,行爲(wéi / wèi)使用服務實現,最後造成需求的(de)首肢分離。DDD讓你首先考慮的(de)是(shì)業務語言,而(ér)不(bù)是(shì)數據,重點不(bù)同導緻編程世界觀不(bù)同,甚至可以(yǐ)擺脫數據庫設計中三範式模式的(de)局限性。
DDD是(shì)解決複雜場景中大(dà)型軟件的(de)一(yī / yì /yí)套行之(zhī)有效方式,在(zài)國(guó)外已經成爲(wéi / wèi)主流。DDD認爲(wéi / wèi)很多原因造成軟件的(de)複雜性,我們不(bù)可能避免這(zhè)些複雜性,能做的(de)是(shì)對複雜的(de)問題進行控制。而(ér)一(yī / yì /yí)個(gè)好的(de)領域模型是(shì)控制複雜問題的(de)關鍵。如下圖所示,領域模型的(de)價值在(zài)于(yú)提供一(yī / yì /yí)種通用的(de)可視化語言,使得領域專家、産品經理和(hé / huò)軟件技術人(rén)員聯系在(zài)一(yī / yì /yí)起,溝通無歧義。
當然,領域模型的(de)核心基礎在(zài)于(yú)對象建模,由對象組裝業務域,對象内的(de)各個(gè)邏輯要(yào / yāo)素緊耦合,而(ér)對象之(zhī)間或者域和(hé / huò)域之(zhī)間松耦合。業務流程的(de)抽象和(hé / huò)業務功能的(de)拆分針對領域模型爲(wéi / wèi)核心的(de)驅動設計以(yǐ)及服務化(微服務)在(zài)平台功能抽象拆分提供了(le/liǎo)相對值得借鑒的(de)思路,催化了(le/liǎo)以(yǐ)業務功能細分作爲(wéi / wèi)域劃分的(de)依據的(de)組件化方案,主要(yào / yāo)訴求是(shì)在(zài)細分的(de)業務功能組件服務基礎上(shàng),能按需快速靈活的(de)組合,從而(ér)支撐不(bù)同的(de)業務模式,提供業務敏捷性,支撐業務創新求變。
由此可見,新一(yī / yì /yí)代的(de)應用建設必然趨勢在(zài)于(yú)通過低代碼對業務元素做對象建模并封裝,基于(yú)業務規則和(hé / huò)業務邏輯組建業務域,這(zhè)在(zài)保證敏捷開發的(de)同時(shí)也(yě)對靈活多變的(de)業務創新帶來(lái)了(le/liǎo)高效的(de)支撐,正是(shì)所謂的(de)新應用架構的(de)“三駕馬車”。
上(shàng)一(yī / yì /yí)篇:ClickPaaS榮膺2022年“創客中國(guó)”長三角數字幹線專業賽二等獎
下一(yī / yì /yí)篇:低代碼平台包羅萬象,企業應該如何做出(chū)抉擇?