golang后端开发非常成熟好用的总结的几个高频使用库快速实现开发

golang后端开发非常成熟好用的总结的几个高频使用库快速实现开发。

随着时间的推移,语言爱好者已经构建和共享了许多 Go 框架和库。这些包执行不同的功能,从开发微服务到制作 discord 机器人,一直到构建 Web 应用程序!在本文中,我将尝试让您熟悉一些有用的方法,这些方法是我在尝试使用这种有趣的新编程语言学习和构建应用程序时发现的。


静态网站生成

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

hugo:一个很棒的包,可以让你在没有后端互连的情况下构建静态网站,全部用 Go 编写。它还号称是同类中最快的静态 Web 框架,每页加载时间<1 毫秒,平均网站构建时间不到一秒。它旨在适用于任何类型的网站,包括博客和托管文档。最棒的是,您也可以在GitHub 页面上免费托管您的静态网站!安装 Hugo 包可以通过常规的自制软件安装、Docker甚至go install命令来完成。

处理配置文件

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

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

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

从 JSON、TOML、YAML、HCL、.env 和 Java 属性配置格式中读取。

实时观看和重读配置文件。

从环境变量中读取。


命令行界面

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

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

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

它与配置文件的 Viper 库有强大的集成。

它支持常规子命令、嵌套子命令,并有助于对相似命令进行分组。

完全符合 POSIX 标准的标志(包括短版和长版)。


环境变量

Go有许多软件包可以.env更轻松地读取存储各种被视为应用程序机密的文件。有这样伟大一个工具:

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


构建自动化

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

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


主动编译

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


Web开发

以下是定期维护的、流行的Web框架:

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

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


日期时间管理

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


数据库对象关系管理

Gorm:这是最容易使用的对象关系映射(ORM)Go库, 特别适用于三种主流的数据库SQLite、PostgreSQL和MySQL。

Xorm:XORM 是一个简单而强大的Go语言ORM框架。通过它可以使数据库操作非常简便。


微服务

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

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

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

go-zero:go-zero 是一个集成了各种工程实践的 web 和 rpc 框架


机器人

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

一个小的不便之处是它仍然没有专门的文档,但我在自己的一些实验过程中发现,阅读代码本身非常容易,因为它被整齐地分成模块和包。


网页抓取

Colly:这是一个很棒的 Go 网络抓取器和爬虫框架,特别适用于归档(我已经大量使用它)和数据挖掘目的。


数据库相关

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

go-elasticsearch:这是 Go 的官方 Elasticsearch 客户端。

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

相关推荐
代码小鑫几秒前
A031-基于SpringBoot的健身房管理系统设计与实现
java·开发语言·数据库·spring boot·后端
Json____5 分钟前
学法减分交管12123模拟练习小程序源码前端和后端和搭建教程
前端·后端·学习·小程序·uni-app·学法减分·驾考题库
monkey_meng26 分钟前
【Rust类型驱动开发 Type Driven Development】
开发语言·后端·rust
落落落sss34 分钟前
MQ集群
java·服务器·开发语言·后端·elasticsearch·adb·ruby
大鲤余1 小时前
Rust,删除cargo安装的可执行文件
开发语言·后端·rust
她说彩礼65万1 小时前
Asp.NET Core Mvc中一个视图怎么设置多个强数据类型
后端·asp.net·mvc
陈随易1 小时前
农村程序员-关于小孩教育的思考
前端·后端·程序员
_江南一点雨1 小时前
SpringBoot 3.3.5 试用CRaC,启动速度提升3到10倍
java·spring boot·后端
转转技术团队2 小时前
空间换时间-将查询数据性能提升100倍的计数系统实践
java·后端·架构
r0ad2 小时前
SpringCloud2023实战之接口服务测试工具SpringBootTest
spring boot·后端·spring cloud