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 中的实现,支持查询、突变和订阅。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/86266.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记一次hyperf框架封装swoole自定义进程

背景 公司准备引入swoole和rabbitmq来处理公司业务。因此&#xff0c;我引入hyperf框架&#xff0c;想用swoole的多进程来实现。 自定义启动服务封装 <?php /*** 进程启动服务【manager】*/ declare(strict_types1);namespace App\Command;use Swoole; use Swoole\Proce…

C语言每日一题(10):无人生还

文章主题&#xff1a;无人生还&#x1f525;所属专栏&#xff1a;C语言每日一题&#x1f4d7;作者简介&#xff1a;每天不定时更新C语言的小白一枚&#xff0c;记录分享自己每天的所思所想&#x1f604;&#x1f3b6;个人主页&#xff1a;[₽]的个人主页&#x1f3c4;&#x1f…

Weblogic反序列化漏洞(CVE-2018-2628/CVE-2023-21839复现)

内容目录 Weblogic反序列化漏洞(CVE-2018-2628/CVE-2023-21839)weblogic中间件CVE-2018-2628漏洞描述影响版本漏洞复现修复方案 CVE-2023-21839漏洞描述影响版本漏洞复现修复方案 Weblogic反序列化漏洞(CVE-2018-2628/CVE-2023-21839) weblogic中间件 WebLogic是美国Oracle公司…

在给应用ASO优化时要注意些什么

应用名称是搜索引擎优化和转化率优化非常重要的元素。用户在搜索结果页面中看到我们的应用程序&#xff0c;这是他们决定是否想要更多地了解我们应用的地方。当用户已经在查看产品页面时&#xff0c;应用程序名称也会影响转化率&#xff0c;如果列表元数据有吸引力&#xff0c;…

代码随想录二刷day36

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、力扣435. 无重叠区间二、力扣763. 划分字母区间三、力扣56. 合并区间 前言 一、力扣435. 无重叠区间 class Solution {public int eraseOverlapIntervals(…

异步回调

Future 设计的初衷&#xff1a;对将来的某个事件的结果进行建模 package com.kuang.future;import com.kuang.pc.C;import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.uti…

静态路由与默认路由配置

实验原理&#xff1a; 路由分类 &#xff08;1&#xff09;根据目的网络的不同&#xff0c;路由可以划分为&#xff1a; 特定网络路由&#xff1a;目的网络为目的主机所在网络的IP地址&#xff0c;其子网掩码表示的前缀长度为32位&#xff08;对于IPv4地址&#xff09;&…

priority_queue 模拟与用法

priority_queue 用法 priority_queue priority_queue 模拟 #include <vector> namespace sjy {//仿函数 1template <typename T>class Less{public:bool operator()(const T& x, const T& y){return x < y;}};//仿函数 2template <typename T>…

一些常见的算法

常见算法有很多种&#xff0c;以下列举了一些常见的算法&#xff1a; 堆排序算法&#xff1a;是一种利用堆这种数据结构所设计的一种排序算法。哈希算法&#xff1a;哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值&#xff0c;这个小的二进制值称为哈希值&#…

stm32_标准库_中断_按键点灯|蜂鸣器

配置流程 需要对AFIO、EXTI、NVIC、GPIOB进行配置形成通路将中断连接至CPU APB2总线连接的寄存器 LED灯代码 #include "stm32f10x.h" // Device header #include "Delay.h"GPIO_InitTypeDef GIPO_InitStruct;//结构体配置GPIO EXTI_InitTypeDef EXTI_…

算法 数据流的中位数-(大顶堆小顶堆+冒泡排序)

牛客网: BM48 题目: 得到数据流的中位数 思路: (1) 冒泡排序: 每次插入元素时&#xff0c;进行冒泡排序&#xff0c;将当前值与前一值比较&#xff0c;当前值较小时与前一元素交换&#xff0c;直至不小于前一元素时结束。 (2) 大小顶堆: 设置两个堆min为大顶堆(最大值在堆顶…

WPS文件找回怎么做?文件恢复,4个方法!

“我平时习惯了用wps来记录一些工作心得或重点&#xff0c;不知道什么原因&#xff0c;有些很重要的文件莫名不见了&#xff0c;有什么方法可以帮我找回wps文件吗&#xff1f;” wps作一个常用的办公软件&#xff0c;有效的提高了我们的工作效率。在日常使用wps时&#xff0c;可…

非常详细的git-flow分支管理流程配置及使用

非常详细的git-flow分支管理流程配置及使用。 git-flow有两个涵义,一个是指软件开发领域的版本管理流程Gitflow。另一个是指git命令工具git flow。 目前业界主流的版本管理流程是Gitflow 和 trunk-based。 Gitflow流行的比较早。但是目前的流行度要低于 trunk-based模式工作…

RocketMQ 相关文档

官方文档&#xff1a;为什么选择RocketMQ | RocketMQ (apache.org) Rocketmq 5.x架构介绍文章&#xff1a;终于&#xff01;RocketMQ发布5.0版本&#xff1a;架构大重构&#xff0c;代码变更比例高达60%-腾讯云开发者社区-腾讯云 (tencent.com)

爬虫中出现OSError: [WinError 193] %1 不是有效的 Win32 应用程序。

如果出现了 OSError: [WinError 193] %1 不是有效的 Win32 应用程序。那可能是你的Chromedriver版本和Chrome版本不一致。 我是花钱买的&#xff0c;这里免费分享给大家Chrome116版本对应的ChromeDriver 资源发布了&#xff0c;如果有需要私信我要吧

debian安装qq及更新

文章目录 一、安装二、卸载QQ三、更新 一、安装 1.下载Linux QQ安装包 wget https://dldir1.qq.com/qqfile/qq/QQNT/c6032ac7/linuxqq_3.1.0-9332_amd64.deb2.安装软件包 apt install ./linuxqq_3.1.0-9332_amd64.deb3.终端启动QQ qq二、卸载QQ apt remove linuxqq三、更新…

qt功能自己创作

按钮按下三秒禁用 void MainWindow::on_pushButton_5_clicked(){// 锁定界面setWidgetsEnabled(ui->centralwidget, false);// 创建一个定时器&#xff0c;等待3秒后解锁界面QTimer::singleShot(3000, this, []() {setWidgetsEnabled(ui->centralwidget, true);;//ui-&g…

MySQL8.0版安装教程 + Workbench可视化配置教程(史上最细、一步一图解)

文章目录 一、安装MySQL1、选择版本&#xff0c;点击“Download”进行下载2、双击下载好的安装包&#xff0c;点击运行3、选择安装类型为“Custom”4、依次进行选择&#xff0c;选到MySQL Servers 8.0.33 -X64&#xff0c;点击向右的箭头5、选中MySQL Servers 8.0.33 -X64&…

Mysql004:用户管理

前言&#xff1a;本章节讲解的是mysql中的用户管理&#xff0c;包括&#xff08;管理数据用户&#xff09;、&#xff08;控制数据库的访问权限&#xff09;。 目录 1. 查询用户 2. 创建用户 3. 修改用户密码 4. 删除用户 5. 权限控制 1. 查询用户 在mysql数据库中&#xff0…