在完成技術模型設計后,您將進入共享能力中心的開發階段。本文以示例項目為例,介紹如何使用BizWorks的中心應用進行共享能力中心的開發。中心應用是利用BizWorks平臺進行建模、開發、部署并運維的應用,BizWorks平臺不僅提供應用的運行時托管能力,還提供腳手架生成等能力,加快了應用開發速度。
在示例項目的應用列表頁面,您可以看到自動創建的名為示例商品中心的中心應用。
單擊應用名稱示例商品中心,默認進入該示例項目v1.0.0版本的應用概覽頁。
更多信息,請參見查看中心應用概覽信息。
按照正常流程創建中心應用時,您還需要指定對應的代碼倉庫、代碼憑證等信息。具體操作,請參見創建和管理中心應用。由于示例應用是自動生成的,因此這些過程都已經跳過。
管理模型
在示例應用中的限界上下文頁面,您可以看到示例應用的限界上下文分別已經關聯了商品上下文。
通過模型管理功能,您可以變更當前應用關聯的限界上下文以及其版本,并可在應用中繼續對模型進行調整。具體操作,請參見管理模型。
生成代碼
BizWorks為全代碼開發實現提供了代碼生成功能,會根據當前應用關聯的限界上下文和數據模型等生成對應的接口定義、接口實現、領域服務類、聚合根、值對象、實體類、數據對象類、數據ORM以及常用的操作,包括增、刪、改、查等相關操作代碼,以完成業務活動的開發。
在示例應用中,需要您完成代碼生成階段的操作,才能繼續體驗后續的操作。
在示例應用(示例商品中心)的代碼生成頁面,單擊代碼生成。在代碼生成面板中所有的必配項都已經默認配置就緒,您可以直接單擊生成代碼。
示例應用的代碼生成配置,主要包括:采用新分支的方法保存生成的代碼腳手架、代碼結構默認使用二級Module、代碼中使用MyBatis作為數據ORM的技術組件。更多信息,請參見生成代碼。
在代碼生成頁面,單擊剛生成的代碼分支名稱右側操作列下的下載代碼。將生成的代碼下載到本地,解壓后查看生成的代碼結構。
說明只有示例應用的代碼生成后,才為您提供下載代碼的方式進行查看。如果您使用BizWorks正常流程創建的中心應用,代碼生成后,您可以通過本地IDE打開該中心應用使用的代碼倉庫進行查看和編輯。
下載代碼并完成解壓后,您可以看到第一級對應的是限界上下文等。
進入businessdomain-commodity(商品上下文)文件夾,里面的結構是按DDD架構實踐的分層。
Module的定位主要如下:
Module
職責
說明
Entry
核心業務入口。
業務入口,當應用通過SpringCloud實現則Controller在該模塊編寫,通過Controller調用底層業務邏輯形成閉環。
App
業務調用入口。
Entry通過調用App層實現業務邏輯調用。App層需要負責調用Domain層業務邏輯,且將DTO與Domain Entity進行轉換。
Domain
領域實現層:核心業務邏輯。
Domain層主要編寫業務邏輯,業務通過建模后,業務邏輯通過Domain Entity和Domain Service來承載,因此是充血模型的方式來完成代碼開發。
當涉及對外調用時,則通過調用Domain層定義的Repository Interface來完成,而具體外部訪問的技術實現由Infrastructure實現。
Infrastructure
基礎設施層:負責技術實現,包括訪問DB、Cache、RPC、MQ等。
Domain會實現業務邏輯,而業務邏輯中涉及到技術實現的部分(例如:保存、RPC請求、MQ發送消息、緩存等)都通過Infrastructure在Repository Impl實現。
Infrastructure除了技術實現,還包括DO定義、DO與Domain Entity的互相轉換,以及集成并調用外部服務的Client。
Starter
應用啟動。
獨立應用啟動的包,方便啟動方式插拔變更。
Client
域服務接口定義。
外部應用集成的SDK,便于能力調用。在SDK中定義包括:域服務接口定義、接口入參和返回值DTO、接口返回錯誤碼定義、業務自定義異常定義等。
ExtensionPoint
負責擴展點接口定義。
外部應用集成SDK,便于根據擴展點定義實現自定義擴展點業務邏輯。
掃描代碼與合并模型
在使用BizWorks做設計開發的過程中,您可能會遇到這種場景:在生成了腳手架做開發時,卻發現需要修改模型。而此時已經生成了代碼,如果再返回去修改模型、重新生成腳手架,會打斷研發人員的工作流程,降低工作效率。因此,平臺要提供元數據和代碼雙向同步的能力,研發人員可以在開發過程中使用特定的注解實現新增、修改或刪除模型元數據,開發完成后再上報到平臺與平臺上的元數據做合并,形成最終確定的元數據。
在示例應用中,由于您沒有向您開發的代碼的提交權限,因此在示例應用中不能體驗到代碼掃描與合并的效果。您可以通過新創建一個新的中心應用來體驗。
更多信息,請參見掃描代碼與合并模型。
部署中心應用實例
在研發過程中,完成腳手架代碼的生成后,應用開發人員將進入詳細設計和編碼過程。開發人員在完成本地開發和單元調試后,需要各個模塊進行微服務的部署聯調,此時會需要將應用部署在容器環境中。
由于示例應用并不涉及到具體的編碼實現過程,因此跳過此步驟,在完成代碼生成后,您可以直接進入到開發環境的打包部署步驟。BizWorks默認提供了基本的CICD過程,也支持與三方DevOps產品進行集成對接。本文在示例應用中重點演示如何使用內置CICD完成中心應用的部署過程。
在示例應用的應用部署頁面,您可以看到已經自動為示例項目創建了兩個示例環境,環境類型分別為開發環境和生產環境。
關于如何創建和管理環境,請參見創建和管理項目環境。
單擊示例開發環境卡片,在新建實例部署 - 部署配置面板,完成代碼分支(選擇生成代碼時的代碼分支)、部署流水線(只能選擇默認流水線)、資源配置(默認不能修改)配置,單擊下一步。
在新建實例部署 - 部署配置面板,生命周期管理、環境變量、存儲、健康檢查、應用監控和標簽等都不支持配置,單擊開始部署。
說明示例項目的應用部署,在流水線選擇和實例資源配置方面都有固定限制,所以生命周期管理、環境變量和存儲等高級選項都不支持配置。
單擊正在部署應用的環境(示例開發環境)卡片,在應用部署實例面板的部署記錄區域,先找到狀態為執行中的部署記錄,再單擊其右側的日志,您能夠了解到當前部署記錄的運行情況和詳細信息。
刷新頁面,待部署狀態為部署成功后,單擊示例開發環境卡片。在應用部署實例面板,您可以查看到該環境下的應用調用域名。
在瀏覽器中直接訪問此調用域名,您可以看到Hello BizWorks的頁面(證明示例應用實例已經能夠訪問)。
說明該調用域名是激活示例項目過程中為您自動創建的域名,并自動完成了DNS配置,因此可以直接訪問。關于環境和環境上綁定的域名,請參見創建和管理項目環境。
Hello BizWorks的頁面僅在示例應用中生成的代碼中出現,用于輔助示例項目的實驗過程。您正常創建的中心應用的代碼生成中不包含此部分代碼和功能。
可選:訪問接口。將API的請求URL使用此應用實例的訪問地址補全,Request Body使用默認信息,單擊Send,您即可看到接口請求過程。具體如下圖所示:Response Status為
200 OK
,Response Body內容為JSON結構,code=200
。