GopherChina 大会即将在4.15 - 4.16 在上海小南国花园酒店举办,GopherChina大会是国内最大最专业的Go大会,聚集了全中国各地的Gopher一起分享交流,大会希望通过大家线下的交流,讲师的分享,让大家能够了解目前Go动态,应用场景,技术细节等。
会前我们对本次大会的讲师之一、七牛云大数据开发高级工程师——孙建波老师进行了文字专访。
1、首先介绍一下自己。
我是来自七牛的大数据研发工程师,参与了七牛的大数据平台整条链路多模块的架构设计以及开发工作,包括流式处理服务、时序数据库服务以及日志检索服务。在此之前主要研究和参与Cloudfoundry、Kubernetes、Docker等容器与容器云相关工作,是《Docker容器与容器云》一书的主要作者之一。
2、回忆一下与Golang的渊源。是什么原因决定尝试Golang?自己用Go语言实现的第一个项目是什么?当时 Golang 有什么令人惊喜的表现,又有什么样的小不足,这个不足在Golang已经更新到1.8版本的时候是否已经得到改善?
我从2013年开始研究和学习使用PaaS云平台,那时候看到Cloudfoundry开始整个用Golang重构了一遍原来Ruby的实现,就对Golang 产生了很大的兴趣。后来越来越多的云计算项目用到Golang,自己也因为学习和研究阅读了一些开源项目(etcd\kubernetes\docker等),被Golang简单务实的风格吸引,成为了Golang的忠实用户。
用Golang实现的第一个比较大的项目是我的毕业设计,一个自动化部署和监控平台。当时Golang用起来就觉得很方便,啥功能基本都能从开源的项目里借鉴,几十行代码就能快速构建一个rest server。缺憾就是觉得相关的库函数(包括标准的和第三方的)还是太少,性能方面则是GC还是太慢,对于入门可能还缺少一个比较经典好用的IDE。到现在,基本这些大的问题都已经没有了。
3、2009年诞生至今,Go语言基本统治了云计算,作为最专业的Go语言专家,您认为这是由于它的哪些优雅的特性?Golang未来还会有什么样的改进和突破?
在我看来Golang最大的特性是简单务实,这个简单包含的内容很多,比如接口(interface)的设定,只要实现了对应的方法就能作为那一类型的接口调用,去掉了复杂的对象继承关系;比如说goroutine以及channel的设计,你很难找到一个语言像Golang这么自然而轻易的支持并发编程;比如说代码包的引用方法,通过go get你几乎可以无障碍的获取和使用任意一个第三方库; 这个简单还包括上手快,一个对Golang零基础的工程师基本也能一眼看懂Golang代码。务实指的是他不提供一大堆花里胡哨的封装,但是它却愿意为工程化提供最大的便利,比如统一的代码格式化、测试的小工具等等。还有Golang官方提供的最大的承诺,1.0后永远向前兼容,保证了工程代码的可维护性。
我想Golang的着眼点不止于云计算,除了在性能方面做出更大的提升以外,肯定还会在构建Web项目、构建移动端/桌面端应用等多方面大放异彩。
4、之前是否有关注到Gopher China大会,对大会的风格和内容有什么样的印象?
之前就关注过Gopher China,风格与Golang一样务实,每次都有Go团队的人主讲,干货很多,更何况我们七牛每次都是主办方之一,哈哈。
5、作为讲师也是参会者,对于今年的Gopher China大会的哪些议题有所期待?
基本上每个topic都挺感兴趣,最感兴趣的是“Understanding Go interfaces”,据说要给大家讲一下interface真正的最佳实践,我都有点迫不及待想要知道了。
其实,我的topic就给大家准备了不少干货,我自己都很期待,哈哈。
6、现在很多企业项目都在准备转Go,对于这些项目的负责人有没有建议和经验分享?
前面就提到13年那会就惊讶地发现Cloudfoundry开始全面抛弃Ruby用Golang重构全部项目代码,站在17年的现在来看,转Go自然是明智之举。
另一方面也不用担心Golang招人的问题,从Golang的易上手程度来看,找一个实习生就能快速融入项目开发中。
但是最好警惕用Java的思维去写Golang的代码,一不小心就把Golang写的特别重。
7、有没有你觉得很酷的Gopher?可以回答自己哟~
谢大就很酷,beego项目star过万,众多粉丝,很了不起。
当然,我们七牛以老许为首几乎全公司都是很酷的Gopher,哈哈。
有疑问加站长微信联系(非本文作者)