Golang指南:热门Golang框架,IDE和工具的列表
自推出以来,Google的Go编程语言(Golang)一直受到主流用户的欢迎。 在2016年12月的一项调查中,在3595名受访者中,有89%的人声称他们在工作中或工作外使用Go语言H 8 a编程。
此外,就专业知识和偏3 _ ? m L s好而言,Go在编程语言中排名最高。 2017年7月,Go; D在\"年度Tii F E Xobe年度编程语言\"中排D e T名第10,从去年的第55位跃升至第10位。
显然,Go吸引了来自各个领域的许多程序员和软件开发外包专业人士。 可以肯定地说,这是因为Go的易用性。
作为一种编译后的开源编Z Q 7 ] T 1 G程语言,Go使开发人员可以轻松构建简单,可靠且高效的软件。 它是更保守的语言(例如C和C ++)的创新和发展的产物。
使用Go,可以R G $ G - h减少代码键入的数量,并且在不牺牲性能的情况下编写强大的API变得+ ( ` { .ni也与http.HandlerFunc接口完全兼容。 但是不利的是,Martini框架不再得到维护。
4.Gin
Gin Gonic是一个Web框架,具有类似y t B u : - h于martini的API,但性能要好得多。 如果您以前使用过马提尼酒,那么您会熟悉Gin Gonic。 否则,您只需要10分^ k B ) Y z ,钟即可学习GinA 7 U U = ^ * F。 就这么简单!U 3 Q ` b F $ C
Gin Gg 2 p | ~ q Qonic是一个简约框架,仅包含最基本的库和功能。 这使其非常适合开发高性能RES. k s 2 7 E n , MT API。 另外,它比马提尼酒快40倍。
您可以添加中间件,嵌套组,JSON验证和呈现s j u A T k,但是它仍保持最佳性能。 GiP O S p e ) m rn Gonic使用Go最快的HTTP路由器httprouteO T z 9 w C E Tr。
5.Buffa p 4 # talo
使用Buffalo使用Go构建新的Web应用程序既快速又简单。 当您开始一个新项目时,Buffalo已经为您提供了从前端到后端开发的所有设置。
它# ! / - ! s S Z .具有热重载功能,这意味着dev命令将自动监视.go和.html文件。 然后它将为您重建并重新启动您的二进制文件。 只需运行ds p p F z |ev命令,您就可以立即看到所做的更改!
Buffalo不仅仅是一个框架,而是一J 5 M | W /个整体的Web开发生态系统,可让您直接构建应用程序。
6.Goji
Goji是一个p k h轻量级且快速的Web框架,具有可组合性和n 4 B r简单性是其首要任务。 类似于net / http.ServeMux,Goji是一个简约的HTTP请求多路复用器。 它包括Einhorn支持,使您可以在Goji中获 a ;得websocket支持。
其他功能包括URL模式,可重新配置的中间件堆栈,正常关闭+ b Z Q $ z K等。 枸杞可用于生产中,@ k 5已为多个组织提供了数十U b * v Y `亿个请求。
7.Tiger Dropnic
Tiger Dropnic受Dropwizard的M F @ a & r c = Y启发,是一个Go框架,用于开发JSON WK ~ Jeb服务和构建高性能REST API。 为了忠实于Golang的原则,Tiger Tonic努力使功能保持正交。
Tiger Tonic的缺点是在构建大型后端应用程序方面的不足。
8. Gocraf5 e S x et
Gocraft是另一个功能强大但极简的框架,可提供快速且可扩展的路由性能。 它将路由从标准h P R ; R B L y库添P r P r j v l加到net /X R d 8 http包。
Gocraft是一个Go mux和中间件软件包,具有转换和反射功能,因此您可以静态键入代码。 您还可以使用内置的中间件添加可选功能或编写自己的中间件。
由于性能始终是开o # J发人员M 7 J +最关心的问题之一,因此Gocraft是开发人员的绝佳选择。 使用Gocraft框架编写后端网络应用程序t n ^ ^非常容易。
9.Mango
尽管Mango的创建者Paul Bella7 3 C s X 9 :my并未对其进行积极维护,但许多Go用户仍在使用它。 Mango的伟大之处在于其模块化。 您可以从各种库中选择要包含在项目中的库。
Mango使您可以尽可能快速,轻松地构建HTTP功能的可重用模块。 它将中间件和应用程序列表编译到单个http服务器对象中,以使您的代码保持独立。
Golang集成开发环境(IDE)
用于Golang的IDE与Go语言一起变得越来越流行。 尽管许多开发人员仍然喜欢使用文本编辑器,但许多开发人员也喜欢使用IDE。
如果您正在使用广泛的代码库 T v h K Purns| n ! z 0 ] k或goimports等。
6.使用GoCli4 8 P )pse的Eclipse
由于Eclipse是广泛流行的IDE,因此已经为其创建了许多插件。 GoClipse是用于Golang的Eclipse插件,可) G 2提供Go源代码编辑以及可配置的语法突出显示,自动缩进和大括号补全。
GoClipse还可以用作项目向导和生成器,可以立即报告语法和生成错误。 GoClipse的其他功能4 ( )包括调试功能w y $ b #和代码辅助。
7.使用GoSublime升华文本
SH A h X zublime Text是另一个复杂的文本编辑器,拥有大量的贡献者和开发M , )者社区。 因此,已为此IDE创建了h 0 B 0ocode的代码完成功能,在连接代码时检查棉绒/语法,自动添加和删除软件包导入等。
8. Vim和vim-go插件
Vim是一个免费的开源IDE,可以使用各种插件进行自定义和配置。 如果您是Golang程序员,则可以P Y 8 u ~将Vim与Fatih Arsd K Z 6 nlan创建的vim-go插件一起d $ _ S 7 U t使用。 Vim-go自动安装所有必需的二进制K X C O n文件g e V & I h ( P /能齐全的Go语言IDE,它支持其他编程语言,例如Nj m _ hode.js,Python,Ruby,Perl等。 使用此Go IDE,您可以轻松编写p $ k G干净的代码。 它的功能包括高级代码编辑器,智能代码完成,语法检查,版本控制和单元测试,以及Go代码智能功能,可用于代码浏览和代码提示。
Komodo的优点在于,它对于团队协作非常有效,因为多个开发人员可以同时编辑文档。 只需一个许可证,即可将Komodo安装在Mac,Windows或Linux上。
10.带有Go语言的IntelliJ IDEA(golang.org)支持插件
Intellif ! 7J IDEA(与JetBrains相同的公司)是可以通过Go语言支持插件与Golang一起使用的ID~ J %E。 如果要将IntelliJ IDEb ~ 1 LA与GolanH S ` ] { z _ a Tg一起使用,则需要安装此插件,尽管与Gogland相比功能有限。
Golang工具
Golang工具可用于各种项目和Web应用程序。 开发人员可以使用这些有用3 3 f T w s的工具尽可能快速,轻松地编写代t $ ` } P l A d还可以通过它检查文件的行/功能和行/N Y U * } 3 s O x参数号,然后用户可以对其进行配置。
3.Depth
深度是另一个有用的Golang工具,可帮助Web开发人员检索和可视化Go源代码依赖项树。 它可以用作独立的命令行应用程序,也可以用作您自己项目中的特定程序包。 您可以通过在解析之前简单地在树上设置适当= m s f的标志来添加自定义项。
4.Go-swagger
该工具包包含多种功能^ n C v。 Go-Swagger是Swagger 2.0的实现,可以序列化和j ) p { _ ~ ? k反序列化swagger规范。 它是RESTful API的简约但功能强大的代表。
使用Go-Swagger,您可以扩大规格文档,针对jsonschema和其他额外规则进行验证。 其- g n ~他功能包括代码生成,A w S Z Q j (基于swagger规范的API生成,基于代码的规范文档生成,扩展的字符串格式等等。
5.Go Meta Linter
如果您需要同时运行Go lint工具并标准化其输出,那么Go Meta Linter正是可以为您做的% v z。 Go Meta Linter旨在与文本编辑器或IDE集成一起使用( B = N { 5 @ S v,例如Sublime Linter插件,Atom go-plus软件包,Emacs Flycheck检查器,Vim / Neovim和Go for Visual Studio| V y m u P Code。 它还支持各种各样的linter和配置S H S H p ,文Y V 0 : L件,例如JSON。
6. Go-Callvis
Go-cay A O j 4 h t -llvis是一- j / % i / V { E个网络开发工具,可让您以Graphviz的点格式可视化Go程序的调用图。 当使用复杂的代码库构建大型项目时,此工具特别有用。 当您想了解其他开发人员的代码结构或重建其他人的项目时,这也很有用。
使用go-callvis,开发人员可以将重点放在程序中的特定程序包W g n v 上。 根据包装将功能分组,并根据类型将方法分组; 并将包n F T s j限制为自定义路径前缀,而忽略包含它们的包。
7.GonativeR K Y v
Gonative是一个简单的Golang工具,可让l s h F您使用本机库构建Go工具链,这些库可以交叉编译,同时仍使用启用了Cgo的stdlib软件包版本。
Gonative下载每个平台的二进制发行版,并将其_ ` 2 H = G库复制到正确的位置。 同时,Gonative设置正确的mod时间,以避免不必要的重建。
不幸的是,GG n f s m } ponatF ] ( Z `ive尚未在Windows上经过测试。 此外,没有提供Linux / arm支持。
8.Grapes
Grapes是一种轻量级的Golang工具,旨在通过ssh轻松分发命令w { r 8 Y ) / @ a。 它由Yaron Sumel编写并积极维护。
Grapes将很快支持完整的主机密钥验证,因此开发人员应该注意这一点。
9[ J B D +. GP 3 : 8 O T .osimple
这个Golang linter的伟大之处在于它专注于简化Go源代码。 Gosimple始终以最新的Go版本为目标,因此它需要Go 1.6版或更高版本。
如果有新的_ h : + A 8 X Z vGo版本,gosimple将建议最简单的方法来避免* I } k ^ ? w , k复杂的构造。
10.Go Vendor
Go Vendo} I Z O r /r是与标准Vendor文件夹一起使用的Golang工具。 它允许开发人@ _ ?员使用govendor add / update从$ GOPATH复制现有的依赖项。 您还可以使用govendor提取直接拉出新的依赖项或更新现有的依赖项,并通过govendor迁移来移动旧系统。
总结
如y K p t r = i果您来自JS / Node背景,则需要学习一些新的编程概念,例如协程,通道,带有编译的严格类型,接口D l x N 9 : I,结构,指针以及其他一些区别。 但是,一旦陷入困境,您会发现Golang更加易于使用和快速使用。
(本文翻译自Quintin G.的文章《Golang Guide: A List of Top Golang FR L | | T 0rameworks, IDEs & Tools》,参考:https://medium.com/@quintinglvr/golang-guide-a-list-of-top-o E g C ! ,golang-frameworks-ides-tools-e7c7866e96c9+ P w . c k g)