标签 github 下的文章

vim-go更新小记

自从上一次配置好Mac上的Golang Vim开发环境,基本上就没怎么动过。近两年过去了,Go已经升级到了1.7版本Vim-go截至目前也已经演化到了1.8版本了。社区的积极关注和使用,让Vim-go的作者Fatih Arslan备受鼓舞,于是近一年来,积极为vim-go添加新功能,发布新版本,并编写了vim-go的详细tutorial。这让我动了更新Vim-go版本的念头,于是就有了本篇内容。

已经记不得当初第一次配置vim-go时,vim-go的版本号是多少了。经过近两年的发展,vim-go已然正式成为Vim下Go开发环境的标准Plugin了。Go从当年的1.4升级到1.7,相关工具也跟着一起升级,比如oracle变成了guru,名字都换了。支持go的编辑器也逐渐增多并日益成熟,从最初vimliteIDE,到后来的eclipseIntelliJ Ideaatomsublime text以及vscode对golang都提供了支持。这样一来,无论你之前是哪种IDE的拥趸,你都能找到得心应手的环境走入Golang世界。

我个人一直用vim,sublime text3曾经玩过,没玩熟,卸了。目前机器上还装了一份vscode,感觉在IDE领域中,微软的影响力和成熟度不容小觑,vscode + golang extension从入门门槛来看,还是非常低的。即便vim-go进化到1.8版本,仍然不如vscode安装体验来得方便。当然这不全是vim-go的问题,而是vim的设计哲学所致。

无论是vim-go还是vscode golang plugin,都要依赖golang的周边工具,主要包括gocodegoimportsgurugodefgolintgometalinter等。在这方面,vim-go提供了安装依赖工具的方法“:GoInstallBinaries”,或在外部通过:vim -c “GoInstallBinaries” -c “qa”安装(在安装vim-go之后);而vscode则会自动探测其所依赖的工具是否安装,如果没有安装,会在vscode的下方给出提示,点击提示,会安装相应的工具。

BTW,自从近期golang官网:golang.org不用再翻墙后,go get下载golang.org域名下面的各种工具也简单了许多,大陆的Gopher们再也无需担心go package下载的问题了。

升级vim-go之前,建议先备份好.vimrc文件:

cp .vimrc .vimrc.bak.20160908

vim-go插件安装由很多方法,在vim-go tutorial中,vim-go作者选择了vim-plug,而没有用之前的vim插件管理工具vundle.vim,方法都是大同小异:

下载vim-plug:

$curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 67682  100 67682    0     0   7020      0  0:00:09  0:00:09 --:--:-- 12576

安装vim-go:

在.vimrc中填写如下内容:

call plug#begin()
Plug 'fatih/vim-go'

然后执行”:PlugInstall”即可。

在安装依赖工具期间,发现mac原生自带的vim(macvim,又叫mvim,安装在/usr/local/bin/mvim)版本还是7.3.xx版本,无法满足一些工具的要求,于是通过brew安装vim(安装在/usr/local/Cellar/vim/7.4.2334/bin/vim),然后通过/usr/bin/vim的一个符号链接连过去即可。

$ll /usr/bin|grep vim
lrwxr-xr-x     1 root   wheel        38  9  8 16:21 vim@ -> /usr/local/Cellar/vim/7.4.2334/bin/vim
... ...

注意,考虑要安装neocomplete以支持实时completion(补齐),vim需要有lua支持,因此执行brew install时要带上–with-lua参数:

brew install vim --with-lua

vim-go升级版安装后,可按照vim-go-tutorial中的步骤,体验一下vim-go的强大,同时对.vimrc进行相关配置,并安装缺失的vim插件,比如neocomplete、UltiSnips等。我针对vim-go 1.8配置好的.vimrc在这里可以下载到。

具体细节这里就不提了,如果还有哪些细节不清楚或实验没成功,可以回过头参考我那篇《Golang开发环境搭建-Vim篇》。

GopherChina2016后记

4月17日晚22:51,伴随着D7次动车缓缓驶入沈阳北站,拖着疲惫的身体和些许兴奋的我,结束了两天的GopherChina 2016之旅。

一、GopherChina大会

GopherChina大会是中国大陆地区Golang语言推广第一品牌。2015年在上海成功了举办了第一届大会;2016年,大会发起人astaxie为充分照顾帝都(及周边)Gophers们的情绪^_^,将GopherChina 2016搬到了北京举行。

这是我第一次参加GopherChina大会,也是由于“第一次”,心里有种莫名的小兴奋。

第一天会议,8:30来到亚洲大酒店。虽然酒店外面人员密度稀疏,但主会场入口处却是接踵摩肩,人山人海:注册、领“Gopher战斗服”、收集卡片印章,场面好不热闹,不过主会场内部倒是一片井然有序之气象。会场内主屏幕上循环播放着这次大会几大赞助商的宣传视频:七牛DaocloudGrabtaxi等。作为Gopher,首先应该感谢这些金主,没有他们的”金元”,谢大也难为无米之炊不是。

img{512x368}

二、Topic主观短评

大会的日程很紧张,Topic较多,能全神贯注的聆听每个Topic基本很难。开始还好,后来只能重点听听自己感兴趣的了,第二天的时光尤甚。相信坚持听完两天的topic的Gopher们都或多或少有疲惫之感。下面就自己的感受,用短短一两句话,主观短评一下各个Topic:

第一天

陈辉的“Go 人工智能”:
话题挺“唬人”^_^,实质则是陈总个人的opensource project show,从“悟空”到“弥勒佛”一应俱全。并且鉴于陈总的Facebook、Google和Alibaba的从业经历,他的开源项目应该值得学习一番。

刘奇的“Go在分布式数据库中的应用”:
刘总依旧幽默风趣,这次除了带来了TiDB外,还带来了砸场子的用Rust实现的TiKv,为晚上在技术Party上撕逼打下了伏笔^_^。

李炳毅的“Go在百度BFE的应用”:
“车轮大战、车轮大战、车轮大战”,重要的事情说三遍!不过这仅是go在baidu特定场景应用下的tradeoff。个人倒是不建议关掉默认GC。

毛剑的“Go在数据存储上面的应用”:
基于FaceBook的Haystack paper,为B站造的一个轮子,细致入微。其中的设计考量值得同样在做分布式文件系统的朋友们借鉴和参考。

Marcel van Lohuizen的”I18n and L10n for Go using x/text”:
Marcel也是今年GopherCon2016的speaker,这次来到GopherChina讲解x/text也是让我们先睹为快了。Marcel 对x/text进行了详尽的分类讲解,以及给出当前状态、todo 以及 plan。内容结构很有外国speaker共同具备的那些特点。

米嘉 的”Go build web”:
对Go web dev进行了庖丁解牛,Go味儿十足。现场的很多web dev都反映很有赶脚。

邓洪超 的“Go在分布式系统的性能调试和优化”:
来自CoreOS的邓洪超很萌,演讲很有激情。但也许是外语说惯了,中文反倒不那么利落了。不过整体效果依旧不错。

沈晟的”Golang在移动客户端开发中的应用”:
心动网络(前verycd)的沈总讲解了心动网络将gomobile 用于游戏客户端client library的例子。记不得沈总是否说过心动网络已经在正式产品中使用gomobile了,不过无论这样,这种“敢为天下先”的气魄还是值得赞颂的^_^。

技术Party

晚上大约80多人聚集在二楼会议厅举行GopherChina技术Party,Party上,PingCAP的刘奇引发Rust vs. Golang的重度pk。由于高铁晚点而迟到的七牛CEO许式伟也再次站出来成为golang的捍卫者。pk从语言特性延伸到社区文化,“民主集中制”的精英文化主导的Golang社区与纯粹美式民主的Rust社区到底孰好孰坏,大家也是众说纷纭,见仁见智。外国友人“马尾辫”(Marcel)和大胡子(Dave Cheney)也参与了论战,不过他们自然是站在Golang一方。之后大家在Docker话题上又燃战火,人们就Docker究竟能给企业和开发者带来何种好处进行了深入PK。

第二天

Dave Cheney的”Writing High Performance Go”:
Dave Cheney不愧为Go语言的知名布道师,这个topic“编程哲学”与实践并存,干货满满,估计事后消化也需要很长时间。值得一提的是本次大会只有Dave的slide是采用Go team常用的.slide格式文件制作的,赶脚非常go native。

吴小伟的“Go在阿里云CDN系统的应用”:
围绕Go在阿里CDN的应用,看得出Go用的还是蛮多的。印象深刻的一个观点:老板决定语言!

许式伟的“谈谈服务治理”:
大家似乎都想知道国内第一家采用golang技术栈实现的七牛,内部到底是如何使用go的,但许总就是不能让我们如愿哈。

孙宏亮的”Go在分布式docker里面的应用”:
赞助商Daocloud的技术和产品展示,可以看到Daocloud内部的一些架构设计和实现,值得参考。

高步双的“Go在小米商城运维平台的应用与实践”:
由于困了,听这个speak时很迷糊,无感。

赵畅的“Golang项目的测试,持续集成以及部署策略”:
我也是第一次听说Grab这家公司。不过赵畅这个speak我很喜欢,把公司技术栈的变迁讲的很生动,关于golang的实践和一些数据正是我们需要的。

孙建良的“Go在网易广域网上传加速系统中的应用”:
不知为何,slide的首页标题居然是:Go&网易云对象存储服务。原以为标题发生了切换,但没过几页,又回到了“广域网上传加速系统”,这两者似乎也没啥联系啊。也许是我没听完提前离场赶火车的缘故吧。

三、会后

谢大组织的这次GopherChina2016非常成功,表现为几点:

  • 参会者众多,会场爆满,还有不辞辛苦,站着聆听的gopher。
  • 多数Speaker表现优异,达到了Gopher传道的目的。
  • 技术Party气氛热烈,论战持久,让Gopher收获满满。
  • 硬件以及组织到位,会场井然有序。
  • 这次Gopher战斗服非常棒,材质很好。
  • 会场的水、水果、奖品、party前自助餐也很给力。

这里对谢大也表示大大的感谢!

个人也有一些小建议:

  • 多些场上互动,尤其是下午场,易困倦。如果此次能将daocloud的抽奖环节挪到主会场,全员参与,想必更能活跃气氛,为大家提神^_^。
  • 从GopherChina大会品牌角度出发,如果能统一讲师slide模板会更好,如果都能使用go team那种native的.slide文件格式就更Go味道十足了。
  • 希望类似GopherCon大会那样,增加open keynote(语言历史,当前,未来plan)和close keynote(社区文化推广)两个环节。

另外我觉得应该对讲师slide内容做一些审核,考虑像gopherchina这样的围绕一门编程语言的conference,到底什么话题才是最佳的呢?当前借着Go之名,实则讲解某一行业领域系统架构的内容似乎多了一些。针对语言本身、语言标准库、语言工具和语言最佳实践的内容略少了一些。

如果要谈语言应用,那个人认为至少如下几个方面应该提及:

  • 使用什么go版本
  • 版本切换时的差异(内存、cpu、GC延迟、吞吐)和坑
  • 用Go开发了哪些服务?为何?为何其他服务不用Go开发,理由。
  • 遇到问题/坑,如何解决
  • 组织内Go的最佳实践

各位讲师的slide后续还得慢慢消化,另外感谢极客学院展台工作人员的拍照服务^_^:

img{512x368}

如发现本站页面被黑,比如:挂载广告、挖矿等恶意代码,请朋友们及时联系我。十分感谢! Go语言第一课 Go语言精进之路1 Go语言精进之路2 Go语言编程指南
商务合作请联系bigwhite.cn AT aliyun.com

欢迎使用邮件订阅我的博客

输入邮箱订阅本站,只要有新文章发布,就会第一时间发送邮件通知你哦!

这里是 Tony Bai的个人Blog,欢迎访问、订阅和留言! 订阅Feed请点击上面图片

如果您觉得这里的文章对您有帮助,请扫描上方二维码进行捐赠 ,加油后的Tony Bai将会为您呈现更多精彩的文章,谢谢!

如果您希望通过微信捐赠,请用微信客户端扫描下方赞赏码:

如果您希望通过比特币或以太币捐赠,可以扫描下方二维码:

比特币:

以太币:

如果您喜欢通过微信浏览本站内容,可以扫描下方二维码,订阅本站官方微信订阅号“iamtonybai”;点击二维码,可直达本人官方微博主页^_^:
本站Powered by Digital Ocean VPS。
选择Digital Ocean VPS主机,即可获得10美元现金充值,可 免费使用两个月哟! 著名主机提供商Linode 10$优惠码:linode10,在 这里注册即可免费获 得。阿里云推荐码: 1WFZ0V立享9折!


View Tony Bai's profile on LinkedIn
DigitalOcean Referral Badge

文章

评论

  • 正在加载...

分类

标签

归档



View My Stats