使用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
- C# 使用Fluent API 建立自己的DSLC#API
- 使用 Fedora 31 和 Nextcloud 伺服器構建自己的雲Cloud伺服器
- Swagger 文件工具 設計、構建、文件化和使用您的 RESTful APISwaggerRESTAPI
- Kotlin實戰:使用DSL構建結構化API去掉冗餘的介面方法KotlinAPI
- 使用 Amazon Cloud WAN 構建您的全球網路Cloud
- 使用 .NET 7、Blazor 和 .NET MAUI 構建你自己的 Podcast AppBlazorUIASTAPP
- [譯] 使用 Go 和 ReactJS 構建聊天系統 (四)GoReactJS
- [譯] 使用 Go 和 ReactJS 構建聊天系統 (三)GoReactJS
- [譯] 使用 Go 和 ReactJS 構建聊天系統 (二)GoReactJS
- [譯] 使用 Go 和 ReactJS 構建聊天系統 (一)GoReactJS
- [譯] 使用 Go 和 ReactJS 構建聊天系統 (五)GoReactJS
- [譯] 使用 Go 和 ReactJS 構建聊天系統 (六)GoReactJS
- 構建自己的GAFATA
- 使用 Go 和 ReactJS 構建聊天系統(五):改善前端GoReactJS前端
- [譯] 使用 Go 和 AWS Lambda 構建無服務 APIGoAPI
- docker 構建自己的映象Docker
- 如何使用Solidity和Hardhat構建你自己的NFT以及NFT交易市場Solid
- Gradle 與 AGP 構建 API: 配置您的構建檔案GradleAPI
- 使用新 Android Gradle 外掛加速您的應用構建AndroidGradle
- 使用 Mux, Go, PostgreSQL, GORM 構建 APIUXGoSQLORMAPI
- 構建自己的React UI元件庫: 構建首頁ReactUI元件
- 構建自己的postgresql rpm包SQL
- 使用 Go 和 ReactJS 構建聊天系統(六):Docker 化後端GoReactJSDocker後端
- 使用 Go-Spring 構建最小 Web APIGoSpringWebAPI
- php-構建自己的composer包PHP
- 構建自己的React:(4)Components and StateReact
- 構建自己的知識體系
- 使用Go構建區塊鏈 第3部分:持久化和cliGo區塊鏈持久化
- 1. 構建您的第一個應用
- Vue秩序白銀 —構建自己的VuexVue
- 如何構建自己的知識體系
- 構建自己的簡單微服務架構(開源)微服務架構
- 使用 Go 和 ReactJS 構建聊天系統(四):處理多個客戶端GoReactJS客戶端
- 構建自己知識體系
- 構建屬於自己的 Linux 發行版Linux
- [譯] 用不到 200 行的 GO 語言編寫您自己的區塊鏈Go區塊鏈
- 使用Golang和MongoDB構建 RESTful APIGolangMongoDBRESTAPI