关于《淘宝技术这十年》
在书中我读到了一个大公司的诞生真是很难,实可谓是一个小概率事件。
- 首先,论天时,当时eBay还没有进入中国,并且正赶上国内非典,老百姓都躲在家里不敢上街买东西。
- 其次,论地利,其实这一条比较牵强,因为除了小黑屋(马云在杭州的一个普通住宅,一般在一个大项目出来之前,该项目的前身都在那里加班加点,并且保密的集中突击)那个地方之外,书中过多没有提及地点这个条件,如果非要算上,那就是马云有自己的房子吧.......
- 最后,论人和,这个印象非常深刻。淘宝技术部门的最前线中,有一个元老级的成员——花名:多隆(在这里补充一下淘宝里的员工都有自己的花名)。他在淘宝初创的时候就加入了阿里,但直到十多年后今天依然奋战在写代码的第一线。其实像他这样的资历完全可以进入管理层,或者回家拿着分红享清福了。但是他凭着对计算机科学的热爱,一直都奋战在最苦最累的第一线。他这十年来一直都在进步着。哪个企业如果有这样的员工,真的是企业是福气。
作者:叔度(朱照远)2013年
1、光棍节的狂欢
- 至2011年年底,淘宝网拥有全国最大的Hadoop分布式计算集群之一(2000多个节点,CPU:24000 core,Memory:48000GB,Disk:24000块),日新增数据50TB,有40PB海量数据存储,分布在全国各地80多个节点的CDN网络,支撑的流量超过800Gbps。
- 《你刚才在淘宝上买了一件东西》(来自阿里员工卡特)
- 任何网站的发展都不是一蹴而就的,通常是在什么阶段采用什么技术。在发展的过程中,网站会遇到各种各样的问题,正是这些原因才推动着技术的进步和发展,而技术的发展反过来又会促进业务的更大提升。二者互为因果,相互促进。
2、个人网站LAMP
- 2003年4月7日,马云在杭州成立了一个神秘的组织。他叫来十位员工,要他们签了一份协议,这份协议要求他们立刻离开阿里巴巴集团,去做一个神秘的项目。马云给他
- 们布置了一个任务,就是在最短的时间内做出一个个人对个人(C2C)的商品交易的网站。(淘宝网)
- 这个创业团队的成员:三个开发工程师(虚竹、三丰、多隆)、一个UED工程师(二当家)、三个运营工程师(小宝、阿珂、破天)、一个经理(财神),以及马云和他的秘书。
- 了解淘宝历史的人都知道淘宝是在2003年5月10日上线的,2003年4月7日到5月10日,这之间只有一个月时间。要是你在这个团队里,你怎么做?不是“抄一个来”,我们的答案是——“买一个来”。
- 那么接下来就是第二个问题:买一个什么样的网站?答案是:轻量一点的,
- 简单一点的。于是买了这样一个架构的网站:LAMP(Linux+Apache+MySQL+PHP),这个直到现在还是一个很常用的网站架构模型,其优点是:无须编译,发布快速,PHP语言功能强大,能做从页面渲染到数据访问所有的事情,而且用到的技术都是开源、免费的。当时我们是从一个美国人那里买来的一个网站系统,这个系统的名字叫做PHPAuction。最高版比较贵,花了我们差不多2000美元
- 买来之后不是直接就能用的,需要很多本地化的修改,例如,修改一些数据类型,增加后台管理的功能,页面模板改得漂亮一点,页眉和页脚加上自己的站点简介等。其中最有技术含量的是对数据库进行了一个修改。
- 美女阿珂提供了一个很好听的名字“淘宝”,后来“支付宝”的名字也是阿珂取的)
- 为了不引起eBay的注意,淘宝网在2003年里一直声称自己是一个“个人网站”。
- 随着用户需求和流量的不断增长,系统做了很多日常改进,服务器由最初的一台变成了三台,一台负责发送Email、一台负责运行数据库、一台负责运行WebApp。
- 随着访问量和数据量的飞速上涨,问题很快就出来了,第一个问题出现在数据库上。
- 事实上,阿里巴巴和淘宝网都是在马云自己的房子里创办的,
- 在2003年年底,MySQL已经撑不住了,技术的替代方案非常简单,就是换成Oracle。换为Oracle的原因除了它容量大、稳定、安全、性能高之外,还有人才方面的原因。
- 任何牛B的人物,都有一段苦B的经历。
- 微博上有人说“好的架构是进化来的,不是设计来的”。的确如此,其实还可以再加上一句“好的功能也是进化来的,不是设计来的”。
- 最早的时候,买家打钱给卖家都是通过银行转账汇款,有些骗子收了钱却不发货,干脆逃之夭夭。这是一个很严重的问题,
- 后来这几个聪明的脑袋,想出第三方托管资金的办法。于是在2003年10月,淘宝网上线了一个功能,叫做“安全交易”,卖家如果选择支持这种功能,买家就会把钱交给淘宝网,等他收到货之后,淘宝网再把钱给卖家,这就是现在的“支付宝”。
- 有人说淘宝打败易趣(eBay中国)是靠免费,其实这只是原因之一。如果说和易趣过招的第一招是免费,这让用户无须成本就能进来,那么第二招就是“安全支付”,这让用户放心付款,不必担心被骗。而淘宝的第三招就是“旺旺”。其实淘宝旺旺也不是自己生出来的,是从阿里巴巴的“贸易通”复制过来的。
- 不能总这样通过不断地重启来保证系统的稳定性。于是,2004年上半年开始,整个网站就开始了一个脱胎换骨的手术。
3、Java时代
脱胎换骨
- 2004年初,SQL Relay的问题解决不了,数据库必须要用Oracle,那么从哪里动刀呢?只有换开发语言了。换什么语言好?用Java。Java是当时最成熟的网站开发语言,它有比较良好的企业开发框架,被世界上主流的大规模网站普遍采用。另外,有Java开发经验的人才也比较多,后续维护成本会比较低。
- 请什么样的人来做这件事?我们的答案是请Sun公司的人。没错,就是创造Java语言的那家公司,世界上没有比他们更懂Java的了。那时侯eBay的系统刚刚从C++改
- 到Java,而且就是请Sun的工程师给改造成Java架构的,他们(Sun公司的人)不仅更懂Java,而且更懂eBay。
- 现在摆在他们面前的问题是用什么办法把一个庞大的网站从PHP语言迁移到Java?而且要求在迁移的过程中,不停止服务,原来系统的bugfix和功能改进不受影响。
- 他们的大致方案是给业务分模块,一个模块一个模块地渐进式替换。说了开发模式,再说说用到的Java MVC框架,当时的struts1.x是用得比较多的框架,Sun的这帮工程师开发完淘宝的网站之后,用同样的架构又做了一个很牛的网站,叫“支付宝”。
- 其实在任何时候,开发语言本身都不是系统的瓶颈,业务带来的压力更多的存在于数据和存储方面。
- 到2004年底,淘宝网已经有4百多万种商品了,日均4千多万个PV,注册会员达400万个,全网成交额达10亿元。
- 到现在为止,我们已经用上了IBM的小型机、Oracle的数据库、EMC的存储,这些东西都是很贵的,那些年可以说是花钱如流水。
- 花钱买豪华的配置,也许能支持1亿个PV的网站,但淘宝网的发展实在是太快了,到了10亿个PV怎么办?到了百亿怎么办?在几年以后,我们不得不创造技术,解决这些只有世界顶尖的网站才会遇到的问题。后来我们在开源软件的基础上进行自主研发,一步一步地把IOE(IBM小型机、Oracle、EMC存储)这几个“神器”都去掉了。
- 已经有读者在迫不及待地问怎么去掉了IOE?别急,在去掉IOE之前还有很长的路要走。
- 弄两个数据库(分库分表),到达数据库容灾,即万一一个数据库挂了,整个网站上还有一半的商品可以买。
- 亲,除了搜索引擎、分库分表,还有什么办法能提升系统的性能?一定还有招数可以用,这就是缓存和CDN(内容分发网络)。
- CDN需要大量的服务器,要消耗很多能源(消耗多少?在前两年我们算过一笔账,淘宝上产生一个交易,消耗的电量足以煮熟4个鸡蛋)。章文嵩的团队又在研究低功耗的服务器。
- 到2006年,淘宝网已经有了1.5亿个的日均PV,商品数达5千多万个,注册用户3千多万个,全网成交额达169亿元。
创造技术TFS
回顾一下上面几个版本,1.0版的PHP系统运行了将近一年的时间(2003年5月—2004年1月),服务器由一台发展到多台;
后来数据库撑不住了,将MySQL换成了Oracle,引入了搜索引擎(2004年1月—2004年5月,叫1.1版本);
然后不到半年的时间又把开发语言换成了Java(2004年2月—2005年3月,叫2.0版本),数据服务逐步采用了IOE(IBM小型机、Oracle、EMC存储);
随着数据量和访问量的增长,我们进行数据分库、加入缓存、使用CDN(2004年10月—2007年1月,叫2.1版本)。
这几个版本中间有些时间上的重合,因为很多架构的演化并没有明显的时间点,它是逐步进化而来的。
- 在淘宝网整体流量中,图片的访问流量要占到90%以上,而且这些图片平均大小为17.45KB,这么多的图片数据、这么大的访问流量,给淘宝网的系统带来了巨大的挑战。对于大多数系统来说,最头疼的就是大规模的小文件存储与读取,因为磁头需要频繁寻道和换道,因此,在读取上容易带来较长的延时。在大量高并发访问量的情况下,简直就是系统的噩梦。我们该怎么办?
- 对于淘宝的图片存储来说,转折点在2007年。这之前,一直采用商用存储系统,应用NetApp公司的文件存储系统。从2006年开始,我们决定自己开发一套针对海量小文件存储的文件系统,用于解决自身图片存储的难题。这标志着淘宝网从使用技术到了创造技术的阶段。历史总是惊人的巧合,在我们准备研发文件存储系统的时候,Google走在了前面,2007年,他们公布了GFS(Google FileSystem)的设计论文,这给我们带来了很多借鉴的思路。
- 随后我们开发出了适合淘宝使用的图片存储系统(TaoBao File System,TFS)。3年之后,我们发现历史的巧合比我们想象的还要神奇,几乎跟我们同时,中国的另外一家互联网公司也开发了他们的文件存储系统,甚至取的名字都一样——TFS,太神奇了!(猜猜是哪家)
- 到现在为止,淘宝网给每个用户提供了1GB的图片空间。(之前商家是只能上传一张小于120Kb的照片,后来五张)
- 技术和业务就是这么互相借力推动着的,业务满足不了的时候,技术必须创新,技术创新之后,业务有了更大的发展空间。
- 目前淘宝网的TFS已经开源(见code.taobao.org),业界的同仁可以一起使用和完善这个系统。
- 淘宝在很早就开始使用缓存技术了,在2004年的时候,我们使用一个叫做ESI(Edge Side Includes)的缓存(Cache)。ESI是一种数据缓冲/缓存服务器,它提供将Web网页的部分(这里指页面的片段)进行缓冲/缓存的技术及服务。
- 每次都从内存里取,性能要好很多。这种应用场景就是memcached这种Key-Value缓存的用武之地。
- 淘宝自创的Key-Value缓存系统——Tair(TaoBao Pair的意思,Pair即Key-Value数据对)。Tair包括缓存和持久化两种存储功能。目前,Tair支撑了淘宝几乎所有系统的缓存信息。Tair已开源,地址为code.taobao.org。Tair作为一个分布式系统,由一个中心控制节点和一系列的服务节点组成,我们称中心控制节点为Config Server,服务节点是DataServer。Config Server负责管理所有的Data Server,维护Data Server的状态信息。Data Server对外提供各种数据服务,并以心跳的形式将自身的状况汇报给ConfigServer。Config Server是控制点,而且是单点,目前采用一主一备的形式来保证其可靠性。所有的Data Server地位都是等价的。Tair的架构图如下图所示。
到2007年,淘宝网日均PV达到2.5亿个,商品数超过1亿个,注册会员数达5千多万个,全网成交额达433亿元。
4、分布式时代
- 在系统发展的过程中,架构师的眼光至关重要,作为程序员,只要把功能实现即可,但作为架构师,要考虑系统的扩展性、重用性,
- 一切要以稳定为中心,所有影响系统稳定的因素都要解决掉。
- 到2008年年底就做了一个更大的项目,把淘宝所有的业务都模块化,这是继2004年从LAMP架构到Java架构之后的第二次脱胎换骨。
- 到此为止,应用服务切分了(TM、IM)、核心服务切分了(TC、IC)、基础服务切分了(UIC、Forest)、数据存储切分了(DB、TFS、Tair),通过高性能服务框架(HSF)、分布式数据层(TDDL)、消息中间件(Notify)和Session框架支持了这些切分。一个美好的时代到来了,高度稳定、可扩展、低成本、快速迭代、产品化管理,淘宝的3.0系统走上了历史的舞台。目前,淘宝已经变成了一个生态体系,包含C2C、B2C、导购、团购、社区等各种电子商务相关的业务。开放出去之后,让无限的人都可以参与到这个生态体系的建设中来,这个生态体系才是完整的。
5、我在淘宝这八年
- 面试我的时候,问我为什么到这里来,我说很欣赏这家企业发展这么快,这样的企业一定有很多高手,跟高手在一起成长一定很快。
- 由于支付宝和淘宝是两个独立的系统,系统之间的通信是一个大问题,而银行与支付宝也需要通信,于是问题就经常出现:用户在银行付款后,未必能通知到支付宝,支付宝收到通知后,未必能通知到淘宝,于是用户的钱没了,淘宝的系统上却显示未付款,很让人崩溃。做了一个消息中间件系统,这个就是淘宝的Notify的雏形,现在Notify一天能发送几亿条消息通知,
- “支付宝认证”是淘宝的一个创新,淘宝在成立之初就要求卖家实名认证,最早的认证方式是让用户上传身份证照片,我们去连接公安系统的网站来核对信息,核对一个要交5元钱,成本相当高。
- 新的认证方式:(现在支付宝认证的原理就是:)用户提交身份信息和银行账户,我们往这个账户里存钱,存进去之后,用户填写收到了多少钱(我们号称存过去的是1元钱以内的金额,实际上只有几分钱),如果用户填写的与我们向里面存的是一致的,那么这个人的身份就是对的。这不仅降低了认证的成本,也使认证的效率由原来的一周左右变成一天以内。
- “我的淘宝AJAX版”挂了,
- 淘宝有个传统,很牛的项目都要在小黑屋中进行,
- 培训的本质到底是什么呢?经过老板提点,我们认为培训的本质是:“通过知识的流转,促进员工的成长,进而推动公司业绩的提升。
6、牛人列传
马云喜欢用武侠小说人物给同事命名。
正明(章文嵩)集团核心系统高级研究员,LVS集群项目创始人与开发者
- 这几年工作的整体规划思路就是为淘宝网打造一个高性能、高可扩展、高可用、低成本的基础平台,基本上是在这四个维度上不断深入优化。
- 我们从开源社区得到的帮助太大了。
- 对刚入行的技术人员建议:找到自己感兴趣的,花时间投进去,通过实践后的知识积累比只看书本有用得多。
正祥(阳振坤) OceanBase项目负责人,淘宝顶级科学家
- 一个人如果把做事、做成事作为主要目标,该他得到的东西,一定会顺理成章的、水到渠成地得到,但是,如果把上升作为主要目标,做同样的事,结果就会完全不一样。一句话,你的心态会最终决定你的成就。
毕玄(林昊)集团核心系统资深技术专家
- 一个好的网站真的是很难很难做,其中的技术含量非常高,有很多东西需要学习。但行好事,不问前程。(自身要多做义举做好当下,而不要去牵挂往后的发展。)
- 毕玄:其实在校招聘的时候,我比较欣赏的学生往往是那些很“不务正业”类型的。我经常会问他们,你有没有利用业余时间出于自己的技术兴趣做的一些小东西。这样的学生我们通常会比较感兴趣,我认为这样的学生是真正喜欢技术。聪明程度一般就可以的,他能够进入这些不错的学校,智商是不会有什么问题的。
放翁(岑文初)淘宝开放平台项目负责人
- 从技术上看,我都是贴近实际的问题来找突破点,解决了问题,技术就掌握了。
- 对新人的要求:第一个是做事要自己思考后再去问别人,而不是一遇到问题就找人求助。第二个是不断地打破自己的一些想法,你不要担心自己今天已经做了50%的工作,要是推倒重来,前面的事情都白干了。我现在带的两个新人成长很快,但是都有类似的经历,就是一个东西被我反复推翻重做,在这个过程中就是不断地成长,要思考我为什么让你推倒重做,若想不清楚,下次重做的
小黑(吴翰清)阿里云集团信息安全中心高级安全专家
- 杀毒软件能保证客户端安全吗?——杀毒软件似乎是个人电脑的标配了,但这个只能做到“看起来安全”,要真正的安全,其实是非常难的。像流行的木马之类的病毒,它第一个对付的就是杀毒软件,它在实施一次攻击之前,要看是不是通过了360诺顿、麦咖啡等各种杀毒软件,然后才会拿出来实施攻击。
- 看你所处的行业和企业的规模来做安全方面的投入。安全的投入又分很多方面,例如,招人、买设备、买安全服务、做评估等。
- “云安全”服务?遭受多少次攻击,我们就帮你清洗掉,事后按次数收费,这个成本就降下来了,
- (白帽子是做好事的,黑帽子是做坏事的)在招人的时候就很小心,要看他以前做过什么,历史不清白的是不能要的。
- 有时不能说他们(黑客)的技术水平有多高,只是这些网站在安全方面做得太差了。
- 子柳:对于白帽子黑客来说,有哪些信条或原则呢?
- 吴翰清:首先要有职业道德,然后要假设一切都是邪恶的,我们自己的人也不能完全相信,要通过技术手段来保证,所有人的操作都有记录,做审计,然后收权限,我们自己也只有很少几个人有服务器的权限,保证我们自己也黑不掉公司。
- 每一个新技术的出现总会有人找到漏洞进行攻击,攻与防似乎是自然界生态体系的基础,在互联网行业,这个生态平衡吗?
- 只要技术在不断地发展,就会有新的安全问题出来,这就像自然界一样,达到了一种生态平衡。(对于攻的人,他只需要找到一两个漏洞,对于防的人,要找出所有的漏洞,把它补上。
- 给安全方面刚上路的技术人员一些建议吧?
- 吴翰清:从基本功做起,研究常见的漏洞,把它查出来,并去分析它,不要用它来做坏事。另外,去看看公开的漏洞,研究一下漏洞的利用技巧。
云铮(张清)数据平台与产品部资深技术专家
- 八年数据生涯的梦想是能够推动集团数据统一体系架构,为数据化运营,推动实现十年数据战略尽自己一份力。
- 淘宝把中国电子商务从零开始到现在,几乎所有的数据都包含了,有B2B、B2C和C2C的商品数据,以及交易数据和支付数据。而Amazon只有B2C的数据,Google没有商业数据,都是搜索的信息。淘宝的数据从量和质上面都非常高,而且更适合中国的国情,这上面是中国人的消费数据。
- 作为一名互联网技术老鸟,你的成长之路是什么样的?
- 云铮:理想主义,兴趣+执著,看准一个方向后,无论是顺境还是逆境,都要不断地努力,不浪费时间和机会。
- 子柳:给技术刚起步的人员一些技术成长的建议吧。
- 云铮:兴趣是最好的老师,坚持是达到梦想的唯一途径,当然,在个人发展的不同阶段寻找到合适的导师很重要,看准方向会事半功倍。在刚刚参加工作还没有形成自己的判断时,方向有两个来源,一个是个人的兴趣,一个是找一个你非常佩服且能掌握未来方向的人,当然,如果这两者正好重合,那么剩下的就是脚踏实地坚持。
小马(赵泽欣)淘宝UED前端通用平台高级技术专家
- 2006年加入淘宝后,他成了全网第一位前端工程师
- Velocity大会,当时令我印象很深刻的是,有一个嘉宾分享了一个观点:“性能更应该是功能……”,这让我想到很多项目其实一开始都很关注功能,当功能通过后,先草草上线,而后再逐步完善性能上的问题,这个嘉宾的说法让我产生了强烈的共鸣,这种体会在这个大会上有很多。
- 在国内很多会议的展台前就发放一些礼品、资料,有些就是放个盒子让参会者放入名片等,而在国外会议的展台前,我看到了更多的互动部分,他们会在展位前搞很多游戏式的互动来收集参会者的信息等,这种体验是很好的,让人觉得很舒服。
- 子柳:小马是淘宝网第一个做前端的,目前还在做前端,现在有5年多了,给大家简单介绍一下淘宝前端的发展历程吧。
- 小马:先给大家说一下“前端”是怎么来的,我自己对前端有一些思考。就以淘宝为例,一开始,淘宝就是一个社区,大家发布信息给别人看。随着互联网的发展,大家不仅仅要看到一个静态的页面,他们更需要有绚丽的页面,有更丰富的交互。也就是说,对“体验”的要求越来越高。这样交互难免变得越来越复杂,这个时候开发人员并不是很适合做这些事情,而是需要一个细化的工种来做这件事情。我个人认为传统的开发人员更多的是面向机器来开发的,更多的是考虑CPU的问题、内存的问题、数据库的问题。实际上需要一些开发人员对“用户”有更敏锐的感觉,他们来完成“界面”的问题,界面是互联网与用户交互的地方,他需要对体验有一些认识,对“人”更关注。从另一方面来看,这几年下来,客户端越来越多,页面要适应很多客户端,这也不是传统的开发人员擅长做的事情。基于这些原因,就产生了这么一个新的工种。
- 我们刚开始做的工作就是让页面动起来,做了很多JavaScript开发工作,让整个页面变得更加活泼,这是第一阶段淘宝前端的状况。
- 到第二阶段,“AJAX”变得流行起来,它改变了整个业界的开发模式,第二阶段是前端和后端合作,让页面的体验更加友好。
- 再往下一个阶段,我们发现越来越多的内容在浏览器中展现,越来越多的浏览器出现了(Firefox、Chrome、IE 6~IE 8),这让前端越来越重,就出现了性能的问题,我们又需要做一些框架、规范和很多优化的工作。
- 畅想一下前端未来的发展方向。
- 小马:我认为,未来的方向是前后端的界线越来越模糊,即未来求开发工程师能够把前后端的工作衔接起来。我个人比较认可一种说法:经过这几年开发模式的渐渐发展,未来前后端的开发会融合起来,这样的岗位叫做“Web开发工程师”。
- HTML5的目的是想让整个Web真正成为一个开发平台,或者说是让浏览器成为一个适合开发大型应用的平台。你看它的变化,首先HTML5标签的变化是让它更具有语义化,然后CSS3把很多展现型的东西做了加强,最重要的是新增的那些JS的API,你现在已经可以在浏览器本地连接数据库、使用Socket、使用本地存储、获取地理位置等,很多我们以前开发过程中需要从后台取得的信息,现在都可以在本地浏览器中做。这使得浏览器变成一个适合做大型应用的平台,而不是像以前一样只做内容的展示。
- 在淘宝的网站上,HTML5已经无处不在,淘宝是国内应用HTML5最早的网站之一。
- 有三家公司对我们影响非常大。
- 第一家是Yahoo(雅虎),“前端”岗位的定义就起源于雅虎。当时雅虎的发展如日中天,他们有很多优秀的技术和人才,并且最早提出前端的概念、框架和规范。我们的很多规范也是借鉴他们的,我们曾遇到的性能问题就参照雅虎提供的优化方案和工具(YSlow)。
- 可以说,2007年至2009年,我们很多东西都是借鉴雅虎的。
- 第二家公司是Google,Google为什么对前端产生这么大的影响呢?是因为AJAX实际上是被Google变成一个商业上很成功的应用,它的Gmail、Docs等产品采用了大量的AJAX技术,AJAX在Google的成功应用让很多前端和交互的工程师开始使用这种技术,让前端的工作变得更加繁荣。
- 第三家就是Facebook,Facebook是把体验和技术结合得最完美的公司。
- 给起步阶段的同事一些建议:有个“一万个小时理论”,我觉得很正确,说的就是一个人必须经过不断地练习,不断地遇到问题才能成长起来。当然,做的时候要不断总结,写博客是一个很好的途径。
多隆(蔡景现)淘宝传奇工程师
- 多隆是淘宝的创始人之一,也是淘宝的第一个程序员,他奠定了诸多淘宝重大软件项目的基础。有人说他是淘宝的“扫地僧”,有人说他是“神”。在淘宝,他做到了既懂C/C++语言,又懂Java和内核;既可以深入技术底层,又能切入到高层业务领域,从前端到后端,知识既广又深。他就是核心系统部专家组的多隆。
- 多隆说他知识经验的积累主要归功于在淘宝业务发展的过程中,他遇到了各种各样的问题。这些问题促使他不断学习解决问题的各种技术,他和淘宝一起成长。
- 他把自己当成海绵一样去吸收新知识——在他的字典里,没有不值得去解决的问题,也没有不值得去学习的技术。而且每学一个知识点,多隆都会写一段代码去验证,一方面是练习,另一方面也让他加深理解,直到真正掌握这个技术。
- 多隆还有一个常人难以做到的特质。当他沉浸在他的程序世界时,外界的人和事很难干扰到他。《功夫熊猫2》里的最高武功心法“InnerPeace”(内心平静)吧。有了这样的专注力,不成为高手也难。
- 多隆从2000年加入阿里巴巴,到现在已经十多年了,仍在淘宝技术第一线写代码。他在做他喜欢的事情,解决问题和写代码让他觉得很有成就感。
- 一个计算机工程师该以怎样的态度和方式来工作和学习?多隆的一条朴素的建议或许可以很好地解答:“发现问题,解决问题,不要绕开问题的本身;多做事情,不会吃亏,即使不是你的事情。”
- 始终保持对代码的那份单纯的热爱,保持对技术的专注和钻研;别人把工作当工作,他把工作当事业——这就是多隆的程序世界。