自推出以来,Google的Go 编程语言 (Golang)一直受到主流用户的欢迎。 在2016年12月的一项调查中,在3595名受访者中,有89%的人声称他们在工作中或工作外使用Go语言编程。
此外,就专业知识和偏好而言,Go在编程语言中排名最高。 2017年7月,Go在”年度Tiobe年度编程语言”中排名第10,从去年的第55位跃升至第10位。
显然,Go吸引了来自各个领域的许多程序员和软件开发外包专业人士。 可以肯定地说,这是因为Go的易用性。
作为一种编译后的开源编程语言,Go使开发人员可以轻松构建简单,可靠且高效的软件。 它是更保守的语言(例如C和C ++)的创新和发展的产物。
使用Go,可以减少代码键入的数量,并且在不牺牲性能的情况下编写强大的API变得更加容易。 专为可伸缩性和并发性而设计,Go使优化成为可能。 编译器可以在运行时之前执行所有代码检查工作。
我们为Golang整理了一些顶级框架, IDE 和工具,供您快速参考。 在浏览器上为其添加书签,以便您在使用Go!时都能回来!
Golang框架
Web框架可帮助开发人员尽可能轻松,快速地构建应用程序。 Go还是相对较新的东西,因此使用具有足够文档的框架很重要。
这里有9个框架,可用于帮助您使用Go语言构建项目。
1.Revel
作为Go的高生产率框架,Revel包括一个”热代码重载”工具,可让您在每次文件更改时重建项目。 它还包含各种全面的高性能功能,因此您无需查找外部库即可集成到框架中。
2.Beego
Beego是一个成熟的MVC框架,具有自己的日志记录库,ORM和Web框架。 您无需查找和安装第三方库。 它具有一个称为Bee工具的内置工具,该工具可以监视代码更改并在检测到更改时运行任务。
Beego可以为您节省很多时间,尤其是在您确定日志记录框架或应用程序结构的项目开始时。
3.Martinina
Martinina受Sinatra的启发,是一个非常轻便但功能强大的框架。 它是为在Golang中编写模块化Web应用程序和服务而开发的。
它采用非侵入式设计,使用起来快速简便,并包含各种处理程序和 中间件 。 它能够以HTML5模式为AngularJS应用执行基本路由,异常处理和默认文档服务。
马蒂尼(Martini)最好的功能是使用反射,它使开发人员可以动态地将数据插入处理程序函数并添加新服务。 Martini也与http.HandlerFunc接口完全兼容。 但是不利的是,Martini框架不再得到维护。
4.Gin
Gin Gonic是一个Web框架,具有类似于martini的API,但性能要好得多。 如果您以前使用过马提尼酒,那么您会熟悉Gin Gonic。 否则,您只需要10分钟即可学习Gin。 就这么简单!
Gin Gonic是一个简约框架,仅包含最基本的库和功能。 这使其非常适合开发高性能REST API。 另外,它比马提尼酒快40倍。
您可以添加中间件,嵌套组,JSON验证和呈现,但是它仍保持最佳性能。 Gin Gonic使用Go最快的HTTP路由器httprouter。
5.Buffalo
使用Buffalo使用Go构建新的Web应用程序既快速又简单。 当您开始一个新项目时,Buffalo已经为您提供了从前端到后端开发的所有设置。
它具有热重载功能,这意味着dev命令将自动监视.go和.html文件。 然后它将为您重建并重新启动您的 二进制文件 。 只需运行dev命令,您就可以立即看到所做的更改!
Buffalo不仅仅是一个框架,而是一个整体的Web开发生态系统,可让您直接构建应用程序。
6.Goji
Goji是一个轻量级且快速的Web框架,具有可组合性和简单性是其首要任务。 类似于net / http.ServeMux,Goji是一个简约的HTTP请求多路复用器。 它包括Einhorn支持,使您可以在Goji中获得websocket支持。
其他功能包括URL模式,可重新配置的中间件堆栈,正常关闭等。 枸杞可用于生产中,已为多个组织提供了数十亿个请求。
7.Tiger Dropnic
Tiger Dropnic受Dropwizard的启发,是一个Go框架,用于开发JSON Web服务和构建高性能REST API。 为了忠实于Golang的原则,Tiger Tonic努力使功能保持正交。
Tiger Tonic的缺点是在构建大型后端应用程序方面的不足。
8. Gocraft
Gocraft是另一个功能强大但极简的框架,可提供快速且可扩展的路由性能。 它将路由从标准库添加到net / http包。
Gocraft是一个Go mux和中间件 软件包 ,具有转换和反射功能,因此您可以静态键入代码。 您还可以使用内置的中间件添加可选功能或编写自己的中间件。
由于性能始终是开发人员最关心的问题之一,因此Gocraft是开发人员的绝佳选择。 使用Gocraft框架编写后端网络应用程序非常容易。
9.Mango
尽管Mango的创建者Paul Bellamy并未对其进行积极维护,但许多Go用户仍在使用它。 Mango的伟大之处在于其模块化。 您可以从各种库中选择要包含在项目中的库。
Mango使您可以尽可能快速,轻松地构建HTTP功能的可重用模块。 它将中间件和应用程序列表编译到单个http服务器对象中,以使您的代码保持独立。
Golang集成开发环境(IDE)
用于Golang的IDE与Go语言一起变得越来越流行。 尽管许多开发人员仍然喜欢使用文本编辑器,但许多开发人员也喜欢使用IDE。
如果您正在使用广泛的代码库进行大型项目,IDE可以帮助您轻松组织代码并进行导航。 此外,IDE可以帮助您测试代码并进行相应的编辑。
以下是可与Golang完美搭配的顶级IDE。
1.Goland
软件开发公司JetBrains发布了另一个可靠的IDE,但这次是针对Golang。 Gogland是一种商业IDE,可为Go开发人员提供强大的人体工程学环境。 它还具有编码帮助,调试器和集成终端。
由于一家老牌公司创建了Gogland,因此它具有广泛的IntelliJ插件生态系统,如果您需要更多工具,可以在其中获得更多工具。
2. Visual Studio Code
Visual Studio Code由Microsoft创建,是功能齐全的开源IDE和代码编辑器,支持多种编程语言。 它具有IntelliSense的智能完成功能; 使用断点,调用堆栈和交互式控制台进行调试; 内置的Git集成; 以及分层文件夹和文件浏览器。
作为另一个流行的IDE,Visual Studio Code具有一个由Go开发人员组成的支持社区,这些社区定期进行贡献。 使用Visual Studio Code,您可以使用一系列可用插件来扩展功能。
3. LiteIDE
LiteIDE是5年前创建的首批以Golang为中心的开源IDE之一。 作为具有独特外观的C ++ Qt应用程序,LiteIDE提供代码管理,可配置的构建命令,gdb和Delve调试器,使用WordApi自动完成和主题化,基于MIME类型的系统等。 它还提供JSON和Golang支持。
4.Wide
Wide是面向Golang程序员的基于Web的IDE。 专为协作开发而设计,最适合团队和网络开发机构。 广泛的功能包括代码突出显示,调试,Git集成等。
因为Wide是由中国开发人员创建和维护的,所以它的大多数文档和支持都是中文的。
5.带有go-plus插件的 Atom
如果您已经在使用Atom,则可以通过名为go-plus的开源软件包来改善Golang中的代码编辑体验。 使用go-plus,您可以获得有关语法和构建错误的即时,实时反馈。
go-plus软件包在Atom中提供了几乎所有的Golang支持。 它也可以用于工具,构建流程,短绒,兽医和覆盖工具。
Go-plus还包括各种代码段和功能,例如使用gocode自动完成功能,使用gofmt进行代码格式化,goreturns或goimports等。
6.使用GoClipse的 Eclipse
由于Eclipse是广泛流行的IDE,因此已经为其创建了许多插件。 GoClipse是用于Golang的Eclipse插件,可提供Go源代码编辑以及可配置的语法突出显示,自动缩进和大括号补全。
GoClipse还可以用作项目向导和生成器,可以立即报告语法和生成错误。 GoClipse的其他功能包括调试功能和代码辅助。
7.使用GoSublime升华文本
Sublime Text是另一个复杂的文本编辑器,拥有大量的贡献者和开发者社区。 因此,已为此IDE创建了各种各样的插件。
GoSublime是Sublime Text 3的Golang插件,可提供Gocode的代码完成功能,在连接代码时检查棉绒/语法,自动添加和删除软件包导入等。
8. Vim和vim-go插件
Vim是一个免费的开源IDE,可以使用各种插件进行自定义和配置。 如果您是Golang程序员,则可以将Vim与Fatih Arslan创建的vim-go插件一起使用。 Vim-go自动安装所有必需的二进制文件,以为Golang提供平滑的Vim集成。
Vim-go是用于编写和开发Go的功能强大的插件套件。 它的功能包括高级源代码分析,添加和删除导入路径,多个3rd Liner支持,goto定义,快速文件执行等等。
Vim-go是高度可定制的,具有可以根据您的需要启用或禁用的各个功能。
9.Komodo
Komodo是功能齐全的Go语言IDE,它支持其他编程语言,例如Node.js,Python,Ruby,Perl等。 使用此Go IDE,您可以轻松编写干净的代码。 它的功能包括高级代码编辑器,智能代码完成,语法检查,版本控制和单元测试,以及Go代码智能功能,可用于代码浏览和代码提示。
Komodo的优点在于,它对于团队协作非常有效,因为多个开发人员可以同时编辑文档。 只需一个许可证,即可将Komodo安装在Mac,Windows或Linux上。
10.带有Go语言的IntelliJ IDEA(golang.org)支持插件
IntelliJ IDEA(与JetBrains相同的公司)是可以通过Go语言支持插件与Golang一起使用的IDE。 如果要将IntelliJ IDEA与Golang一起使用,则需要安装此插件,尽管与Gogland相比功能有限。
Golang工具
Golang工具可用于各种项目和Web应用程序。 开发人员可以使用这些有用的工具尽可能快速,轻松地编写代码和构建应用程序。
以下是热门的Golang工具列表,供您参考。
1. Apicompat
Apicompat是一种新的Go语言工具,可帮助开发人员检测向后,不兼容的更改和导出的声明。
使用Apicompat,您可以避免误报。 但是,Apicompat不能检测到所有向后不兼容的更改。 库作者仍然需要交换参数参数和其他更改。
2. Checkstyle
受Java Checkstyle启发,Checkstyle for Golang可打印出编码风格建议。 开发人员还可以通过它检查文件的行/功能和行/参数号,然后用户可以对其进行配置。
3.Depth
深度是另一个有用的Golang工具,可帮助Web开发人员检索和可视化Go源代码依赖项树。 它可以用作独立的命令行应用程序,也可以用作您自己项目中的特定程序包。 您可以通过在解析之前简单地在树上设置适当的标志来添加自定义项。
4.Go-swagger
该工具包包含多种功能。 Go-Swagger是Swagger 2.0的实现,可以序列化和反序列化swagger规范。 它是RESTful API的简约但功能强大的代表。
使用Go-Swagger,您可以扩大规格文档,针对jsonschema和其他额外规则进行验证。 其他功能包括代码生成,基于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是一个网络开发工具,可让您以Graphviz的点格式可视化Go程序的调用图。 当使用复杂的代码库构建大型项目时,此工具特别有用。 当您想了解其他开发人员的代码结构或重建其他人的项目时,这也很有用。
使用go-callvis,开发人员可以将重点放在程序中的特定程序包上。 根据包装将功能分组,并根据类型将方法分组; 并将包限制为自定义路径前缀,而忽略包含它们的包。
7. Gonative
Gonative是一个简单的Golang工具,可让您使用本机库构建Go工具链,这些库可以交叉编译,同时仍使用启用了Cgo的stdlib软件包版本。
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提取直接拉出新的依赖项或更新现有的依赖项,并通过govendor迁移来移动旧系统。
总结
如果您来自JS / Node背景,则需要学习一些新的编程概念,例如协程,通道,带有编译的严格类型,接口,结构,指针以及其他一些区别。 但是,一旦陷入困境,您会发现Golang更加易于使用和快速使用。
(本文翻译自Quintin G.的文章《Golang Guide: A List of Top Golang Frameworks, IDEs & Tools》,参考: