你應(yīng)該知道的 17 個 Golang 包

涵蓋各種用例的有用 Go 包的精選列表

隨著時間的推移,語言愛好者已經(jīng)構(gòu)建和共享了許多 Go 框架和庫。

這些包執(zhí)行不同的功能,從開發(fā)微服務(wù)到制作 discord 機器人,一直到構(gòu)建 Web 應(yīng)用程序!

在本文中,我將嘗試讓您熟悉一些有用的方法,這些方法是我在使用這種有趣的編程語言學(xué)習(xí)和構(gòu)建應(yīng)用程序時發(fā)現(xiàn)的。

注意:這絕不是一個詳盡的列表,而是一個我喜歡并認為有趣的軟件包列表,可以嘗試并希望與世界分享。:)

事不宜遲,讓我們開始探索一些新的軟件包:

靜態(tài)網(wǎng)站生成

對于通常用于構(gòu)建后端 API 和微服務(wù)的編程語言來說,這是一個相對較新的領(lǐng)域,因此有點新鮮感迫在眉睫。

  1. Hugo:一個很棒的包,可以讓你在沒有后端互連的情況下構(gòu)建靜態(tài)網(wǎng)站,全部用 Go 編寫。

它還號稱是同類中最快的靜態(tài) Web 框架,每頁加載時間<1 毫秒,平均網(wǎng)站構(gòu)建時間不到一秒。

它旨在適用于任何類型的網(wǎng)站,包括博客和托管文檔。最棒的是,您也可以在GitHub 頁面上免費托管您的靜態(tài)網(wǎng)站!

安裝 Hugo 包可以通過常規(guī)的自制軟件安裝、 Docker甚至命令來完成go install。

處理配置文件

配置文件通常以各種格式編寫,例如 JSON 和 YAML。Go 有一個非常有用的包,可以讓讀寫各種配置文件格式變得輕而易舉。

  1. Viper:這是一個完整的 Go 應(yīng)用程序配置解決方案,包括 12-Factor 應(yīng)用程序。它專為在應(yīng)用程序中工作而設(shè)計,可以處理所有類型的配置需求和格式。

該軟件包的一些巧妙功能包括:

  • 從 JSON、TOML、YAML、HCL、.env 和 Java 屬性配置格式中讀取
  • 實時觀看和重讀配置文件
  • 從環(huán)境變量中讀取

命令行接口程序

對于構(gòu)建 CLI 應(yīng)用程序,Go 有一個很棒的庫,讓這一切變得輕而易舉。

  1. Cobra:一個強大的庫,用于創(chuàng)建基于 Go 的 CLI 應(yīng)用程序。

該框架的一些重要功能包括:

  • 它與配置文件的 Viper 庫有強大的集成
  • 它支持常規(guī)子命令、嵌套子命令,并有助于對相似命令進行分組
  • 完全符合 POSIX 標準的標志(包括短版和長版)

環(huán)境變量

Go 有許多軟件包可以更輕松地讀取存儲各種被視為應(yīng)用程序機密的.env文件。

其中有一個這樣開源倉庫是:

  1. GoDotEnv:它擁有從文件中讀取變量的最簡單的設(shè)置和用法.env,并且使用起來也非常輕巧。

構(gòu)建自動化

旨在通過簡單、簡潔的命令幫助執(zhí)行任務(wù)的自動化工具。

您可能已經(jīng)知道的一種流行工具是Make命令,它可以幫助我們使用Makefiles的任務(wù)自動化。一個好的開發(fā)實踐是在 Makefile 中保留要執(zhí)行的命令列表,我們可以在以后輕松引用并使用簡單的 make 命令執(zhí)行。

  1. 任務(wù):這個庫擁有更多的冗長性,因此執(zhí)行命令的可解釋性略好于 Make。它也沒有依賴性,相比之下非常輕量級。

主動編譯(熱加載)

  1. Air:這是一個很棒的實用程序Go包,可以幫助重建和執(zhí)行項目的main.go。自動編譯幾乎任何文件(如我們所愿),而無需我們每次都run來運行它。

Web開發(fā)

以下是定期維護的前兩個 Web 框架:

  1. Gin Web Framework:這是最流行的 Go 網(wǎng)絡(luò)開發(fā)庫,并且有很多充分的理由。

  2. Iris Web Framework:這也是在 Go 中構(gòu)建高性能 Web 應(yīng)用程序和 API 的另一種選擇。如果你以前使用過ExpressJS,你會覺得有點熟悉。

日期時間管理

  1. Carbon:這是一個很棒的輕量級、易于使用且語義智能的日期時間庫,適用于 Go 開發(fā)人員。

數(shù)據(jù)庫對象關(guān)系管理

  1. Gorm:這是最容易使用的對象關(guān)系映射 (ORM) Go 庫,我有幸使用過三種主要的數(shù)據(jù)庫 SQLite、PostgreSQL 和 MySQL。

微服務(wù)

微服務(wù)通常用于帶有 Docker 和 Kubernetes 的容器化架構(gòu),以構(gòu)建健壯的應(yīng)用程序。以下是幾個 Go 微服務(wù)包:

  1. Echo:該框架支持RESTful API設(shè)計,是最流行的 Go 微服務(wù)框架。

  2. go-micro:這個庫是同一領(lǐng)域的另一個很好的選擇,具有內(nèi)置的身份驗證和數(shù)據(jù)存儲設(shè)計。確實很方便。

Discord 機器人

  1. DiscordGo:這是 Discord API 函數(shù)最有用的 API 包裝器,具有出色的模塊化結(jié)構(gòu),包含您可能需要的所有主要 discord 機器人操作。

網(wǎng)頁抓取

  1. Colly:這是一個很棒的 Go 網(wǎng)絡(luò)抓取器和爬蟲框架,特別適用于歸檔和數(shù)據(jù)挖掘目的。

雜項提及

  1. Go-redis:這是一個很棒的、高度維護的用于 Go 的 redis 數(shù)據(jù)庫客戶端。它適用于 redis 6 和 7,并且設(shè)置過程非常簡單。強烈推薦。

  2. go-elasticsearch — 這是 Go 的官方 Elasticsearch 客戶端。

  3. graphql-go:這是 GraphQL 在 Go 中的實現(xiàn),支持查詢、突變和訂閱。

我希望這是對 Go 中一些倉庫的有用介紹。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容