编者按: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)关注我们,并与我们的编辑和其他读者朋友交流。

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

  1. 前美图技术总裁洪小军入职AfterShip 担当CTO助力全球电商服务平台

    近期,互联网技术领域有一则消息广为传播,前美图技术副总裁入职了全球物流包裹查询品牌-- AfterShip (爱客科技),并担任起 CTO 的要职.一方是曾经执掌中国移动飞信.新浪微博和美图公司技术要 ...

  2. 深圳AfterShip】美图技术副总裁洪小军带队的研发团队需要招聘高级技术人才

    关于 AfterShip ( https://www.aftership.com ) AfterShip (爱客科技)是一个为国际性电商企业而设的 B2B SaaS 平台,通过提供全方位和全自动化的工 ...

  3. [Egret] 对对碰H5小游戏

    游戏界面大致是这样(很丑,但是有内涵 ): [第一步:UI界面] [第二步:程序结构] 这个结构相对上一篇贪吃蛇更简单,因为没有控制UI层了 Card:就是每个图片框 Main:是程序的主入口,资源配 ...

  4. iOS分段选择器、旅行App、标度尺、对对碰小游戏、自定义相册等源码

    iOS精选源码 企业级开源项目,模仿艺龙旅行App 标签选择器--LeeTagView CSSegmentedControl常用的分段选择器,简单易用! 仿微信左滑删除 IOS左滑返回 输入框 iOS ...

  5. 对对碰(网页版单机小游戏)

    简易的对对碰的实现(基于js的事件处理机制) 原理:要想制作这个游戏很简单,先画一张表格,在其中添加照片,通过鼠标点击事件调用在js里编写的让图片隐藏功能的函数即可达到预期效果. 具体代码如下: &l ...

  6. java小游戏---对对碰

    对对碰 - 游戏实现功能:分别点击两张相邻的图像按钮进行交换(重点相邻),交换后的两个图像按钮的相邻水平或者垂直方向上,与之相同的图像超过规定个数后(这里规定为3个)就将其全部消除(置为空白按钮),上 ...

  7. 【免费游戏】你想成为爱神丘比特吗 ? – App Store小可爱对对碰发布啦!

    InJoyee 公司开发的第三款物理益智游戏:Mr. & Mrs. Cutie Pie(小可爱对对碰)倾情上线啦! 游戏设计了郊外静谧的夜晚.高原雪域.阳光明媚的海滩.蓝色海底四个不同场景,主 ...

  8. 简单的对对碰小游戏源码

    package com.data {  import mx.controls.Button; /**   * 格子数据   **/  public class DataItem extends But ...

  9. 童小军:用户是大数据的本质驱动力

    文章讲的是 童小军:用户是大数据的本质驱动力, "大数据"自诞生之日起,业界对它的概念.技术和应用就存在一定争议.究竟什么是大数据?有哪些大数据技术?大数据的未来是怎样的?每个人都 ...

最新文章

  1. Java热部署神奇:JRebel异常之processing of -javaagent failed
  2. “我太喜欢你了”——友情的表达方式?
  3. 小菜学习Lucene.Net(更新3.0.3版本使用)
  4. Java向数据库中插入Boolean类型的字段
  5. Flex里监听mouseDownOutside事件解决弹出窗口点击空白关闭功能
  6. 乐观锁的颗粒度_MySql数据库锁机制详解
  7. LINQ学习笔记(9) LINQ to Objects---查询内存中对象的集合
  8. Annotation 最终奥义,元注解
  9. 使用NGUI来制作技能的CD冷却效果
  10. JQuery - 提交表单
  11. MyBatis3源码解析(5)查询结果处理
  12. ajax异步session值不唯一 总是改变 解决办法
  13. 鼠标监听地图让我创造出个性的风格(地图开发)
  14. 经典蝙蝠算法MATLAB实现
  15. TASKCTL调度服务平台节点管理
  16. adventureworks mysql_AdventureWorks2012
  17. 移动机顶盒migu-jt-u1 unt400c刷机 hi3798 root
  18. 2016依然会给我惊喜,谢谢
  19. RK3288功能介绍
  20. ios申请企业开发者账号的代理_苹果企业开发者账号如何申请?

热门文章

  1. 什么是集群?什么又是负载均衡?你说得清楚吗?
  2. 阿里算法,浙大博士带你写项目经历!
  3. Jupyter官方神器:可视化 Debug 工具!
  4. 手握173篇论文的学术新星被指造假!后续:博士论文被召回
  5. 机器学习笔记:概率图模型
  6. 计算机视觉领域如何从别人的论文里获取自己的idea?
  7. 宋仲基宋慧乔没能找到对的人,算法能帮我们找到么?
  8. leveldb源码分析:数据查询
  9. 交换数字(不用临时变量)
  10. Django视图之介绍、项目准备、URL、路由命名、reverse反解析和Postman测试