“曾经获得浙江大学免试读硕机会,但却放弃” “连实习算在内,他一共在腾讯待了不到三年时间,但却先后主导和开发了开源项目工具 AlloyImage和AlloyDesigner。” “ 正是因为这样执著追求效率,部落的新架构是建立在页面的抽象基础上,他们内部把它叫做Model.js,而王斌的同事会戏称老王模型。 ”
……
以上说的这些,就是 今天要谈的主人公——一名年纪轻轻,但却很有能力的人。他,就是在腾讯群、兴趣部落负责前端开发工作的王斌。
受工作室和学长影响走上前端领域
王斌认为,随着HTML5的发展,HTML5承担的东西也越来越多,前端实际上不输于后台
王斌,24岁。12年开始在腾讯实习,13年毕业正式加入腾讯。实习先是在即通应用部(QQ大家庭下的一个部门),先后经历Q+、QQ互联网、QQ群和兴趣部落等项目。 在大学,王斌学的是数学与应用数学专业,“数学专业的学生,一般出路有这么两种,一种是继续在本领域发展,比如去当老师(中学或大学),一种是向其他领域发展,比较多的是金融领域或计算机领域。”
那为什么会与计算机有交集,有选择了前端这个领域?王斌坦言:“这是受工作室和学长的影响。”他称,大学里面他一直在学校的工作室,帮学校做官网,所以积累了相当多的前端经验。而后来,工作室中一直带他的学长去了淘宝做前端领域,所以他在前端这块了解的也更加深入一点。
当然选择计算机领域,也跟王斌的个人规划有关。“我从小就喜欢计算机,知道自己未来的方向。数学与计算机跟还是有很大渊源的,计算机的鼻祖们大部们都是数学出身,像查尔斯•巴比奇、冯•诺依曼、图灵等人,计算机里的算法其实就是数学研究的东西。所以在大学里我会把专业知识打牢固。”王斌回忆称,后来他有幸在12年拿到了数学竞赛专业类全国二等奖。那是上海同济大学的一个全国性比赛,当时有4万学生参加初赛,到最后只有300人参加决赛,专业组更是不到100人。除此之外,王斌还参加了类似建模竞赛的比赛,获得了一些省级的奖项。
再后来还有幸获得了浙江大学数学系免试读硕的机会,不过因为个人原因,还是放弃了。
执着与努力,所以才成就了他的AlloyImage
2012年,王斌开始在腾讯实习。在腾讯的他,利用自己在数学方面的专业修养,做了AlloyImage——一个用HTML5写的专业的图像处理引擎。这个图像处理引擎主要是由王斌写的代码,后期他的领导也给予了一些有利的指导。 AlloyImage主要使用HTML5的canvas技术,并在多图层(layer)处理方面做了创新性的尝试,不仅如此,在技术实现层面,其架构方便扩展,使用者可以很容易写出现一个AlloyImage的滤镜插件,很多API支持重载,参数传递灵活。
根据公开的资料显示,AlloyImage是一个使用Javascript语言开发的,基于Web的在线图像处理引擎,除了核心底层图像处理引擎,还同时集成了一些方便快捷的图像处理API,您可以将它简单快捷的引用到您的Web网页中,做出与PhotoShop一样的优美效果。甚至,你可以用AlloyImage来开发一个Web在线图像处理软件,如:Web版的PhotoShop——AlloyPhoto。
“简单代码做复杂事情——It seems like so simple”是AlloyImage的设计理念。之所以确定这样的设计理念,主要是因为图像处理会涉及一些专业性很强的东西,API和其他体系可能也会比传统的库复杂一些,所以王斌他们尽快可能让AlloyImage暴露的API和使用方案简单一些。从另外个角度来看,这样的理念其实也是跟现行的互联网设计理论是一致的——一切扁平、一切极简是整个互联网人的情怀。
值得一提的是,AlloyImage涉及很多算法,推出之后在业界产生了很大的反响,包括受邀到台湾号称最大的开源年会Coscup上做分享,后来也收到一个外国友人对AlloyImage的建议来信。
王斌还透露到,AlloyImage正在与Intel的Crosswalk团队合作,提供给开发者移动端Web图像处理的一个可行的解决方案。举例来说,一个效果的处理速度可以从原来的几秒提升到不到1秒内完成。今年4月份在深圳举行的IDF大会上,王斌受邀将和Intel的同事一起演示方案的成果。
除了AlloyImage之外,还开发了个AlloyDesigner
除了AlloyImage之外,王斌还做了个AlloyDesigner。之所以要做AlloyDesigner,主要是他在开发的过程中,发现做页面很麻烦,于是王斌开始思考:怎么才能直观方便的开发静态页面。
后来在一次同事体验他开发成果的时候,受到同事的启发:把页面设计给的视觉稿放到页面中来,以50%的透明度与当前页面对比,就能直观的看到自己页面与视觉稿的差距。于是王斌利用周末以及平时地晚上时间开始开发这样的一个工具。整个过程,大概只用了三四天就开发出来一个基本可用的产品。
AlloyDesigner是用 HTML5 开发的、直接嵌入在Web页面中运行的可视化Web构建工具。它 适合切Web页面的人,可以高效的做到一个像素不差的页面,同时也适合测试、产品、设计走查页面质量。 AlloyDesigner 重新定义了Web页面构建的模式,页面构建过程中,AlloyDesigner直接嵌入你的Web页面中运行,帮助你精准、高效的构建Web页面的UI。
AlloyDesigner在Google WebStore上安装量最高时突破4K,“这已经是个不错的成绩了,因为国内最好的工具在Google WebStore上也不过在一万左右。”后来由于Goolge WebStore一直被墙,很多人反馈WebStore上不去,安装不了,所以安装量就一直没有什么突破。尽管如此,AlloyDesigner依然在腾讯公司内部获得了公司级的代码文化奖、最佳前端工具奖,与此同时,搜索引擎收录的AlloyDesigner相关页面也不少(有兴趣的朋友,可以 点此进入官网 看看)。
团队开发风格追求轻量、快速
王斌所在的团队叫AlloyTeam,这是一个大约为30人的团队。该团队负责QQ群、兴趣部落等项目的前端工作。而王斌则是这个团队的核心成员,担当了一部分基础框架设计构建的工作。
不同的公司,对于开发有不同的风格,腾讯作为BAT中的一员,那腾讯是什么风格?王斌谨慎地说到,其他部门不敢代表,但他们的团队特点主要是类似于敏捷开发的开发模式——轻量、快速,适应复杂多变的需求变更;“另一方面,在软件开发中,可能会强调代码风格、规范,另外一个提的最多的就是优化、优化再优化。”王斌接着补充到。
别总觉得自己受轻视 前端并不输于后台
记者经常在一些前端社区里看到有人抱怨,说做前端一点都不好,会经常被后台程序员看不起。对这个现象,王斌表示:“在以前,前端的代码量或技术含量上可能不及或确实不及后台,但现在依托HTML5的发展,前端可以做的事情也越来越多,比如图像处理、游戏、影音处理。技术要求也越来越高,依赖移动端的发展,HTML5承担的东西也越来越多,所以前端实际上不输入后台。”对于未来,“可能会更多的走进基础领域的研究,也会变得有趣。”
另外,王斌还就前端初学者的困惑——“不少前端初学者觉得要学的东西太多,不知道如何突破”,给出了他的答案。他称,其实学什么都不是一蹴而就的,就他个人而言,也经历了很多个时期:学习HTML、学习CSS、实践页面、学习解决各种兼容性(IE6)问题、学习JS、学习Jquery,实践以及后来学习HTML5、CSS3。他建议前端初学者,学习要有耐心,多实践,把一本好书学精就可以。同时王斌还推荐了一本书:Douglas Crockford的《JavaScript语言精粹》,建议初学者认真看。
做事讲究效率
由于王斌常利用平时业余时间做一些事情,所以他非常讲究效率。王斌称,这主要是因为他做东西讲究一腔热情,“一定要把它赶快做完,不然热情过了,这个东西可能就烂尾了。”
他这么形容自己:“如果发现自己某件事件效率低下,就会心里很生气、怨恨自己,就会找方法提高。”提高开发效率,比如编辑器他会选择VIM这样,上手难,但熟练之后编写代码很快的编辑器,因为它不需要一会用鼠标一会换键盘;虽然要记很多快捷键,但配一些插件,写代码特别快。“我还会经常思考代码怎样写更高效,更利于后期维护,经常会不断的推翻重新思考。”
在工作中,王斌也会想方法解决问题。比如他在兴趣部落项目中,刚接手的时候,代码维护性、可用性相对很差。“它是多页面的应用,就像一个网站一样有很多页面,但每个页面其实有些东西是可以重用的,但还是粘来粘去的写代码。这时候,我觉得这样不行,所以他就挤出一些业务开发的时间, 把项目的底层架构重构了一遍。”现在的兴趣部落是建立在新的架构之上,这个架构大大提升了开发效率以及稳定度,新来的同事开发一个页面可能也只是改一些代码就可以用了,很多东西都被封装好了。
正是因为这样执著追求效率,部落的新架构是建立在页面的抽象基础上,他们内部把它叫做Model.js,而王斌的同事会戏称老王模型。
爱分享,喜欢做一些有挑战性、贡献性的工作。
王斌最后称,他所在的团队AlloyTeam,团队文化非常Open,经常会在业界做一些有贡献的事情,这也影响到王斌个人,使得他比较积极,喜欢做一些有挑战性、贡献性的工作。
王斌认为,程序界最大的精神就是乐于分享,并且技术服务业务,技术觉得好,就应该分享给大家一起用。另外,这也是一种情怀,自己的东西被大家用,自己也会很开心,不是吗?
王斌的确喜欢和大家做分享。在今年年初,春节前的那段时间,年底了每个人都很忙,都在进行着各种总结,在这种情况下,王斌也在百忙之中抽出时间,为CSDN网友开展了一场在线分享《 AngularJs搭建大型多页面应用 》,这足以证明他的爱分享。
结束语
和王斌认识,纯粹是因为他答应做一场前端技术方面的分享,在做分享前后的沟通工作中,他的认真、扎实地技术功底,以及年龄小但却很有能力…等等吸引了我,所以做了这篇访谈,希望能将他的经验、看法提供给读者,给大家带来收获。