GO笔记之GO的那些IDE

通过前面的一系列工做后,GO的语言环境已经搭建完成。咱们也初步体验了GO提供的大部分命令。但在正式进入开发以前,还有件工做要作,那就是选择一款适合本身的IDE。前端

为何使用IDE

"程序员为何要使用IDE",在一些社区论坛,常常能够看到这样的提问。关因而否应该使用IDE,每一个人都有着本身的见解。git

早期,程序的开发并不须要IDE,那是以机器码编程为主的时代。后来随着计算机行业发展,为了进一步提高工程开发效率,IDE就产生了。程序员

要明白的是,IDE主要是经过把各种命令工具集整合起来,开发的一套易于程序开发的软件,一般它帮咱们造成一套高效的编程开发习惯。最终目标是为了提高项目的开发效率。github

了解了IDE的本质,若是喜欢折腾,咱们彻底能够把诸如vim或emacs等文本编辑器打造一款属于本身的IDE。golang

支持哪些功能

不管用的是市面上已有的IDE,仍是vim纯手动打造的IDE,都离不开一个话题:IDE涉及的功能有哪些?文本编辑的能力就没必要介绍了,它是最基本的功能。数据库

快捷键

双手不离键盘是高效开发中很是重要的一点,要作到它,咱们就须要依赖功能强大的快捷键。IDE一般都有一套独有的快捷键规范。当习惯了一款IDE,快捷键或许是你们轻易不肯更换IDE的重要缘由之一。编程

代码高亮

代码高亮主要涉及变量、函数定义、类、常量、特殊符号、关键词等。代码高亮能够提升代码阅读体验,对不一样语法采用不一样的配色方案,也可下降代码错误的发生概率。并且,IDE通常都支持自定义配色,能够由我的爱好自由设置。vim

代码格式化

为了方便团队开发,在项目开发前,一般都会制定统一的代码规范。制定好的规范须要听从,而IDE通常都支持代码的格式化功能,帮咱们更方便地实现目标。须要说明的是,不一样于GO,不少编程语言并无相似gofmt的命令,代码规范也是多样。浏览器

代码提示

IDE的代码提示能根据输入快速给出一系列的建议列表,好比参数信息、成员列表、代码片断等。为了给出更精准的提示,一些IDE可能甚至会分析用户历史的操做记录。感受这俨然已是一个小型的推荐系统了。网络

导航跳转

大型项目的代码量一般较大,涉及文件也较多。在开发时,咱们常常须要在变量、函数、类等代码间跳转。最不便利的方式,咱们能够经过键盘方向键或鼠标实现切换。IDE一般都实现了在变量、类型定义、函数定义、文件之间快速跳转的方法。

代码调试

多数状况下,经过打印函数就能够实现代码调试。但经过系统化工具提供的调试功能,咱们就能应付各类复杂的场景。调试工具一般支持各类断点调试能力、变量观察等功能。

构建编译

Linux下最经常使用的构建工具应该是Makefile,以前开发C/C++用的即是make。但有些语言项目用它构建会很复杂,好比Java。IDE的构建编译功能能够快捷地生成目标文件。编译功能一般使用的是语言自带编译器,好比GO用 go build 命令。

其余功能

固然,除上面介绍的这些,IDE可能还有不少其余能力,好比代码重构、文件历史记录、语言环境管理、数据库管理等。只要是能想到的功能,基本均可集成进来,如今的IDE俨然已经彻底超出了传统IDE的范畴。

GO有哪些IDE

2019年,GO的发展已有十年之久。在这期间出现了不少能被GO语言使用的IDE,把它们都详细介绍一遍是不现实的。接下来,重点介绍我比较了解几款IDE。

Goland

Goland,商业公司jetbrains 近两年推出的 Go 集成开发环境,它真的是无比强大。

我相信不少程序都用过他们家的IDE,好比Java的 Intellj IDEA、PHP的PHPStorm、Python的PyCharm、C++的CLion、前端的WebStorm等。使用JetBrains的IDE,咱们能够享受到它优秀的开箱即用的体验和 jetbrains 积累十几年的插件体系。

前些年,也就是Goland发布以前,若是咱们但愿用jetbrain的IDE进行GO的开发,须要经过它提供的插件支持。Goland发布后,这些插件彷佛已经下架了。

不得不认可,Goland的功能层面作的确实很是完美。不过有几点我想吐槽一下,首先必需要提的是,Jetbrians的IDE基本都存在着卡顿的毛病,资源消耗比较严重。虽然一些大牛提供了优化方案,但体验下来,和其余IDE依然没有相比。

Goland的开箱即用,使它的问题不多,确实没有多少可介绍的,装起来基本就能够开干!

VS Code

由微软开发的一款功能强大的现代化轻量级代码编辑器IDE,免费开源。经过它强大的插件扩展能力,VS Code几乎支持主流语言的项目开发。毫无例外,GO也是其中之一。

我之因此尝试VS Code,并不是所谓的极客思惟,喜欢瞎折腾。而是由于jetbrains的IDE常常会卡的心痛,并且本身常常会在不一样语言间切换。一次启动多款Jetbrains的IDE,这是很痛苦的。

为VS Code加入GO的开发能力,只需安装一款插件便可,插件地址。安装时,可能遇到一些问题,常见的就是,在安装一些依赖包时会出现网络下载失败。关于缘由就不说了,你们都明白。不过,问题仍是要解决的。

举个具体的例子吧!在GO插件时,咱们会经过go get golang.org/x/tools/xxx安装某个包,这时候大几率出现网络链接错误。咱们能够通从github找到对应的仓库,golang/tools,而后使用git命令下载后,放在GOPATH指定的目录下,而后再安装便可。

最后,插个题外话,VS Code使用的是Electron开发的,Electron是用HTML,CSS和JavaScript来构建跨平台桌面应用程序的一个开源库,NodeJS与Chromium的结合。所以,利用浏览器的特性,利用VS Code,咱们能实现不少奇葩的插件,例以下面这些插件。

GitHub Daily:装上这几个 VSCode 插件后,上班划水摸鱼不是梦

Vim GO

细究起来,vim应该是一款文本编辑器,但它却拥有了不少不应属于文本编辑器的能力,好比单词补全、ctags标签跳转、窗口分隔、崩溃文件恢复、文件diff、400多种文本高亮等。最重要的一点是,vim有一套本身的脚本语言,这为它经过插件扩展本身的能力提供了可能。

将vim扩展成一款适合本身使用的GO IDE,不只要编写许多复杂的配置与脚本,还须要各类插件的相互配合,才能实现咱们的目标。好比前面介绍的那些IDE的常见功能,在vim中都要逐一配置实现。

GO的vim环境搭建,须要用到一款很是重要的插件,vim-go。它由国外开发者提供,youtube上还有他的分享视频,有兴趣能够去看看。vim-go提供了诸如代码的编译、执行、测试、代码重构、错误提示等各类功能,具体了解可查看 vim-go教程

说明一点,虽然vim支持插件扩展,但它要集成出VS Code的体验仍是很是困难的。我是不太清楚是否有这种可能,不过即便能实现,也是困难重重。当前,我正尝试用vim配置GO开发环境,效果图以下,一些功能还不完善。等成熟后,能够写篇文章,从简到深地给你们介绍下。

当前我用的主要就是这三款IDE,Goland主要在工做中使用,而VSC和vim在平时使用。固然,还有不少其余IDE,下面也简单介绍下,但由于没怎么使用过,因此很难有经验之谈了。

Sublime Text

最初用VS Code,感受它的使用习惯和Sublime类似。但说到Sublime,都说它是强大文本编辑器,而它的编码能力也是插件扩展来的。GoSublime就是为Sublime扩展GO功能的插件。

LiteIDE 一款轻量级的IDE,据说是由中国人开发的。可能在Goland出现以前比较流行。也或许是本身孤陋寡闻,不知道如今还有多少人在用。

Eclipse 开源的IDE,盛行了多年,有着丰富的资源和粉丝人群,应该是Java开发最喜欢的IDE吧。GoEclise是Eclipse针对Goland的插件。从github了解到,这个项目好像好久没有更新了。

Atom 与VS Code同样,都是基于Node-Webkit,即Electron,开发的。是由github开源的文本编辑器。go-plus是Atom针对Golang开发的插件

总结

本篇文章从为何要使用IDE谈起,介绍了IDE的一些发展史。同时,总结了一款基本的IDE一般都会提供哪些功能。只要了解了这些,能够帮助咱们之后更好地使用它们。最后,介绍了如今市面上流行的几款IDE,并在我力所能及的范围内分析了它们各自的优劣。

相关文章
相关标签/搜索