扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
第一种:LiteIDE
十余年的莲湖网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整莲湖建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“莲湖网站设计”,“莲湖网站推广”以来,每个客户项目都认真落实执行。
LiteIDE是一个简单的开源IDE,值得注意的是,它是GO语言2012年正式版发布的首个IDE,由Qt开发,它看起来类似于Visual Studio等其他编译器。
由于它是为golang设计的,LiteIDE为开发人员提供了许多有用的功能,包括可配置的构建命令,高级代码编辑器和广泛的golang支持。其他功能包括代码管理、gdb、Delve调试器、自动完成和使用WordApi的主题,基于MIME类型的系统等。
第二种:VS Code
它是微软开发的广受欢迎的开源IDE,有一个开箱即用的go扩展可供VS Code使用。VS Code插件为开发人员提供了很多功能,包括与许多go工具集成。
VS Code通过IntelliSense,内置git集成,直接从编译器调试代码等功能提供智能完成功能;VS Code具有高度可扩展性,并通过其许多扩展提供了许多自定义选项,还提供了几十种语言的支持,成为受开发者欢迎的工具。
第三种:Atom
开发人员可以利用这个Atom IDE改进的语言集成与更智能的编辑器。开源的go-plus软件包使开发人员更容易在GO中进行编程。
Atom和go-plus软件包为golang提供工具,构建流程,linters、vet和coverage工具的支持;其他功能包括自动完成、格式化、测试和文档。
第四种:Vim
Vim有许多插件可以帮助开发人员更轻松地编辑他们的GO代码;Vim-go插件自动安装所有必要的东西,为Vim中的GO开发人员提供更平滑的集成。
Vim-go具有许多有用的功能,包括编译器,改进的语法高亮和折叠,完成支持以及一系列具有集成支持的调试程序。还有一些使用的高级源分析工具,包括GoImplements、GoCallees和GoReferrers。
我喜欢jetbrains系列的IDE+go插件。不过我要说的是这个问题主要看你的观点如何。
说eclipse:
构建方式是使用go install 命令,每一次编译运行都是go install。这样的好处就是如果你有很多的包,下载下来并没有编译,这样每次编译速度是很快的。而且(!)go install 符合go官方的项目结构,官方说过了,一个go的项目应该是以个gopath,包含src,pkg,bin三个主要目录。所以说go install个人认为才是主要的go编译方式。
说eclipse的缺点:
其实eclipse插件的go编译方式,还有目录结构,项目结构,都是非常完美的!!!!真的很完美!可是,他的代码提示,太差件!大括号都不能自动补全,gdb 32bit 64bit兼容问题,eclipseC++ 没有html js插件,需要手动安装,几乎不能开箱即用。不过如果你是开发算法,数据处理,还是推荐eclipse的,毕竟其他都无关紧要。
说jetbrains:
说先说clione肯定不适合,新建项目没有向导,导致改成go项目各种不开心,比如图标对于我来说就无法接受go lib 不是小耗子~这是次要的,重要的是各个文件都是灰色的(没有在cmake中包含的结果),然后说剩下的,phpstorm这个不说了,估计很少有人插件按在这里,webstorm,体验也不是很好,idea?体验很好,可是毕竟比较重,尤其是现在加入了自家的K啥玩意(无意冒犯,没记住单词)~可是话说回来,go跟C系列IDE配合才是最佳,跟java系列一点不搭关系,用idea似乎有点格格不入,但是!idea支持新建项目向导,lib的图标也很清晰,最后还是选择idea吧,期待clion的强大起来!
再说jetbrains系列缺点:
插件的构建方式是go buiild 这个让人很不爽,我们几乎不确定会构建到什么地方去,还要每次设置一下run配置。这个可能无关紧要,毕竟不是什么大的毛病,可是go build不能缓存.a文件,直接构建的结果就是很多第三方包的情况下很慢!所以建议安装包的时候手动install 一下解决这个问题。自带代码格式化,这个格式化跟go 格格不入,总的来说就是蛋疼,心碎,菊花痒。
最后说liteIDE:
轻量级IDE,我可以说是国人GO伟大作品典范,然而默认构建也是go build,项目管理方式不符合go官方标准。代码提示不能自动导入(eclipse也不能),不过如果你的项目是以包为单位的,那么另当别论。一定很不错,毕竟是轻量级专门针对GO的IDE!
说这些,其实还有很大一部分取决于你的项目是用vendor机制管理,还是godeps机制管理依赖关系。go不像java拥有强大的几乎天下一统的maven(无意冒犯,暂不评价其他构建套件)。
go没有官方包仓库。
go没有官方包管理工具。
go没有官方自动化构建套件。
上面三个没有是致命要害。导致民间各种百花齐放。
说说我的项目怎么管理
gpm 一个shell工具(windows下你可以用git的bash,或者cygwin~)
我是严格艳照官方推荐方式管理go项目,一个go项目一个gopath。系统的gopath只是为了安装go命令,我没有配置gobin,意义不大。
项目的依赖跟我的代码包都在src下(非vendor)
vendor用来存放包的特殊依赖,发布项目直接把依赖包发布上去(公网管理则只上传依赖关系文件 godeps文件)
资源文件等都放在src目录同级,编译文件放在bin,引用直接../引用。
go 可以开发桌面应用,但并不是很舒适。
可以使用的GUI库有:
1、goqt,LiteIDE作者出品,Go和QT的绑定,还未发布
2、go.uik,纯Go实现的并发UI工具
3、walk,Windows Application Library Kit
4、gform,Windows GUI framework
目前的话walk用得比较多
不过go的GUI库用起来没有C#、C/C++的那么顺手。
这个问题不久之后应该会有所改善,毕竟用Go开发桌面的需求在不断增加。
目前我采用的是用go http 做后端,Webkit+HTML5 做界面,表现力很好,前端不需要学习新知识,一般的管理类应用都能搞定。
1、服务器编程:以前你如果使用C或者C++做的那些事情,用Go来做很合适,例如处理日志、数据打包、虚拟机处理、文件系统等。
2、分布式系统、数据库代理器、中间件:例如Etcd。
3、网络编程:这一块目前应用最广,包括Web应用、API应用、下载应用,而且Go内置的net/http包基本上把我们平常用到的网络功能都实现了。
4、开发云平台:目前国外很多云平台在采用Go开发,我们所熟知的七牛云、华为云等等都有使用Go进行开发并且开源的成型的产品。
5、区块链:目前有一种说法,技术从业人员把Go语言称作为区块链行业的开发语言。如果大家学习区块链技术的话,就会发现现在有很多很多的区块链的系统和应用都是采用Go进行开发的,比如ehtereum是目前知名度最大的公链,再比如fabric是目前最知名的联盟链,两者都有go语言的版本,且go-ehtereum还是以太坊官方推荐的版本。
自1.0版发布以来,go语言引起了众多开发者的关注,并得到了广泛的应用。go语言简单、高效、并发的特点吸引了许多传统的语言开发人员,其数量也在不断增加。
使用 Go 语言开发的开源项目非常多。早期的 Go 语言开源项目只是通过 Go 语言与传统项目进行C语言库绑定实现,例如 Qt、Sqlite 等。
后期的很多项目都使用 Go 语言进行重新原生实现,这个过程相对于其他语言要简单一些,这也促成了大量使用 Go 语言原生开发项目的出现。
LiteIDE是一款专门为Go语言开发的跨平台轻量级集成开发环境(IDE),由QT编写。
LiteIDE主要特点: 支持主流操作系统
Windows
Linux
MacOS X Go编译环境管理和切换
管理和切换多个Go编译环境
支持Go语言交叉编译 与Go标准一致的项目管理方式
基于GOPATH的包浏览器
基于GOPATH的编译系统
基于GOPATH的Api文档检索 Go语言的编辑支持
类浏览器和大纲显示
Gocode(代码自动完成工具)的完美支持
Go语言文档查看和Api快速检索
代码表达式信息显示F1
源代码定义跳转支持F2
Gdb断点和调试支持
gofmt自动格式化支持 其他特征
支持多国语言界面显示
完全插件体系结构
支持编辑器配色方案
基于Kate的语法显示支持
基于全文的单词自动完成
支持键盘快捷键绑定方案
Markdown文档编辑支持
实时预览和同步显示
自定义CSS显示
可导出HTML和PDF文档
批量转换/合并为HTML/PDF文档 Sublime Text 2(以下简称Sublime)+ GoSublime + gocode + MarGo的组合。
其优点有: 自动化提示代码。 保存的时候自动格式化代码,让您编写的代码更加美观,符合Go的标准。 支持项目管理 支持语法高亮 熟悉Java的读者应该对于idea不陌生,idea是通过一个插件来支持go语言的高亮语法,代码提示和重构实现。
极客时间的GO语言进阶训练营是很不错,知识内容涉及比较全面,从编程语言到中间件、系统设计再到架构都安排了相关课程,老师们在课程中不讲语法和用法,重点传递设计原理和最佳实践,讲课的过程中贴合工作场景,分享真实的干货案例,启发学员的思维让其自主进行学习,还帮学员建立系统大局观,有助于学员深层次的提升。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流