簡化 Go 開發:使用強大的工具提高生產力

Seal軟體發表於2023-09-27

作為 Go 開發人員,應該都知道維持簡潔高效開發工作流程的重要性。為了提高工作效率和程式碼質量,簡化開發流程並自動執行重複性任務至關重要。在本文中,我們將探討一些強大的工具和技術,它們將簡化 Go 開發過程,助力您的編碼之旅。
 

Cookiecutter:使用一致的模板快速啟動專案

問題描述

從頭開始建立新的 Go 專案通常涉及設定標準專案結構和配置基本檔案。此過程可能非常耗時且容易出錯。Cookiecutter 透過允許您建立預先配置了所需專案結構、依賴項和設定的專案模板來提供幫助
 

要開始使用 Cookiecutter,首先,需要將其安裝在您的系統上:

pip install cookiecutter

 

接下來,在 GitHub 上找到合適的 Go 專案模板或建立自己的模板。例如,您可以使用社群建立的自定義 Cookiecutter Go 模板,該模板提供了基本的 Go 專案結構:

cookiecutter https://github.com/your-username/golang-cookiecutter

 

Cookiecutter 將提示您輸入一些特定於專案的詳細資訊,例如專案名稱、作者和儲存庫名稱。提供資訊後,它將建立一個具有所需結構和設定的新專案目錄。
 

自定義模板允許您根據您的特定需求和偏好對其進行定製,從而確保整個團隊的專案設定一致。
 

Air:即時重灌,高效開發

每次更改後等待程式碼編譯和執行可能會減慢您的開發過程。Air 是一款很棒的工具,它提供實時重新載入,讓您可以立即看到對 Go 程式碼所做的更改
 

要安裝 Air,您可以使用go get

go get -u github.com/cosmtrek/air

 

安裝後,在專案目錄中建立一個 air.toml 配置檔案以指定設定。下面是一個air.toml基本示例:

# air.toml
root = "."
tmp_dir = "tmp"
build_dir = "tmp/build"
log_dir = "tmp/log"
app_port = 8080

 

現在,您可以在專案目錄中執行 Air

air

 

Air 將監測 Go 檔案中的任何更改,並在您儲存檔案時自動重建和重新啟動應用程式。這種即時迴圈反饋可顯著加快開發迭代並提高生產力。
 

Pre-commit Hooks:強制執行程式碼質量

保持程式碼質量對於任何專案都是必不可少的。Pre-commit Hooks 是在每次提交之前執行的指令碼,確保您的程式碼在提交到儲存庫之前滿足特定條件。常見檢查包括程式碼格式設定、檢查和執行測試
 

要使用 Pre-commit Hooks,您需要在系統上安裝 Python 和 Git。首先,使用 pip 安裝預提交包:

pip install pre-commit

 

接下來,將檔案新增.pre-commit-config.yaml到儲存庫的根目錄,以指定要執行的 Pre-commit Hooks:

# .pre-commit-config.yaml
repos:
  - repo: https://github.com/golangci/golangci-lint
    rev: v1.41.1
    hooks:
      - id: golangci-lint

 

在這個例子中,我們使用 golangci-lint hooks 對我們的 Go 檔案執行程式碼檢查。
 

設定配置後,執行以下命令以安裝 Pre-commit Hooks:

pre-commit install

 

現在,每次您嘗試提交更改時,Pre-commit Hooks 都會自動執行,檢查程式碼中的任何問題。如果發現任何問題,提交將中止,直到問題得到解決。
 

自定義 Pre-commit Hooks 儲存庫:跨專案共享和重用 Hooks

雖然 Pre-commit Hooks 提供了開箱即用的檢查,但您可能希望新增特定於專案的自定義檢查。要在多個專案之間共享和重用自定義 Hook,您可以建立一個集中的 Pre-commit Hooks 儲存庫。
 

首先,建立一個新的 Git 儲存庫來儲存自定義 Hook。在此儲存庫中,您可以新增您喜歡的任何語言編寫的自定義 Hook 指令碼。例如,您可以編寫一個簡單的 bash 指令碼來檢查專案中的特定條件。
 

準備好自定義 Hook 後,將儲存庫新增到專案.pre-commit-config.yaml

# .pre-commit-config.yaml
repos:
  - repo: https://github.com/your-username/custom-pre-commit-hooks
    rev: v1.0.0
    hooks:
      - id: custom-hook

 

現在,當執行pre-commit install時,它將從指定的儲存庫中獲取自定義 Hook,並將其包含在您的提交前檢查中。
 

基於 CLI 的開發:使用自定義命令列介面自動執行任務

命令列介面 (CLI) 是用於自動執行任務和管理複雜專案的強大工具。Cobra 是一個流行的 Go 庫,可幫助您輕鬆構建強大的互動式 CLI。
 

要安裝 Cobra CLI,請執行:

go install github.com/spf13/cobra-cli@latest

 

安裝後,可以使用 Cobra CLI 生成 Cobra 應用程式和命令檔案。它簡化了搭建應用程式基架的過程,使將 Cobra 合併到 Go 專案中變得更加容易
 

要建立新的基於 Cobra 的應用程式,請執行:

cobra-cli init myapp

 

此命令將生成具有必要檔案和結構的基本 Cobra 應用程式。然後,您可以在單獨的檔案中定義命令及其相應的操作。
 

例如,要建立 print 問候訊息的新命令,可以執行:

cobra-cli add greeting

 

Cobra CLI 將建立一個具有基本命令結構的新 greeting.go 檔案。您可以自定義此檔案以實現問候命令的功能。藉助 Cobra CLI,您可以快速開發功能豐富的 CLI 應用程式,並自動執行各種任務,從而增強開發工作流程。
 

結論

簡化 Go 開發對於提高生產力和保持程式碼質量至關重要。透過整合 Cookiecutter 等工具以實現一致的專案模板、用於即時實時重新載入的 Air、用於程式碼質量檢查的 Pre-commit Hooks、用於共享和重用 Hook 的自定義 Pre-commit Hooks 儲存庫以及用於構建強大命令列介面的 Cobra CLI,您可以顯著簡化 Go 開發工作流程。
 

無論您是開始一個新專案還是最佳化現有專案,採用這些工具和技術無疑將提高開發效率,並使您的 Go 編碼之旅更加愉快。使用這些強大的工具,可以將您的 Go 專案簡單和高效提升到一個新的水平。
 

參考連結:
https://medium.com/@joloiuy/simplify-go-development-boost-your-productivity-with-powerful-tools-14ad4bc311b3

 

相關文章