增強數字化能力,是企業降本增效的好手段。本文将解析低代碼 +DDD,使軟件系統的開發更加高效,質量更加穩定,一起探讨一下對于每個企業推進數字化的進程有幫助的一些方向,一起來深入了解一下吧。
2023 年,中國的企業數字化轉型過程發生了一起裏程碑式的事件,就是華爲内部替換完全國産自主研發的 MetaERP,标識着中國企業信息化的離完全地自主可控更近一步。首先華爲從内部立項到最後推動上線的前因後果我們也不便于去過多解讀,大家隻要讀懂「企業數字化能力強,則企業強;企業強,則國強」的信号即可。
可能華爲的戰略動作不是中國萬千企業能去參考或者執行的,但是有一個點:就是增強企業的數字化能力,是降本增效的好手段,正所謂無利不起早;讓我們來探讨一下對于每個企業推進數字化的進程有幫助的一些方向。
一、ERP 是什麽?
首先我們來了解下 ERP 是個什麽東西?ERP 是企業資源計劃(Enterprise Resource Planning)的縮寫。它是一種企業管理軟件,通過整合不同部門的業務流程和信息技術,将企業的各種資源(包括人員、物質、财務資産等)有機結合起來,對企業進行全面的管理。
ERP 有以下幾個主要的功能:
可以整合企業中各個部門的業務流程和信息,降低信息孤島問題,提高信息流通度;
可以自動化業務處理流程,提高工作效率,降低人爲錯誤率;
可以實現對企業各種資源的全面監控,提高企業的運營效率和決策水平;
可以幫助企業優化資源配置,實現資源的有效利用,降低企業成本;
總之,ERP 能夠幫助企業整合管理各項業務,提高企業的管理效率和決策能力,從而提高企業的盈利能力。
二、數字化轉型需要的是「套模版」嗎?
那麽大家聽了這麽多年 ERPERPERP 的,企業資源計劃它真的需要這麽高大上嗎?再看看 CRM、OA、EAM、PLM、BI 等等各種縮寫,它們真的有那麽高大上嗎?
我們通過抽象的視角看來一下這些系統都給企業員工提供了什麽樣的直接效果,回歸到本質上來,這些各色各樣的系統本質上就是提供了讓企業的業務流程線上化的能力,讓企業戰略的規劃者可以通過不同的軟件系統來落地不同的業務流程,并起到監控調整的作用,系統做得好不好,無非是看是否足夠貼合當前業務發展,以及響應業務變化是否足夠敏捷。
過往的幾十年時間内,之所以我們的企業會主動采購國外企服巨頭的 ERP 系統,是因爲他們提供的不是一個系統,而是一個企業的經營方法論,一個把管理手段、業務流程沉澱好的系統,中國企業普遍認爲可以通過使用企服巨頭的系統得到有效的管理手段,而忘記了東施效颦的典故。
但是在當前的商業環境下,ERP 做得好不好和這個系統是哪家公司提供的,不再是強相關關系,因爲商業環境變化速度太快,企業的業務戰略規劃變化得也需要足夠快,否則就沒辦法生存下去;簡單地「套模版」已經不再适用,企業需要的數字化轉型是能高效低成本地把規劃好的業務流程落實到系統上,在推進業務落地的過程及時敏捷地調整系統。
看到這裏,需要給大家點明一個數字化轉型很關鍵的核心思想:一切的數字化軟件系統的建設都要以幫助業務流程落地爲中心。說明白點就是以業務流程驅動數字化系統的建設,不要去偷戰略性懶。
三、領域驅動設計
2023 年的時鍾往前倒撥 20 年,讓我們回到 2003 年,此時一位叫 Eric Evans 的程序員提出了 DDD(Domain-Driven Design)的概念,後來被世人熟知的 " 領域驅動設計之父 ",世界傑出軟件建模專家。Eric Evans 創建了 Domain Language 公司,緻力于幫助公司機構創建與業務緊密相關的軟件,旨在幫助開發團隊與業務團隊之間更好地協作。
領域驅動設計(DDD)是一種軟件系統的設計方法論,DDD 認爲軟件系統的核心在于業務領域。因此,系統的設計應該反映出業務領域的知識和規則,而不是純粹爲了技術而設計。軟件設計時應用領域驅動設計的方法可以幫助開發者更好地理解并實現業務的需求,進而構建出更符合實際要求的軟件系統。
領域驅動設計的優勢
在實際應用中,DDD 給企業數字化轉型帶來了很多優勢,包括:
更貼近實際業務場景:開發者可以通過深入理解業務領域以及業務規則來設計出更符合實際需求的軟件系統;
更高的軟件系統可擴展性:在 DDD 中,軟件系統的整個設計都是爲了盡可能貼近業務領域。這意味着,當業務需求發生變化時,軟件系統更容易進行相應的調整和升級,而不會像傳統的面向對象設計一樣,需要重構整個系統;
更好的軟件架構:DDD 可以幫助開發者将業務邏輯分離出來,避免将過多的業務邏輯耦合到單個方法或類中,這有助于更好地分離關注點,并要求開發人員思考如何更好地分離不同的領域概念;
四、低代碼開發
低代碼開發是一種通過可視化圖形化手段進行軟件開發的模式,将複雜的業務流程開發過程轉換爲用戶友好的界面,讓非專業人士也能快速構建出自己的軟件系統。
低代碼平台可以自動生成代碼,并提供自定義軟件組件和模塊的能力,使普通用戶可以通過可視化接口進行自定義構建。這種方法省去了大量的手工編程工作,提高了軟件開發的效率。
簡單點說:就是通過可視化手段降低了軟件開發的門檻和提升了部分效率。
低代碼開發的優勢
低代碼的優勢則在于:
提高了軟件開發的效率。低代碼允許非專業人士也能快速構建出自己的軟件系統。這種方法省去了大量的手工編程工作,提高了軟件開發的效率;
更快的叠代周期。低代碼平台允許用戶随時修改和重新調整軟件組件和模塊,讓開發叠代更快,加快企業業務轉型;
更易于維護和升級。低代碼平台可以自動生成代碼,将複雜的業務需求歸納爲更簡單的模塊,并在需要更新或升級時輕松升級整個系統;
随着近幾年來低代碼開發技術的蓬勃發展,通過可視化建模與組合的手段提高了軟件開發的效率,成爲了 DDD 在軟件開發中的可能落地手段。那麽 DDD 如何結合低代碼開發模式,在軟件開發中實現更高效、敏捷、低成本的實施效果呢?讓我們進入暢想時刻!
五、DDD 如何結合低代碼技術?
在企業數字化轉型的過程中,DDD 與低代碼開發的結合可以極大地提高軟件開發效率和質量,将複雜的業務需求轉化爲可控的可視化系統。那麽,在低代碼開發過程中,DDD 可以如何應用到實際的項目中呢?
制定完整的領域模型和邊界:在設計一款軟件之前,需要對該系統将涉及的領域和業務邏輯進行詳細的分析和規劃。根據領域模型的特點和領域邏輯進行拆解,構建出完整的領域模型和邊界。這樣做可以減少開發範圍,在可視化界面中簡單操作,快速應對版本叠代。
設計與實現領域模型:設計領域模型時需要考慮包括領域事實和規則在内的各種因素,以及何時和如何将它們映射到軟件系統中的代碼。在低代碼開發中,用戶可以通過可視化界面進行業務需求的模拟和實現,爲後續代碼生成提供規範和數據。
嚴格維護領域模型:領域模型應該是完全與業務邏輯相關的模型,需要與實驗室環境以及運維、測試等部門溝通,應用價值要經過實踐考核。用戶以一種更接近實際邏輯的方式來處理業務,因此領域驅動設計在低代碼開發中更加重要。
關鍵動作 1:可視化領域建模
這裏需要借用 DDD 的一個老圖通俗易懂地解釋下「領域建模」,我用的這個圖出自 ThoughtWorks 的《企業架構白皮書》,隻因爲它畫得比較好看哈哈,具體内容建議大家自行問問 GPT 讓它解答一下,需要深刻了解建議還是去研讀 DDD 的相關書籍!
那麽這就是可視化領域建模了嗎?是但是又不完全是,這是在紙上把企業内部的業務領域劃分了一遍,最後還是得體現在系統架構上,甚至是系統功能上。我們把業務領域建模也當成一個業務流程,再套用回前文的思想,我們也需要圍繞了業務領域建模這個業務流程來建設能力,隻是恰好這個系統能力是用于領域建模的,這種能力才是我所說的「可視化領域建模」,也是 DDD 思想在低代碼開發中的第一大重要體現;具體的表現形式我不放圖到本文中,有興趣可以去各大低代碼開發平台參考,但是我更希望有高手可以不受現有模式的影響,創造出更好用的模式,我補充幾點它應該有的特征:
提供可視化建模設計,基于元數據模型的建模與管理,通過數據實體、屬性、關系等元數據配置響應業務需求變化,除了快速響應業務外,還有要幫助企業内部各個業務領域統一語言,說白了就是要複用,尤其是通用業務領域的複用,比如說人力資源領域的人崗架屬性;
領域模型的可注冊性,因爲不見得一個企業的全部系統都是從低代碼開發平台上長出來的,所以必定存在部分系統完全和低代碼開發無關,但是這部分系統背後的領域模型仍然需要注冊到平台上來,通過可視化建模手段一并管理,這樣才方便統一調用,也能通過注冊這個過程重新梳理業務模型的合理性,是一個審視的過程;
支持多種模型類型:支持多種模型類型,如實體關系模型、流程模型和決策表模型等,能夠适應不同的應用場景;
提供版本控制管理功能,能夠實現對模型的版本控制及版本回溯,方便項目的管理和維護;
關鍵動作 2:領域模型組件
隻有模型可視化是不能幫助企業進行數字化轉型的,最終還是得落實到系統上來,落實到企業員工實實在在操作的界面上來,如果員工無法完全在線上的系統完成他的日常業務流程,那這可不能稱之爲數字化轉型,很有可能都比不上員工直接發郵件 +excel 表格來得高效。
那麽企業員工每一分鍾實實在在操作的界面是什麽?是由一個個前端組件組成的界面,員工在界面上執行的是企業的業務流程,所以,界面上的組件是需要能直接反映業務流程的,這是就需要業務模型驅動界面設計,領域模型組件由此誕生。
這裏舉一個簡單的例子,一個選擇員工的場景,它可能是人事部門在執行組織架構調整的業務流程,也可能是個人審批流程抄送關聯部門特定崗位成員的業務流程,還可能是供應鏈部門分配跟單人員的業務流程。
但是不管他是什麽業務流程,裏面的某個業務動作就是「選擇員工」,背後的模型就是「員工模型」。員工在界面上使用的很具體的一個選擇員工的選擇器,它就可以是一個通過對「員工模型」封裝以及對業務流程抽象後可配置的領域模型組件,企業在數字化轉型的過程中就可以通過這樣的領域模型組件來快速構建業務流程,即幫助了各個業務部門統一數據,也提升了系統建設的效率。
結論
領域驅動設計(DDD)是一項非常有價值的軟件設計方法,因爲它讓系統建設者天然地關注業務流程,以業務流程爲中心,能讓開發者都能深度了解業務的企業,數字化轉型能差到哪裏去呢,企業發展又會差到哪裏去呢?
在低代碼開發中,了解 DDD 的核心概念,以及掌握如何應用 DDD,可以更好地了解 DDD 在低代碼開發中的意義和應用。
低代碼開發平台的普及爲 DDD 在軟件設計與開發中增添了一個全新的動力,同時也降低了越來越多的企業及開發者将其應用于企業架構建設與軟件設計,使軟件系統的開發更加高效,質量更加穩定。
DDD 與低代碼技術結合,爲軟件設計與開發提供了更大的空間和創新,使軟件系統的開發更加高效,質量更加穩定。
本文由 @陳起 gogogo 原創發布于人人都是産品經理。未經許可,禁止轉載
題圖來自 Unsplash,基于 CC0 協議。