<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          必須知道的 17 個Go開發(fā)庫

          共 2981字,需瀏覽 6分鐘

           ·

          2023-11-08 21:49

          包含各種使用場景的Go第三方列表。
          隨著時間的推移,Go語言愛好者已經(jīng)創(chuàng)建并共享了許多Go框架和庫。這些庫有不同的功能,從微服務(wù)開發(fā)到構(gòu)建web應(yīng)用程序!
          備注:在Go語言中我們都稱第三方庫為package(包)。

          配置文件處理庫

          配置文件通常以各種格式編寫,如JSON和YAML。Go有一個非常有用的包,它使讀取和寫入各種格式的配置文件成為小菜一碟。
          1、Viper:這是一個關(guān)于Go應(yīng)用程序配置處理的完整解決方案,包括12-Factor應(yīng)用程序。它作用在應(yīng)用程序中,可以處理所有類型的配置文件和格式。
          • 可以讀取JSON, TOML, YAML, HCL, .env, and Java properties等格式的配置文件。
          • 實時監(jiān)控和重新加載配置文件
          • 讀取環(huán)境變量
          地址:https://github.com/spf13/viper

          命令行接口

          對于構(gòu)建命令行應(yīng)用程序,Go有一個很棒的庫,使其變得輕而易舉。
          2、Cobra:一個用于創(chuàng)建基于Go的CLI應(yīng)用程序的強大庫。具備的功能有:
          • 它與Viper庫的配置文件集成了強大的功能。
          • 它支持常規(guī)子命令、嵌套子命令,并幫助對類似的命令進行分組。
          • 完全符合posix的參數(shù)(包括短和長版本)
          地址:https://github.com/spf13/cobra

          環(huán)境變量

          Go有很多包能讀.env文件,這些文件可以更容易地存儲各種應(yīng)用程序密匙。
          3、GoDotEnv:從.env文件讀取變量非常簡單,而且使用起來相當輕便。
          地址:https://github.com/joho/godotenv

          自動化構(gòu)建

          自動化工具,旨在通過簡單的命令幫助執(zhí)行任務(wù)。
          你可能已經(jīng)知道的一個流行工具是Make命令,它幫助我們使用makefile的任務(wù)自動化。一個很好的開發(fā)實踐是在Makefile中定義一個要執(zhí)行的命令列表,我們可以在后面很容易地引用它并使用簡單的make命令執(zhí)行。
          4、Task:這個庫擁有更多的詳細說明,因此,在執(zhí)行命令時比Make更好的解釋性。它也沒有依賴性,相比之下是相當輕量級的。
          地址:https://taskfile.dev/

          動態(tài)編譯

          5、Air:這是一個實用的Go庫,當你在開發(fā)Go項目的時候,每當有代碼更新,該庫能自動檢測到代碼的更新并重新編譯運行你的項目。
          地址:https://github.com/cosmtrek/air

          Web開發(fā)

          以下是兩種經(jīng)常被維護的頂級web框架:
          6、Gin web框架:這是Go最流行的web開發(fā)庫,有很多好的特性。
          地址:https://gin-gonic.com/
          7、Iris web框架:這也是在Go中構(gòu)建高性能web應(yīng)用程序和api的另一種選擇。如果你以前用過ExpressJS,你會覺得有點熟悉。
          地址:https://www.iris-go.com/

          日期管理

          8、Carbon:這是一個輕量級的、易于使用的、語義智能的日期時間庫,適用于Go開發(fā)者。
          地址:https://github.com/golang-module/carbon

          數(shù)據(jù)庫ORM

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

          微服務(wù)

          微服務(wù)通常在Docker和Kubernetes容器架構(gòu)中使用,以構(gòu)建健壯的應(yīng)用程序。下面是幾個Go微服務(wù)包:
          10、Echo:該框架支持RESTful API設(shè)計,是最流行的Go微服務(wù)框架。
          地址:https://echo.labstack.com/guide/
          11、go-micro:這個庫具有內(nèi)置的身份驗證和數(shù)據(jù)存儲設(shè)計,在同一領(lǐng)域是另一個很好的選擇。確實很方便。
          地址:https://github.com/go-micro/go-micro

          web爬蟲

          12、Colly:這是一個很棒的Go網(wǎng)頁爬蟲框架,特別適合存檔(我經(jīng)常用它)和數(shù)據(jù)挖掘。
          地址:https://github.com/gocolly/colly

          13、Retry

          用于重試邏輯和回退。它是高度可擴展的,可以完全控制重試發(fā)生的方式和時間。還可以通過實現(xiàn)backoff接口編寫自己的自定義后退函數(shù)。
          地址:https://github.com/sethvargo/go-retry

          14、endless

          golang HTTP和HTTPS服務(wù)器的零停機重啟。
          地址:https://github.com/fvbock/endless

          15、定時任務(wù)cron

          地址:https://github.com/robfig/cron

          其他:

          16、Go-Redis:這是一個很棒的、高度維護的Go redis數(shù)據(jù)庫客戶端。它與redis 6和7都兼容,并且有一個非常簡單的設(shè)置過程。強烈推薦。
          地址:https://github.com/go-redis/redis
          17、go-elasticsearch:這是官方Elasticsearch的Go客戶端。
          地址:https://github.com/elastic/go-elasticsearch


          推薦閱讀


          福利

          我為大家整理了一份從入門到進階的Go學習資料禮包,包含學習建議:入門看什么,進階看什么。關(guān)注公眾號 「polarisxu」,回復 ebook 獲取;還可以回復「進群」,和數(shù)萬 Gopher 交流學習。

          瀏覽 6780
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  爱爱视频三级 | 婷婷五月丁香综合网 | 99人妻系列 | 熟女在线视频 | 国产亲子乱婬一级A片 |