阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

QCon 讲师对对碰——洪小军采访梁宇鹏:就是爱 Golang

  • 2015-04-12
  • 本文字数:3182 字

    阅读完需:约 10 分钟

编者按: QCon 北京 2015 将于 4 月 23 日~25 日在北京国际会议中心召开。在大会开始之前,InfoQ 推出了讲师对对碰栏目,邀请一些技术专家相互采访,碰撞出思维的火花。在 QCon 上,美图架构平台部门负责人洪小军将分享《美拍后端技术演进》,环信首席架构师梁宇鹏将分享《指数级增长业务下的服务架构改造》。今天我们推出的是洪小军对梁宇鹏的采访。以下为正文:

洪小军:前段时间你在微博上发表的《自组织是不是团队管理的乌托邦》,反响很大。你们内部已经朝这方面做了么?能不能跟我们分享一下经验?

梁宇鹏:现在也只是摸索,经验还谈不上。主要是跟大家分享一下这个理念,加上我这几年在不同团队中的一些思考和总结。

我们很多时候都说,做程序员最大的乐趣,在于自己的代码有一天可以改变世界。或者说,它们每一天都在改变着这个世界。我相信并且觉得可以做到,我们的精力集中在这个地方,而不是扯皮和争执、懈怠和驱赶上。这些问题很多时候会以大公司病的方式暴露出来,但还是有很多更深层次的问题。我更倾向于认为,这是一个主动性和能动性的问题。自组织看起来是个不错的解决方案。

自组织的一些实践组织和注意事项,在那篇文章已有讨论,这里不再赘述。我想强调的一点是,实现自组织的基础,是我们觉得它可能实现,但只有方向是不够的,我们还要找到一条路。这条路上可能有很多实验,既然是实验,就要有失败的心理准备。这也是我写文章的主要目的。

比起成功的经验,我更担心不成功的实验会造成错误的经验。

洪小军:现在越来越多的团队正在进行或尝试远程协作的工作方式,看你春节假期也在泰国边享受生活边远程办公,你们准备实施这样的计划?

梁宇鹏:我们相信,有能力的人在哪里都可以工作好。进一步说,既然我们希望找到最好的人,那就不应该让地域成为限制。现在越来越多的公司有这样的理念,而且开源社区也一直是这样运行的。

当然不同的公司有不同的情况,而我们又不能做到像开源社区那样悠闲的节奏,至少现在不行。我们的业务正在快速增长,基本上是每月一翻的指数级增长速度,而我们的系统正处在从企业应用向云服务演进的过程,其中要做的事情纷繁复杂。顺便广告一下,这也是在我 QCon 北京上要讲的主题。

从组织角度看,一方面由于团队还在组建,人手紧张;另一方面,还有团队成员的能力适配问题。解决团队成员面对超常压力下的焦虑问题,都需要很多沟通。因为不管怎么组织,团队最终还要形成合力才可以。

正好我假期去泰国玩,就在岛上多待了一段时间,算是一个实验。其实我们平时就经常在家办公,IM 上聊天,紧急事项就电话。有一点必须承认,在 IM 上聊天是容易吵架的。因为文字聊天缺少语音语气,会造成很多沟通问题。在国内的时候还好有事打个电话,到了国外因为资费问题,就没那么容易了。

当然,团队协作的更大问题是工作的配合和交接,而限制是客观存在的。你如何才能把一项工作很好地跟其他人讲清楚,如何能够让其他人清楚你的进度,以便在合适的时候帮助和配合,这些都是问题。好在这方面已经有很多专业工具或服务,还有很多正在创业路上。前段时间一些团队已经在分享,我们也在尝试和整理自己的工具集。现在看来还是比较乐观,整理完了也会拿出来跟大家分享。

洪小军:近几年你一直在即时通讯领域深耕细做,能简要总结一下这几年的发展路线吗?未来的发展方向是什么样子的?

梁宇鹏:一说深耕细作,真是浓浓的老码农既视感。不过我确实一直工作在 IM 领域,摸过的 XMPP 的开源实现也从 Jabberd2(C)、Ejabberd(Erlang)做到 Openfire(Java)。次次还都是深度改造,从 10w、100w、1000w 来一遍,在高可用和伸缩性上投入了很大的精力。

不过在移动互联网下,网络的不稳定性带来了更多的挑战,也让我们不得不在协议层面做一些事情。最近 IM 云服务热起来,大家也都在说。我们最早在 2012 年就已经做过类似的事情,断断续续地也在思考和改进。最近要做的事情就是希望把这个协议通用化,做到在很多对可靠性有较高要求的系统中可以方便应用。

当然我们已经不止是承载能力的追求上了,由于客户分布在全球,我们后续会投入很多精力去改造系统,以支持全球多 IDC 部署和访问,这里面要做的事情还是很多。

洪小军:你一直说自己是多语言编程爱好者,用过 C/C++、Java、Erlang、Golang 等,据我所知现在 Erlang 是你们项目中主要的开发语言,你是怎么看待项目中语言选型的?从你个人角度看,什么样的语言会更符合你的口味?

梁宇鹏:语言问题真是口味问题。符合我口味的必须是 Golang,没有之一。从一开始 Golang 出来就喜欢,当然我是 Rob Pike 粉丝这事我是不会到处说的。除去语言级别并发这些令人愉悦的特性,Golang 让我喜欢的地方还在于语法设计的考究。做什么事情基本上有且只有一种好的方式,这种完美主义让人印象深刻。从工程角度上讲,它让很多事情变得简单,也因此不容易出错。

Erlang 也很好玩,也很不错,是我一直推荐的语言。作为一门典型的函数式语言,它代表了另一种世界观,这跟 C 一类的过程式语言完全不一样。你不一定要用,但值得试试,这是通往另一个世界的大门。

言归正传,我把语言看成食物,除去口味的不同,我更想说明的一点是,你不要总想着跟它过一辈子。对于跟我一样的做系统研发的人来讲,特别是应用服务,很多时候语言的区别并没有那么大。大多数你要考虑的问题,架构、集群、容错、分布式、伸缩性都远比语言更值得你去费心思。一个人不吃饭不行,但不管吃好吃坏,事情都是要做的。

回头看我有限的工作经历,基本上每次换工作都换语言。有时候是会比之前多一些努力,但其实也没什么大的困难。工作这种事情,更重要的是看挑战和发展。如果你天天工作千篇一律,都用一种语言有什么意义。如果挑战够大工作够有意思,经常换语言又如何。所以在个人角度看来,我坚定支持多语言编程,这样思路会更开阔,机会也会更多。

当然在团队层面,还是会涉及语言选型,这方面我觉得首先要看你能找到什么样的人组队。因为不是所有的人都喜欢多语言,对语言的熟悉程度也不一样。比如 Java 人就会多一些,Erlang 人就少一些,这些是客观事实。其次,看看现有项目工程是什么语言,这对创业团队很重要,因为你很少有时间从头来造一些轮子。最后,业务基本稳定之后,可以再看看新语言,慢慢玩。比如对 Golang 感兴趣,就可以找些小服务来做。这里我基本坚持一个原则,如果你要在线上服务使用新语言,一定要有两个人以上感兴趣而且会才行,主要还是为了防止业务单点。

洪小军:看你的业余生活很丰富,骑马、登山、游泳、跑步等等,但是在工作上的投入又收获满满。整体的节奏羡煞很多人,你是怎么去权衡好工作和生活关系的?

梁宇鹏:只能说自己爱玩的东西太多,忍不住啊,所以才会希望能够边玩边工作(呀,私心!)。我一直坚持一种理念,就是 Work Hard,Play Harder。工作再努力最终还是为了生活不是么?不过说起来,现在感觉还是没有平衡好,玩得太少了。:)

说起来,游泳、跑步应该算是运动。平时我们工作强度很大,需要经常加班甚至熬夜。线上服务 7x24 小时走着,出问题后压力也很大。这些对身体都有些损害的。而且我曾经一度头痛,去医院各种检查都没有用,甚至还尝试过中医(针灸、艾灸、喝各种中药……嗯,是污点)。后来开始跑步就全好了,从那之后就坚持运动了。

我们搞互联网服务或者云服务的,说天天累成狗真不为过。不多运动锻炼,身体是撑不了几年的,总不能只吃青春饭。行业里一直有个笑话,就是嫁人要嫁 IT 男,因为挣得多死得早。我每次用这个提醒自己,也用这个来鼓动同事运动。可以努力,也要生活。

这句话也再送给你,记得之前你在微博的时候,经常熬夜连轴转。以后要注意锻炼,注意休息,担子不能一个人挑呐。

感谢臧秀涛对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2015-04-12 07:558387

评论

发布
暂无评论
发现更多内容

2022第十四届南京国际人工智能产品展会

InfoQ_caf7dbb9aa8a

人工智能

推荐一个好用的设计师导航网址

小炮

图像搜索是什么

Geek_e369a5

图像搜索 图像搜索是什么

这几个垂直类小众导航网站,你绝对不会想错过

小炮

Flutter在数字生活的发展与天翼云盘落地实践

flutter 架构 混合应用开发 移动开发 客户端

一文带你了解J.U.C的FutureTask、Fork/Join框架和BlockingQueue

华为云开发者联盟

Java 开发 华为云

改变世界的开发者丨玩转“俄罗斯方块”的瑶光少年

华为云开发者联盟

人工智能 华为云 俄罗斯方块

掌握高性能计算前,我们先了解一下它的历史

华为云开发者联盟

华为云 高性能计算 处理器

2022第十五届南京国际数字化工业博览会

InfoQ_caf7dbb9aa8a

2022南京国际智慧工地装备展览会

InfoQ_caf7dbb9aa8a

乘风破浪,探索数据可视化开发平台FlyFish开源背后的秘密!

云智慧AIOps社区

前端开发 低代码 数据可视化 大屏可视化 优秀开源项目

项目那么多为何要选择自助洗车

共享电单车厂家

自助洗车加盟

Linux 之父亮相,OpenCloudOS 社区开放日来了

腾讯安全云鼎实验室

2022南京智博会 第十四届南京国际智慧城市、物联网、大数据博览会

InfoQ_caf7dbb9aa8a

音视频处理三剑客之 AEC:回声产生原因及回声消除原理

ZEGO即构

回声消除 3A算法 音视频课程

统一认证中心 Oauth2 认证坑

Damon

6月月更

自助洗车加盟前要准备些什么吗

共享电单车厂家

自助洗车加盟 自助洗车品牌

第二届征文大赛开奖啦!速来领奖!

InfoQ写作社区官方

热门活动 初夏征文

李飞飞:我更像物理学界的科学家,而不是工程师|深度学习崛起十年

OneFlow

人工智能 深度学习 李飞飞 ImageNet

传统企业在进行信息化升级的过程中,如何做好信息化顶层设计

WorkPlus

自助洗车加盟具体都有哪些优势

共享电单车厂家

自助洗车加盟

想加盟自助洗车不知道一般啥流程

共享电单车厂家

自助洗车加盟

新思科技助力以色列Visuality Systems推进安全“左移”

InfoQ_434670063458

软件开发 代码 新思科技 安全测试 安全左移

新思科技在《 2022 年 Gartner® 应用安全测试关键能力报告》中表现优异 在五个常见用例中荣获最高分

InfoQ_434670063458

新思科技 Gartner 应用安全测试

仅需三步学会使用低代码ThingJS与森数据DIX数据对接

ThingJS数字孪生引擎

可视化 数字孪生

搭建在线帮助中心,轻松帮助客户解决问题

小炮

企业如何提升文档管理水平

小炮

顺应医改,积极布局——集采背景下的高值医用耗材发展洞察2022

易观分析

医用耗材

Cube 技术解读 | Cube 渲染设计的前世今生

阿里巴巴终端技术

ios android 渲染 跨端

直播预告 | 解构OLAP!新型多维分析架构范式全公开!Apache Doris 将带来五个重磅议题!

SelectDB

数据库 OLAP MPP Apaache Doris 直播活动

如何用Pygame制作简单的贪吃蛇游戏

行者AI

QCon讲师对对碰——洪小军采访梁宇鹏:就是爱Golang_QCon_洪小军_InfoQ精选文章