使用Go和HCL構建您自己的DSL
DSL 代表領域特定語言。
Kubernetes、Docker compose、Jenkins CI、Gitlab CI 或 Ansible 等工具的主要目標是可以通過配置自定義它們的行為。它們就像一個黑匣子,根據輸入(YAML/JSON 描述符)會產生不同的輸出。
HCL 代表 HashiCorp 配置語言,它比 JSON 或 YAML 更強大,因為它提供了機制。實現動態配置檔案,我們稍後會看到。HCL 的一些優點列舉如下:
- 即使對於非技術人員來說,它也很容易閱讀(和編寫)。
- 正如我們將要做的那樣,實現自定義 DSL 並不是火箭科學,因為解析、驗證和很多東西都是開箱即用的。
- 已經提供了一堆現有的功能。
- 像 HashiCorp 這樣的知名公司參與了這個專案,Terraform、Nomad 和 Vault 等偉大的產品都使用了 HCL。這意味著 Ops 社群習慣於使用這種語法。
另一方面,要實現基於 HCL 的自定義 DSL,您將需要了解 Go。
詳細點選原文
相關文章
- 構建Recyclerview DSLView
- 使用kotlin寫自己的dslKotlin
- C# 使用Fluent API 建立自己的DSLC#API
- 在 Oracle Enterprise Linux 和 iSCSI 上構建您自己的 Oracle RAC 叢集OracleLinux
- 在Oracle Enterprise Linux 和 iSCSI 上構建您自己的 Oracle RAC 叢集OracleLinux
- 使用 Amazon Cloud WAN 構建您的全球網路Cloud
- 在 Oracle Enterprise Linux 和 iSCSI 上構建您自己的 Oracle RAC 叢集(1)OracleLinux
- 在 Oracle Enterprise Linux 和 iSCSI 上構建您自己的 Oracle RAC 叢集(6)OracleLinux
- 在 Oracle Enterprise Linux 和 iSCSI 上構建您自己的 Oracle RAC 叢集(7)OracleLinux
- 在 Oracle Enterprise Linux 和 iSCSI 上構建您自己的 Oracle RAC 叢集(8)OracleLinux
- 在 Oracle Enterprise Linux 和 iSCSI 上構建您自己的 Oracle RAC 叢集(10)OracleLinux
- 在 Oracle Enterprise Linux 和 iSCSI 上構建您自己的 Oracle RAC 叢集(11)OracleLinux
- 使用 .NET 7、Blazor 和 .NET MAUI 構建你自己的 Podcast AppBlazorUIASTAPP
- Kotlin實戰:使用DSL構建結構化API去掉冗餘的介面方法KotlinAPI
- Swagger 文件工具 設計、構建、文件化和使用您的 RESTful APISwaggerRESTAPI
- [譯] 使用 Go 和 ReactJS 構建聊天系統 (四)GoReactJS
- [譯] 使用 Go 和 ReactJS 構建聊天系統 (三)GoReactJS
- [譯] 使用 Go 和 ReactJS 構建聊天系統 (二)GoReactJS
- [譯] 使用 Go 和 ReactJS 構建聊天系統 (一)GoReactJS
- [譯] 使用 Go 和 ReactJS 構建聊天系統 (五)GoReactJS
- [譯] 使用 Go 和 ReactJS 構建聊天系統 (六)GoReactJS
- [譯] 使用 Go 和 AWS Lambda 構建無服務 APIGoAPI
- 使用 Fedora 31 和 Nextcloud 伺服器構建自己的雲Cloud伺服器
- 在 Oracle Enterprise Linux 和 iSCSI 上構建您自己的 Oracle RAC 11g 叢集OracleLinux
- 構建自己的 PHP 框架PHP框架
- docker 構建自己的映象Docker
- 構建自己的AngularJS(1):Scope和DigestAngularJS
- 使用 Mux, Go, PostgreSQL, GORM 構建 APIUXGoSQLORMAPI
- 使用 Go 和 ReactJS 構建聊天系統(五):改善前端GoReactJS前端
- Gradle 與 AGP 構建 API: 配置您的構建檔案GradleAPI
- 如何用Go構建GoGo
- 構建自己的React UI元件庫: 構建首頁ReactUI元件
- 【Fizzday前言】使用composer構建自己的php框架PHP框架
- 如何使用Solidity和Hardhat構建你自己的NFT以及NFT交易市場Solid
- 使用新 Android Gradle 外掛加速您的應用構建AndroidGradle
- 使用 Go 和 ReactJS 構建聊天系統(六):Docker 化後端GoReactJSDocker後端
- Vue秩序白銀 —構建自己的VuexVue
- 構建自己的postgresql rpm包SQL