原文是 2017 年的,有些内容可能有些久,但很多工具支持收藏。polarisxu 在原文基础上有所改动
自推出以来,Google 的 Go 编程语言(Golang)越来越受主流用户的欢迎。在一份调研中,3,595 名受访者中有 89%表明他们在工作中或工作以外用 Go 语言编程。
此外,在编程语言中,Go 语言在专业知识和偏好方面排名最高。在 Tiobe 的年度编程语言排名中,Go 语言已经稳定在 20 之前。
显然,Go 语言吸引了来自不同学科的许多程序员和软件开发外包专业人士。可以这么说,这全都是因为 Go 语言的易用性。
作为一种编译型的开源编程语言,Go 语言能使开发人员轻松构建简单可靠又高效的软件。它是更保守的语言,如 C 和 C ++的创新和演变的产物。
使用 Go 语言,可以减少代码输入量,并且编写稳健的 API 而不牺牲性能变得更加容易。Go 语言旨在实现可扩展性和并发性,从而实现优化。编译器可以在运行时前执行所有代码检查工作。
我们收罗了 Golang 的顶级框架、IDE 和工具列表,以供大家快速参考。建议添加到浏览器书签中,以便随时查看!排名不分先后。
Golang 框架
Web 框架可以帮助开发人员尽可能方便快捷地构建应用程序。Go 语言还比较新,所以使用的框架带有充足的文档很重要。
这里有 10 个框架可帮助你使用 Go 语言构建项目。
1、Revel
作为 Go 语言的高效生产力框架,Revel 包含的 Hot Code Reload 工具可以让你在每次更改文件时重建项目。它还包括各种全面和高性能的功能,因此你不需要找外部库集成到框架中。
2、Beego
Beego 是一个完整的 MVC 框架,有自己的日志库、ORM 和 Web 框架。你不需要再去安装第三方库。它有一个称为 Bee Tool 的内置工具,用于监视代码更改,并在检测到更改时运行任务。
Beego 可以为你节省很多时间,特别是在项目一开始,你要弄清楚日志框架或应用程序结构的时候。
3、Martini
受 Sinatra 启发,Martini 是一个极其轻巧但功能强大的框架。它被开发用于用 Golang 编写模块化 Web 应用程序和服务。
它的特点是非侵入式设计,快速易用,且包括各种处理程序和中间件。它能够为 HTML5 模式的 AngularJS 应用程序执行基本路由,异常处理和默认文档服务。
Martini 的最佳功能是可以使用反射,它允许开发人员动态地将数据插入到处理函数中并添加新的服务。Martini 也完全兼容 http.HandlerFunc 界面。不过,缺点在于 Martini 框架不再维护了。
4、Gin Gonic
Gin Gonic 是一个 Web 框架,有类似 Martini 的 API,但性能更好。如果你以前使用过 Martini,那么你也一定熟悉 Gin Gonic。没用过 Martini 也没关系,只需要学习 10 分钟就能掌握 Gin。就是这么容易!
Gin Gonic 是一个极简化的框架,仅包含最重要的库和功能。这使得它非常适合开发高性能 REST API。此外,它比 Martini 快四十倍。
你可以添加中间件、嵌套组、JSON 验证以及渲染,并依然保持其最佳性能。Gin Gonic 使用 httprouter,Go 语言最快的 HTTP 路由器。
5、Buffalo
要构建 Go 语言新的 Web 应用程序,使用 Buffalo 是一个快速又简单的方法。当你开始一个新项目时,Buffalo 可以为你提供一切——从前端到后端开发。
它具有热重载功能,这意味着 dev 命令将自动查看.go 和.html 文件。然后,它将为你重建并重启二进制文件。运行 dev 命令,你就能看到变化在你的眼前发生!
Buffalo 不仅仅是一个框架——它也是一个整体的 Web 开发生态系统,可以让你直接构建应用程序。
6、Goji
Goji 是一个轻量级的快速 Web 框架,将可组合性和简单性作为其主要优先级。很像 net / http.ServeMux,Goji 是一个极简的 HTTP 请求复用器。它包括 Einhorn 支持,允许在 Goji 中提供 Websocket 支持。
其他功能包括 URL 模式,可重新配置的中间件堆栈,正常关机等。Goji 可以用于生产,并在若干组织中提供了数以亿计个请求。
7、Tiger Tonic
受 Dropwizard 启发,Tiger Tonic 是开发 JSON Web 服务和构建高性能 REST API 的 Go 框架。为了忠于 Golang 的原则,Tiger Tonic 努力保持正交特性。
Tiger Tonic 的缺点在于构建大型后端应用程序尚有不足之处。
8、Gocraft
这是又一个强大而简约的框架,Gocraft 提供快速和可扩展的路由性能。它将路由添加来自标准库的 net / http 包中。
Gocraft 是一个 Go mux 和中间件软件包,具有强大的投射和反射能力,可以静态输入代码。你还可以使用内置中间件添加可选功能或者自己编写。
由于性能始终是开发人员最关心的问题之一,所以 Gocraft 是开发人员的绝佳选择。而且使用 Gocraft 框架编写后端 Web 应用程序很容易。
9、Mango
虽然 Mango 没有得到创作者 Paul Bellamy 的积极维护,但 Go 语言的许多用户仍然在使用它。Mango 的优势在于它的模块化。你可以从各种库中选择,以包含在你的项目中。
Mango 让你可以尽可能快速又轻松地构建可重复使用的 HTTP 功能模块。它将一系列中间件和应用程序编译成单个 HTTP 服务器对象,以保持代码独立。
10、Echo
高性能,可扩展,极简的 Go Web 框架。Echo 是一个轻量级框架,支持自动 TLS、极强扩展性、支持 HTTP/2、数据绑定和校验、模板、定制化和中间件,优化过的路由,性能和 httprouter 不相上下。值得试用。
Golang 的集成开发环境(IDE)
Golang 的 IDE 随着 Go 语言的普及越来越受大家的欢迎。虽然还是有许多开发人员仍然喜欢使用文本编辑器,但也有很多开发人员更倾向于使用 IDE。
如果你正工作于具有广泛代码库的大型项目,那么 IDE 可以帮助你轻松组织代码和导航。此外,IDE 可以帮助你测试代码并相应地编辑。
以下是用 Golang 工作良好的顶尖 IDE。
1、Gogland
软件开发公司 JetBrains 发布了另一个可靠的 IDE,这次是针对 Golang 发布的。Gogland 是一个商业 IDE,为 Go 开发人员提供了一个强大的人机工程学环境。它还具有编码协助、调试器和集成终端的功能。
由于 Gogland 是由一家已成立的公司创建的,所以它拥有广泛的 IntelliJ 插件生态系统,让你可以在需要更多工具的时候获得更多。
2、Visual Studio Code
由 Microsoft 创建的 Visual Studio Code 是一个功能齐全的开源 IDE 和代码编辑器,支持各种各样的编程语言。它的特点是智能完成;使用断点调用、调用堆栈和交互式控制台调试;内置 Git 集成;以及分层文件夹和文件浏览器。
作为另一个流行的 IDE,Visual Studio Code 有一个 Go 开发人员定期贡献的支持社区。使用 Visual Studio Code,你可以使用可用插件数组来扩展功能。
3、LiteIDE
LiteIDE 是五年多前创建的首个以 Golang 为中心的开源 IDE。作为具有独特外观的 C ++ Qt 应用程序,LiteIDE 提供代码管理、可配置构建命令、gdb 和 Delve 调试器,使用 WordApi——基于 MIME 类型的系统——自动完成和创建等等。它还提供 JSON 和 Golang 支持。
4、Wide
Wide 是 Golang 程序员使用的基于 Web 的 IDE。它专为协作开发而设计,适用于团队和 Web 开发机构。Wide 功能包括代码高亮、调试、Git 集成等。
因为 Wide 是由一名中国开发者创建和维护的,所以其大部分文档和支持是中文的。
5、带有 Go-Plus 插件的 Atom
如果你已经在使用 Atom,那么你可以通过一个名为 go-plus 的开源软件包来改善 Golang 语言的代码编辑体验。使用 go-plus,你可以立即获得关于语法和构建错误的实时反馈。
Go-plus 软件包提供了几乎所有 Atom 中对 Golang 的支持。它还可以用于工具,构建流程,linters,vet 和 coverage 工具。
Go-plus 还包括各种代码片段和功能,如 gocode 的自动完成,gofmt、goreturns 或 goimports 等的代码格式化。
6、带有 GoClipse 的 Eclipse
由于 Eclipse 是广受欢迎的 IDE,因此我们为其创建了许多插件。GoClipse 是针对 Golang 的 Eclipse 插件,提供 Go 源代码编辑,具有可配置的语法高亮和自动缩进以及大括号完成功能。
GoClipse 还可以作为项目向导和构建器来立即报告语法和构建错误。GoClipse 的其他功能包括调试功能和代码辅助。
7、带有 GoSublime 的 Sublime Text
Sublime Text 也是一个复杂的文本编辑器,具有大量的贡献者和开发者社区。因此,开发者为此 IDE 创建了各种各样的插件。
GoSublime 是 Sublime Text 3 针对 Golang 的插件,在你编写代码时,提供来自 Gocode 的代码完成,lint /语法检查,自动添加和删除程序包导入,等等。
8、带有 Vim-Go 插件的 Vim
Vim 是一个免费的开源 IDE,可以定制和配置各种插件。如果你是 Golang 程序员,那么你可以使用 Vim 中由 Fatih Arslan 创建的 vim-go 插件。Vim-go 自动安装所有必需的二进制文件,为 Golang 提供平滑的 Vim 集成。
Vim-go 是一款功能强大的插件套件,用于撰写和开发 Go。其功能包括高级源代码分析,添加和删除导入路径,多次第三方支持,goto 定义,快速文件执行等等。
Vim-go 是高度可定制的,可以根据你的需要启用或禁用各种功能。
9、Komodo
Komodo 是一个全功能的 Go 语言 IDE,并且支持如 Node.js,Python,Ruby,Perl 等其他编程语言。使用这个 Go IDE,你可以轻松地编写干净的代码。其功能包括高级代码编辑器,智能代码完成,语法检查,版本控制和单元测试,以及允许代码浏览和代码提示的 Go Code Intelligence。
Komodo 的优点是,它可以很好地协助团队合作,因为允许多个开发人员同时编辑文档。只要一个许可证,Komodo 就可以安装在 Mac,Windows 或 Linux 上。
10、带有 Go 语言(http://golang.org)支持插件的 IntelliJ IDEA
IntelliJ IDEA(由 JetBrains 公司开发)是可以通过 Go 语言支持插件从而使用 Golang 的 IDE。如果你想要在 IntelliJ IDEA 中使用 Golang,那么你需要安装此插件,虽然不同于 Gogland,它的功能有限。
Golang 工具
Golang 工具可用于各种项目和 Web 应用程序。使用这些有用的工具可以帮助开发人员尽可能快速而轻松地编写代码并构建应用程序。
这里有一系列顶级的 Golang 工具以供参考。
1、Apicompat
Apicompat 是一种新的 Go 语言工具,可帮助开发人员检测向后不兼容的更改和导出的声明。
你可以通过 Apicompat 避免误报。但是,Apicompat 并不能检测到每个向后不兼容的变化。并且,库作者没有考虑到交换参数和其他更改的需要。
2、Checkstyle
受 Java Checkstyle 启发,针对 Golang 的 Checkstyle 输出编码风格的建议。它还允许开发人员检查文件行/函数和行/参数号,然后由用户进行配置。
3、Depth
又一个有用的 Golang 工具,Depth 可帮助 Web 开发人员检索和可视化 Go 源代码依赖关系树。它可以用作独立的命令行应用程序或作为项目中的特定包。你可以通过在解析之前在 Tree 上设置相应的标志来添加自定义。
4、Go-Swagger
该工具包包括各种功能和功能。Go-Swagger 是 Swagger 2.0 的一个实现,可以序列化和反序列化 swagger 规范。它是 RESTful API 简约但强大的代表。
通过 Go-Swagger,你可以 swagger 规范文档,验证 JSON 模式以及其他额外的规则。其他功能包括代码生成,基于 swagger 规范的 API 生成,基于代码的规范文档生成,扩展了的字符串格式,等等。
5、Go Meta Linter
如果你需要运行 Go lint 工具并同时使其输出正常化,那么 Go Meta Linter 可以为你办到。Go Meta Linter 旨在与文本编辑器或 IDE 集成,如如 Sublime Linter 插件,Atom go-plus 包,Emacs Flycheck 检查器,Vim / Neovim,以及 Go for Visual Studio Code 一起使用。它还支持各种各样的 linter 和配置文件,如 JSON。
6、Go-callvis
Go-callvis 是一个 Web 开发工具,允许你使用 Graphviz 的点格式可视化 Go 程序的调用图。此工具在构建具有复杂代码库的大型项目时特别有用。它在你想要了解另一个开发人员的代码结构或重建别人的项目时,也很有用。
通过 go-callvis,开发人员可以在程序中关注特定包;根据软件包的分组函数和根据类型的方法;以及将软件包限制到自定义路径前缀,并忽略那些包含它们的自定义前缀。
7、Gonative
Gonative 是一个简单的 Golang 工具,让你能够使用本机库构建 Go 工具链,而这可以在使用 stdlib 软件包的 Cgo-enabled 版本时进行交叉编译。
Gonative 为每个平台下载二进制发行版,并将它们的库复制到正确的位置。同时,Gonative 设置正确的 mod 时间,以避免不必要的重建。
不幸的是,Gonative 在 Windows 上仍然未经测试。此外,也没有提供 Linux / arm 支持。
8、Grapes
Grapes 是一种轻量级的 Golang 工具,旨在轻松地通过 SSH 分发命令。它由 Yaron Sumel 编写和积极维护。
Grapes 不久将支持完整的主机密钥验证,这是开发人员应该注意到的。
9、Gosimple
Golang linter 的伟大之处在于它专注于简化 Go 源代码。Gosimple 始终将最新的 Go 版本作为目标,因此它需要 Go 1.6 或更高版本。
如果有新的 Go 版本,gosimple 会建议最轻松和最简单的方法来避免复杂的构造。
10、Go Vendor
Go Vendor 是与标准 Vendor 文件夹兼容的 Golang 工具。它允许开发人员通过 govendor add / update 从$GOPATH 中复制现有的依赖关系。你还可以通过 govendor fetch 直接提取新的依赖关系或更新现有的依赖关系,以及使用 govendor 迁移来移动旧的系统。
总结
如果你有 JS / Node 背景,那么你还需要学习一些新的编程概念,如协同程序,通道,严格的类型与编译,接口,结构,指针和其他一些差异。但是,一旦你进入状态,你会发现 Golang 用起来更容易,也更快。
资料专区:Prometneus官方文档
《Prometneus官方文档》既适合零基础的小白来学习,也适合想要提升的同学,点击下方卡片领取