BlockLang 0.3.0 發佈啦

BlockLang 官網:https://blocklang.com

Block Lang 0.3.0 引入一個新概念:組件市場。

拼裝軟件時使用的零部件統稱爲組件。所有組件在組件市場中統一管理,包括 Block Lang 的內置組件。

組件市場包含三個子概念:

  • 組件 - 是項目的最小組成單位,是業務無關、高內聚的一類通用功能;
  • API 倉庫 - 是一個 git 倉庫,存儲一組相關組件的接口規範;
  • 組件倉庫 - 是一個 git 倉庫,存儲一組相關組件的實現代碼。

API 倉庫與組件倉庫的關係:

  • 遵循接口與實現隔離,面向接口拼裝的原則;
  • API 倉庫專用於定義接口規範;
  • 組件倉庫專用於存儲實現代碼;
  • 一個組件倉庫必須實現一個 API 倉庫;
  • 一個 API 倉庫支持 N 個組件倉庫(推薦)。

在組件市場中直接發佈的對象是組件倉庫,但會發布兩個倉庫:

  1. 組件倉庫 - 下載並編譯組件倉庫
  2. API 倉庫 - 定位到組件倉庫實現的 API 倉庫,並存儲接口規範

API 倉庫

API 倉庫是一個 git 倉庫,專用於定義接口規範。參見 API 倉庫示例,定義了一套 UI 部件的接口規範。

注意,git 倉庫可以託管在 github碼雲或者部署在局域網內的 gitlab 等源代碼託管軟件上。

API 倉庫描述文件

在 API 倉庫根目錄下定義一個名爲 api.json 的描述文件,見下圖

API 倉庫

api.json 中包含倉庫的名稱(name)、版本號(version)、友好的顯示名(displayName)、倉庫的詳細說明(description)、部件分類(category) 和定義的組件列表(components)等信息,見下圖

API 倉庫描述文件

API 變更文件

在 API 倉庫中定義的不是 API 快照,而是借鑑 liquibase 中的 changelog 概念,用增量的形式記錄 API 的每一次變更。

約定一個 changelog 文件對應一個版本(即 git 中的一個 tag)。如在 0.1.0 版本中 text-input API 的變更都存在 0_1_0.json 文件中。見下圖

API 倉庫 Change Log 文件

一個 Change Log 文件中包含一到多個變化,在 Block Lang 0.3.0 版本中僅支持 newWidget 操作(變化),下圖展示了新增 TextInput 部件的 API 變更說明片段。

API 倉庫 Change Log 變更說明

組件倉庫

組件倉庫是一個 git 倉庫,專用於存儲實現代碼。參見 組件倉庫示例,使用 dojo 和 bootstrap 實現的 UI 部件,實現了 API 倉庫示例

組件倉庫描述文件

在組件倉庫的根目錄下定義一個名爲 component.json 的描述文件,見下圖

組件倉庫

component.json 中包含倉庫的名稱(name)、版本號(version)、友好的顯示名(displayName)、倉庫的詳細說明(description)、部件分類(category)、使用的編程語言(language)和定義的組件列表(components)等信息,還包括一個 api 屬性,它用於指定本倉庫實現的 API 倉庫的地址和版本號。

組件倉庫描述文件

實現代碼

在架構的設計上,是完全支持任何一門編程語言的。但截止 0.3.0 版本,重點支持用 TypeScript 語言和 Dojo 框架編寫前端實現;用 Java 語言和 Spring boot 框架編寫後端實現。

以下是用 TypeScript 語言和 Dojo 框架實現的 TextInput 部件,代碼存在 index.ts 文件中

組件倉庫代碼文件

發佈組件倉庫

當在源代碼託管平臺(如 github)上發佈完 API 倉庫和組件倉庫後,就可在 Block Lang 的組件市場中發佈組件倉庫,以供 Block Lang 中的項目使用。

  1. 在網頁的菜單欄左側點擊【市場】超鏈接,會跳轉到全局的【組件市場】頁面

    全局組件市場入口

  2. 點擊全局【組件市場】頁面右上角的【發佈組件】按鈕,會跳轉到用戶級別的【組件市場】頁面

    用戶級組件市場入口

  3. 填寫組件倉庫的 HTTPS 地址,然後點擊【發佈】按鈕,開始發佈後會跳轉到【發佈日誌】頁面

    啓動發佈

  4. 在【發佈日誌】頁面,會顯示詳細的發佈日誌,可通過發佈日誌定位發佈錯誤的原因

    發佈日誌

  5. 發佈成功後,可在【我的組件市場】和【公共組件市場】看到已發佈的組件

    我發佈的組件

    所有發佈的組件

  6. 完成。

組件庫發佈完成後,可在 Block Lang 項目中使用組件庫。

在項目中使用組件倉庫

在 Block Lang 項目的根目錄添加一個名爲 dependence.json 文件,其中配置項目依賴的組件倉庫。該功能將在 0.4.0 版本中實現。

社區

一如既往的誠邀志同道合的編程手藝人加入(QQ羣 619312757),共建 Block Lang 軟件研發社區。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章