2019独角兽企业重金招聘Python工程师标准>>>

【eoe专访】七牛云储存创始人:揭开GO语言的神秘面纱

 作者:  小白的白  来源: eoe  标签:  Go语言揭秘  揭秘Go语言  七牛CEO   04月03日

许式伟,七牛云存储CEO,曾任盛大创新院资深研究员、金山软件技术总监、WPS Office 2005首席架构师。在接触Go语言后即可被其大道至简、少即是多的设计哲学所倾倒。与团队合著《Go语言编程》。七牛云存储也是国内第一个吃螃蟹的团队,核心服务完全采用Go语言实现。

为此,eoe对这样一个传奇的技术员和团队进行了专访,希望大家看完后能对Go语言有全新的认识,扫除大家学习新技术语言恐怖和障碍。同时许总也谈了如何从一个普通程序员成长为首席架构师,做程序员与做Team Leader与CEO的区别,希望对技术成长和创业感兴趣的开发者有所帮助。

eoe:许总您好,感谢您从百忙之中抽出时间来接受eoe专访,您能简单介绍下您自己和七牛团队吗?

许式伟:大家好!我是七牛云存储CEO许式伟。七牛云存储是专为移动时代开发者打造的数据管理平台。主要托管企业的富媒体(图片和音视频等)文件,为企业提供了一站式在线数据托管、全国乃至全球范围的上传下载加速、以及云端数据处理(如图片缩放、打水印、音视频转码、流媒体播放等),省钱省时省力又省心。

七牛云存储的出现并非我偶然的想法。我从 2000 年加入金山,做的最后一个软件是WPS Office 2005,任首席架构师。2006年开始,整个金山面临互联网转型,在这样的背景下我向CEO雷军申请成立了金山云存储实验室(金山快盘的前身)。刚开始这个实验室有技术研究为主的味道,但很快我发现云存储其实是一个技术门槛很高的方向,并且在可预见的未来有很大的商业价值。从此之后,我的职业规划一直围绕它展开。2008年我离开金山,先在百度的网页搜索部呆了很短的时间,随后在 2009 年初加入了盛大创新院,发起了祥云计划(很巧合现在北京市也搞祥云计划)。

2011年中,感觉到了移动互联网产业蓬勃发展,云计算到了落地的阶段,我决定辞职创业。我主要的创业伙伴来自金山和盛大,都是长期合作默契的同事们。于是七牛就这样诞生了。很感谢我的伙伴们,我们一起在云存储这条道路上已经走了很多年。我们会把它作为需要终生奋斗的事业来经营。

到今天为止,七牛云存储在业界也树立起了自己的口碑,这一点令我很欣慰。但是,未来的路还很长。在产品上我们希望七牛云存储能够与其他大品牌公司产品形成差异化、互补的关系,大家一起努力改善创业者的生存环境。未来七牛会在云存储技术架构,富媒体云端处理的应用,以及数据传输加速层面做更多的优化与创新。

eoe:您是一位开源爱好者,发布过包括WINX、TPL等十余个C++开源项目。做开源项目能对技术人员本身有哪些方面的提高?如果以前没接触过开源项目应该从哪些方面着手?

许式伟: 开源是一种奉献的精神,也是Geek精神的体现。做开源项目主要有这些好处:
1、协作的能力,可以深刻理解开源项目如何进化,如何分工,如何与大家协同合作。
2、软件工程的能力,开源社区往往把做事方法提炼的很好,比多数正规商业公司的研发过程高效很多,这种经历能够提升个人对软件开发过程的理解。
3、与人交流能力,开源过程中可以了解别人的想法,也可以与别人交流自己的想法。
4、推广自己的能力,做好一个东西相对容易,但让别人知道这个东西好,又是另一种能力。

没接触过开源项目也可以从下面三点尝试:
1、勇气,走出第一步很重要,此后就一发不可收拾。
2、如果不知道怎么开始,可以从参与自己感兴趣的开源项目开始,了解别人怎么做的,自己可以参与哪些事情。
3、也可以从自己平常提炼的一些独立模块开始,如果你觉得有人可能需要,就可以把它贡献出来,当然,先要记得去征询下公司的同意,避免出现知识产权上的纠纷。

eoe:众所周知,Go语言是谷歌在07年开始的业余项目。从09年11月正式对外发布到12年3月发布的正式版也经历了近三年时间。而您的专著《Go语言编程》在2012年9月就正式出版。您是从何时开始关注Go语言?又是什么原因驱使您花时间去研究Go语言并把它投入到实际工作和项目中?

许式伟:我从 Go 语言发布之初就留意到这门语言,但是当初只是简单看了下语法,没有深入研究,也没觉得它好在哪里。真正花心思去研究Go,还是要说到七牛。11年5月份,我们决定创立七牛,在为七牛做技术选型时,我重新认真评估了Go语言。我大概花了2周用Go语言写了几个模块,就深深喜欢上了这门语言,认为这门语言将是在未来10年引领潮流的语言,所以当时我给伙伴们发了一封信,说:“创业过程中我们会面临很多选择,必然有一些选择最终会被证明是错误的,但是选择Go语言作为我们的服务端开发语言,很可能会成为我们最正确的一个选择”。如果当初还有人怀疑这一点的话,我觉得今天这个论断很大程度已经被证实。

eoe:七牛云存储是国内第一个吃螃蟹的团队,核心服务完全采用Go语言实现。你们采用Go语言作为核心服务的基础,是基于什么考虑?为什么不采用其它更成熟稳定的语言?如何保证核心服务的性能与稳定?

许式伟:最初去评估Go语言最重要的原因是,我们没有找到一门合适的语言。从云计算领域的主要技术方案看,最受欢迎的是C++和Java。我们知道亚马逊是用了Java。我个人尝试Java做服务端开发是在2007年金山实验,Java的风格比较拘束或严谨,与我推崇的编程风格不合,并且在分布式系统开发上没有显著的优势,所以才会关注Erlang(也因此有了ECUG社区)、Go等小众语言。在我评估完Go语言后,我认为它是云计算领域最合适的开发语言。

性能来说,Go语言作为互联网时代的C,并且是编译型,性能是绝对不低的,完全满足要求,而且可以预期未来会好于Java。

稳定性来说,云计算都是假设单机是可以宕机的,要在单机的不可靠下让整个集群可靠(这种宕机甚至不为用户所感知)。我们并不担心单个进程的稳定性,哪怕Go程序每天会挂一次,对我们而言,也是可以接受的。

eoe:Go语言才推出不久,这方面人才很稀少,而你们团队项目的核心服务又是基于Go语言编写,怎么解决Go语言人才紧缺的问题?是招进来从头开始学习还是需要有相关经验的?

许式伟:Go语言入门门槛非常之低。有任何其他语言的背景,学习Go语言只需要一周的时间。我们面试从来不问你会不会Go语言。我们关心的是开发者的能力与我们业务的匹配度,比如他算法基础如何、是否擅长网络编程、是否适合创业(对事情的责任感)等等。

eoe:许多开发者对Go语言有很感兴趣,跃跃欲试。但又由于目前Go语言还不是主流,他们不敢贸然投入精力去研究。就您学习Go语言及现在工作中的使用经验来看,对想学习Go语言的开发有什么建议或意见?学习过程中有些什么技巧?需要哪些技术积累?

许式伟:我对Go的学习者的建议是:与其观望,不如趁早体验。Go是未来,你的投入肯定有一天会得到巨大回报,而且越早了解,你的优势就越明显,这个回报也会越好。学习技巧方面,兴趣是最好的老师。计算机是实践科学,做一个自己喜欢的项目,胜过做100个习题。我唯一的建议是,项目最好是做服务器相关的,否则和Go目前擅长的领域不合,难度会高一些(但是如果你喜欢挑战也没有问题)。

eoe:您在2000年进入金山,到2008年离开金山时,已经是WPS首席架构师,您是怎样在这8年时间里从一个程序员成长为架构师的?可以谈谈其中的成长历程吗?这其中需要怎样的技术背景和学习技巧?

许式伟:我认为成为架构师并不需要哪些技巧,其实很多是和人的做事方式有关。我个性比较喜欢反思,一段代码写好了以后,会反复进行代码审查,是不是可以写得更漂亮。我一直认为成为架构师唯一的诀窍,就是不断实践+反思的过程。对架构师而言,永远不要忘记需求。架构终归是要满足某种需求。架构能力完全体现在你对需求的准确把握。准确把控需求,不只是要准确理解当前的需求,也要准确理解需求的变化,预见什么会发生,而什么不会发生(防止过度设计)。

eoe:您现在已经是七牛的CEO,能给各位开发者分别谈谈做一个程序员、、Team leader和公司CEO的区别吗?您是怎样在工作中提升自己的管理能力的?

许式伟: 作为程序员,除了不断提升自己的技能,让一件事情完成地又快又好;还需要考虑自己如何促进组织的进化,让整个团队的协作更高效。

Team Leader保障的是整个团队的工作效率,不断改善团队的做事方法,让事情更有序地进行。

CEO这个称呼还是蛮沉重的,因为这是我第一次创业,所以我还算不上一个非常称职合格的CEO。但我明白,作为七牛的CEO:要懂得知人善用,尽可能为员工创造好的条件;与合作伙伴保持良好的合作关系;倾听用户的声音,理解用户的诉求,让用户喜爱我们的产品。

一个好的管理者,首先需要具备长远和全面的发展眼光,其次是在工作中要有自己某方面突出的专业能力,再有就是自身的人格魅力。简言之,要上行下效,只有自己做的好别人才会看得起你并且愿意为你工作。

转载于:https://my.oschina.net/mavericsoung/blog/138107

七牛云存储——许式伟相关推荐

  1. 七牛云创始人许式伟的首次完整架构经验分享

    前段时间,极客时间找我推荐一门架构相关的课程,其实架构这个东西对于所有程序员而言都是渴望企及却又很难企及的东西,所以我是有些怀疑是否通过一门课程就能将架构这个东西学好的. 但是看到这门课程的作者是许式 ...

  2. 《介绍一款开源的类Excel电子表格软件》续:七牛云存储实战(C#)

     两个月前的发布的博客<介绍一款开源的类Excel电子表格软件>引起了热议:在博客园有近2000个View.超过20个评论. 同时有热心读者电话咨询如何能够在SpreadDesing中 ...

  3. 七牛CEO许式伟:服务端开发那些事儿

    [http://www.donews.com/company/201511/2907818.shtm] 七牛CEO许式伟:服务端开发那些事儿 2015-11-09 11:14:05 服务端开发对于任何 ...

  4. Node开发文件上传系统及向七牛云存储和亚马逊AWS S3的文件上传

    背景起,有奏乐: 有伟人曰:学习技能的最好途径莫过于理论与实践相结合. 初学Node这货时,每每读教程必会Fall asleep. 当真要开发系统时,顿觉精神百倍,即便踩坑无数也不失斗志. 因为同团队 ...

  5. ueditor与七牛云存储结合

    2019独角兽企业重金招聘Python工程师标准>>> 摘要:  ueditor与七牛云存储结合,主要是表单api. ueditor上传图片到七牛云存储 ueditor结合七牛传图片 ...

  6. 七牛云rs.php位置,七牛云存储PHP生成管理凭证以及查看文件(state)

    管理凭证(Access Token)是七牛云存储用于验证管理请求合法性的机制.官方建议仅在业务服务器端使用这一类凭证,避免意外授权导致滥用.凭证算法生成待签名的原始字符串: 抽取请求URL中或?的部分 ...

  7. python如何使用sdk_七牛云存储Python SDK使用教程 - 基本介绍

    本教程旨在介绍如何使用七牛的Python SDK来快速地进行文件上传,下载,处理,管理等工作. 安装 首先,要使用Python的SDK必须要先安装.七牛的Python SDK是开源的,托管在Githu ...

  8. JavaWeb结合七牛云存储搭建个人相册服务

    JavaWeb结合七牛云存储搭建个人相册服务 一.引言 1. 课程概述 相信很多人都知道网站一般会有很多图片,对于小型网站来说,图片放在网站服务器上不算什么,但当图片数量很大时,会造成服务器很臃肿,相 ...

  9. 七牛云存储Python SDK使用教程 - 上传策略详解

    本教程旨在介绍如何使用七牛的Python SDK来快速地进行文件上传,下载,处理,管理等工作. 前言 我们在上面的两节中了解到,客户端上传文件时,需要从业务服务器申请一个上传凭证(Upload Tok ...

最新文章

  1. rust拆自己家门_非常“掉价”的四大汽车装潢,豪车装上也难看,车主:回去拆了...
  2. 缺陷的JIRA管理文档
  3. 如何快速融入一家公司
  4. linux相关知识之特殊符号做目录
  5. html语言 怎么清除用户名 name= password=,在html页面中填写注册表单后,它会给出这个错误,并使用用户名和密码并将值存储在登录表单中...
  6. xcode5(iOS7)新特性-asset catalog与image slicing
  7. http.ListenAndServe()到底做了什么?
  8. DFS分布式文件系统--管理篇
  9. 统计学习方法笔记(李航)———第五章(决策树)
  10. 平面设计师,请问你的灵感在哪里充电
  11. linux----------今天又遇到一个奇葩的问题,就是linux文件的权限已经是777了但是还是没有写入权限,按照下面的命令就解决了
  12. 机器学习基础算法12-回归实例-广告预测
  13. c语言数组用户注册登入管理系统_[内附完整源码和文档] 基于JAVA的干部档案管理系统...
  14. 数字电子技术基础知识点总结_数字电子技术课程线上授课一周之感想 ——信息与控制学院 电工基础教研室 李姿...
  15. win10键盘全变成快捷键_电脑键盘灵敏度设置方法
  16. 云之家:SaaS协同市场的“隐形冠军”
  17. MYIP网站信息状态条 (MyIP Status Bar for IE)——挑战极限,一秒钟评价一个网站!
  18. 4种实现Web前端可视化的常用方法
  19. php 7.1安装sockets,Centos7 下 PHP 添加缺少的组件 sockets 和 openssl
  20. 2022 CCF中国软件大会(CCF Chinasoft)“软件智能合成理论与方法”论坛成功召开...

热门文章

  1. 【每天学一点】JAVASE01 (1)
  2. 后台管理系统 添加emoji表情
  3. 解决英伟达Jetson平台使用Python时的出现“Illegal instruction(cpre dumped)”错误
  4. 基于数据分析的智能饮食推荐APP含菜品识别
  5. 你知道ai文字绘画生成的软件有哪些吗?我来分享三个实用的软件
  6. Neutron的Segments 扩展extension
  7. oracle创建多个数据库实例及其管理
  8. Snapdragon上的OpenCL介绍 (4)
  9. Javascript, 得到元素的左上角绝对坐标
  10. 图文详解Windows下安装最新版Git