2022最受欢迎的GoLang框架推荐:机器学习、微服务、静态网站、CLI、桌面等框架

框架通常是一种自以为是的方式来构建一个开发人员或一组开发人员已经构建并与世界共享的东西。

Web开发框架是迄今为止最流行的。Web开发框架是为构建 Web 应用程序(如 Google、Yahoo、FaceBook、InstaGram、Twitter 等)提供模板和设计模式的框架。

一些最流行的 Web 开发者是 Ruby on Rails 和 Python 的 Django,但如果你是 GoLang 程序员怎么办?不用担心。


下面介绍最流行的Web开发框架、机器学习、微服务、静态网站、CLI 和桌面框架及它们的网站、star、License等,有兴趣的可以自行查阅学习!


Web 开发 GoLang 框架

以下是 GoLang 的顶级 Web 开发框架,按星数最高的顺序排列。我已经将我的想法和经验添加到每一个中,以帮助您选择哪一个可能适合您的项目。就个人而言,我倾向于选择星数最高的那些,因为这通常意味着庞大的用户群,而庞大的用户群意味着在您需要时可以提供大量帮助。


1.Gin-Gonic

如果我必须使用 Web 开发框架,Gin-Gonic 是我个人的选择,因为它速度快,并且具有构建典型创建、读取、更新、删除 (CRUD) Web 应用程序的框架所需的所有功能。

网址:https ://gin-gonic.com/
星数:63k
执照:麻省理工学院


2.BeeGo

是那些中国最流行的Web开发框架,看看他们不可思议的赞助商名单就知道了。

网址:https ://beego.vip
星数:29k
许可证:Apache- 2.0


3.Iris

Iris 是一个令人难以置信的 GoLang Web 开发框架,专注于可移植性和跨平台。

因此,当我想将一个 Web 应用程序分解为在 AWS 和 Netlify 上运行时,我会使用它。

网站:https ://www.iris-go.com
星数:23k
许可证:BSD-3-Clause


4.Kratos

Kratos 介于 Web 开发框架和微服务框架之间,与它配合得很好的是它不依赖于特定的基础架构风格。

网站:https ://go-kratos.dev ,
星数:19k
执照:麻省理工学院


5.Revel

Revel 是一个简单的项目,它在参数解析、验证、会话/刷新和缓存方面表现出色,所以如果这些听起来对你来说很重要,那么这是可供选择的框架。

网站:http ://revel.github.io
星数:13k
执照:麻省理工学院


6.Buffalo

虽然,不是名单上最受欢迎的,但 Buffalo 是我第二喜欢使用的。

它对初学者非常友好,有许多开箱即用的有用代码生成工具。

如果您有 Ruby 背景或刚开始成为 Web 开发人员,我建议您使用此框架。

网站:https ://gobuffalo.io/
星数:7k
执照:麻省理工学院


微服务 GoLang 框架

微服务理念通常与 Docker 和 Kubernetes 一起使用来构建弹性 Web 应用程序。这是一种非常流行的 GoLang 设计风格,因此有许多评价很高的框架。我在下面列出了前三个项目的链接,以便您更轻松地做出决定。


1.Echo

如果您想要自动 TLS、HTTP/2 并使用 RESTful API 设计范例,我会使用 Echo。

星数:24k
网站:https ://echo.labstack.com/
执照:麻省理工学院


2.GO-zero

如果您想节省编写代码的时间,我会使用 Go-Zero,因为它包含一个简洁的 goctl cli 工具来为您生成代码。命令行工具也可以一键生成iOS、Android、Kotlin、Dart、TypeScript、JavaScript!

星数:21k
网站:https ://go-zero.dev
执照:麻省理工学院


3.go-micro

如果身份验证是您正在构建的应用程序的一个大问题,我会使用 go-micro。

身份验证对于构建团队来说可能是一个巨大的负担。因此,开箱即用地集成它真是太好了。

星数:19k
网址:https ://github.com/go-micro/go-micro
许可证:Apache-2.0


命令行界面 - CLI 框架

Cobra

Cobra 已被用于为用 GoLang 编写的为云提供动力的最大技术构建 CLI;

kubectl、terraform、docker 等。因此,请相信 Cobra 是您在构建基于 GoLang 的复杂 CLI 工具时想要使用的 CLI 框架。

网站:https ://cobra.dev
星数:29k
许可证:Apache-2.0

不过,应该提到的是,GoLang 标准库足以构建一个简单的 CLI 工具。

然而,通过使用框架来获得可用的功能真是太棒了:

简单的子命令
符合 POSIX 的标志
嵌套子命令
智能建议
命令和标志的自动帮助生成
自动帮助标志识别
命令别名来更改 cmds 而不会破坏它们
与 Viper 软件包完美集成,适用于 12 要素应用程序
下次您决定构建 CLI 工具时,请尝试 Cobra。


桌面应用程序 GoLang 框架

Wails

通常,构建桌面应用程序需要学习完全不同的语言,但 GoLang 则不需要。

Wails 是一个社区项目,它不仅可以让你使用 GoLang 来编写桌面应用程序,而且通常是一个跨平台应用程序。如果这看起来令人困惑,那么想想 Expo 或 Electron,它们使用 JavaScript 做同样的事情。

星数:11k
网站:https ://wails.io
执照:麻省理工学院

就个人而言,我最喜欢与 WAILS 一起使用的组合是 Svelte 语言作为前端。事实上,我使用 WAILS 构建了一个桌面应用程序,以使 DevOps 更容易用于 GitHub 管理,从而赢得了一场黑客马拉松。


静态网站 GoLang 框架

HUGO

静态网站是通常在用户交互时内容不发生变化的网站。对于只想拥有一个关于某个主题的博客或网站而无需考虑后端代码的人来说,它是完美的选择。GoLang 拥有可用于构建和管理内容的最快工具之一——HUGO。

星数:62k
网址:https ://gohugo.io/
许可证:Apache-2.0 

Hugo 正是我用来构建FreeResumeScanner.com 的。尽管静态网站通常可能没有后端代码,但静态网站的常见模式是将 lambdas 用作后端,而不是让服务器 24/7 运行。

在前端拥有一个仅在需要时使用计算的静态网站有时称为单页应用程序或 FullStack - Serverless。

使用单页应用程序架构的好处是您可以节省很多钱——事实上,对于我作为主机的我来说,FreeResumeScanner.com 的运行是完全免费的。

如果您有一个应用程序的想法,但不想迷失在服务器管理和成本方面,请查看如何将 GoLang、Hugo 和 Lambda 用于单页应用程序,我将向您展示如何构建 FreeResumeScanner.com,以便您可以用你的想法换掉。



网页抓取 GoLang 框架

一个好的网络爬虫可以让您的数据收集工作变得轻松。对于 GoLang 爱好者来说,只有一个值得一提。

Colly

网站:https ://go-colly.org/
星数:17.7 k
许可证:Apache-2.0

Colly 使它变得简单,因为它通过内置以下功能来处理您在尝试从 Internet 收集数据时会遇到的一些最大问题:

Cookie 和会话处理
分布式抓取
缓存
谷歌应用引擎支持
快速(在单核上 > 1k 请求/秒)
自动请求延迟和最大值。每个域的并发

这些功能中的每一项都有助于减轻网站对机器人的保护。尽管许多大型科技公司会抓取网站,但其中一些公司不喜欢其他公司这样做并试图阻止它发生。但是,上述功能可用于解决机器人控制工作。

因此,下次您使用 GoLang 进行数据分析项目时,如果没有可用的数据库,请尝试 Colly 进行数据收集阶段。


机器学习 GoLang 框架

鉴于社区构建的强大框架,使用 Python、R 和 Scala 等其他语言进行机器学习非常容易。不幸的是,相比之下,GoLang 中的机器学习是贫瘠的。但是社区使用了一个众所周知的框架,那就是 Gorgonia。

GORGONIA

星数:4.6k
网站: https ://gorgonia.org
许可证:Apache-2.0

Gorgonia 具备帮助您从头开始创建自己的机器学习算法的基础知识。它还具有开箱即用的线性回归、多维数组和神经网络。


这三个都可以让你开始,如果你想要其他的,那么可能值得考虑实施你自己的。

由于 GO 1.18 引入了泛型,它可能比您想象的要容易。

相关文章