你应该知道的 17 个 Golang 包

涵盖各种用例的有用 Go 包的精选列表

随着时间的推移,语言爱好者已经构建和共享了许多 Go 框架和库。

这些包执行不同的功能,从开发微服务到制作 discord 机器人,一直到构建 Web 应用程序!

在本文中,我将尝试让您熟悉一些有用的方法,这些方法是我在使用这种有趣的编程语言学习和构建应用程序时发现的。

注意:这绝不是一个详尽的列表,而是一个我喜欢并认为有趣的软件包列表,可以尝试并希望与世界分享。:)

事不宜迟,让我们开始探索一些新的软件包:

静态网站生成

对于通常用于构建后端 API 和微服务的编程语言来说,这是一个相对较新的领域,因此有点新鲜感迫在眉睫。

  1. Hugo:一个很棒的包,可以让你在没有后端互连的情况下构建静态网站,全部用 Go 编写。

它还号称是同类中最快的静态 Web 框架,每页加载时间<1 毫秒,平均网站构建时间不到一秒。

它旨在适用于任何类型的网站,包括博客和托管文档。最棒的是,您也可以在GitHub 页面上免费托管您的静态网站!

安装 Hugo 包可以通过常规的自制软件安装、 Docker甚至命令来完成go install

处理配置文件

配置文件通常以各种格式编写,例如 JSON 和 YAML。Go 有一个非常有用的包,可以让读写各种配置文件格式变得轻而易举。

  1. Viper:这是一个完整的 Go 应用程序配置解决方案,包括 12-Factor 应用程序。它专为在应用程序中工作而设计,可以处理所有类型的配置需求和格式。

该软件包的一些巧妙功能包括:

  • 从 JSON、TOML、YAML、HCL、.env 和 Java 属性配置格式中读取
  • 实时观看和重读配置文件
  • 从环境变量中读取

命令行接口程序

对于构建 CLI 应用程序,Go 有一个很棒的库,让这一切变得轻而易举。

  1. Cobra:一个强大的库,用于创建基于 Go 的 CLI 应用程序。

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

  • 它与配置文件的 Viper 库有强大的集成
  • 它支持常规子命令、嵌套子命令,并有助于对相似命令进行分组
  • 完全符合 POSIX 标准的标志(包括短版和长版)

环境变量

Go 有许多软件包可以更轻松地读取存储各种被视为应用程序机密的.env文件。

其中有一个这样开源仓库是:

  1. GoDotEnv:它拥有从文件中读取变量的最简单的设置和用法.env,并且使用起来也非常轻巧。

构建自动化

旨在通过简单、简洁的命令帮助执行任务的自动化工具。

您可能已经知道的一种流行工具是Make命令,它可以帮助我们使用Makefiles的任务自动化。一个好的开发实践是在 Makefile 中保留要执行的命令列表,我们可以在以后轻松引用并使用简单的 make 命令执行。

  1. 任务:这个库拥有更多的冗长性,因此执行命令的可解释性略好于 Make。它也没有依赖性,相比之下非常轻量级。

主动编译(热加载)

  1. Air:这是一个很棒的实用程序Go包,可以帮助重建和执行项目的main.go。自动编译几乎任何文件(如我们所愿),而无需我们每次都run来运行它。

Web开发

以下是定期维护的前两个 Web 框架:

  1. Gin Web Framework:这是最流行的 Go 网络开发库,并且有很多充分的理由。

  2. Iris Web Framework:这也是在 Go 中构建高性能 Web 应用程序和 API 的另一种选择。如果你以前使用过ExpressJS,你会觉得有点熟悉。

日期时间管理

  1. Carbon:这是一个很棒的轻量级、易于使用且语义智能的日期时间库,适用于 Go 开发人员。

数据库对象关系管理

  1. Gorm:这是最容易使用的对象关系映射 (ORM) Go 库,我有幸使用过三种主要的数据库 SQLite、PostgreSQL 和 MySQL。

微服务

微服务通常用于带有 Docker 和 Kubernetes 的容器化架构,以构建健壮的应用程序。以下是几个 Go 微服务包:

  1. Echo:该框架支持RESTful API设计,是最流行的 Go 微服务框架。

  2. go-micro:这个库是同一领域的另一个很好的选择,具有内置的身份验证和数据存储设计。确实很方便。

Discord 机器人

  1. DiscordGo:这是 Discord API 函数最有用的 API 包装器,具有出色的模块化结构,包含您可能需要的所有主要 discord 机器人操作。

网页抓取

  1. Colly:这是一个很棒的 Go 网络抓取器和爬虫框架,特别适用于归档和数据挖掘目的。

杂项提及

  1. Go-redis:这是一个很棒的、高度维护的用于 Go 的 redis 数据库客户端。它适用于 redis 6 和 7,并且设置过程非常简单。强烈推荐。

  2. go-elasticsearch — 这是 Go 的官方 Elasticsearch 客户端。

  3. graphql-go:这是 GraphQL 在 Go 中的实现,支持查询、突变和订阅。

我希望这是对 Go 中一些仓库的有用介绍。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,393评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,790评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,391评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,703评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,613评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,003评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,507评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,158评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,300评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,256评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,274评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,984评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,569评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,662评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,899评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,268评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,840评论 2 339

推荐阅读更多精彩内容