他是《JavaScript设计模式与开发实践》的图书作者,也是一位爱电影、爱音乐;同时,他还是一名健身教练;本期笔者要采访的嘉宾是国内知名前端团队腾讯AlloyTeam、高级工程师曾探,请他分享JavaScript设计模式、技术实践经验,并就JavaScript、HTML5未来发展前景做一番解读。告别宅男程序员也有不一样的活法。
CSDN:首先请介绍下自已、公司以及所负责的领域。
曾探:我叫曾探,目前在腾讯即通应用部AlloyTeam团队从事手机QQ周边业务的开发。
CSDN:市面上关于JavaScript的书籍有很多,为何你还会想到编写《JavaScript设计模式与开发实践》一书?这本书的思路是怎样的?对读者而言如何学习这本书,您有哪些建议呢?
曾探:目前市面上确实有许多关于JavaScript的书籍。但一方面,我本身非职业作者,也不靠稿费生活,所以市面上有多少JavaScript的书籍其实跟我自己的关系不大,我的任务就是把书本身尽量写好。另一方面,市面上跟JavaScript设计模式有关的书比较少,目前的2本都还有一些缺点,所以希望我的这本书能起到一些互补的作用。
其实我写这本书的初衷是介绍一些平时日常开发中总结的技巧,但又不想写成如同《JavaScript开发100招》这样的主题,所以正好就借设计模式这条线把这些技巧给输出来。对于这本书的阅读方式,其实没有特别的建议。因为书本身还是以非常简单易懂的方式来写的,从第一页开始,或者是某一页开始都可以,应该不会有太多障碍。
CSDN:许多优秀的JavaScript开源框架都运用了设计模式,适合程序员常用的设计模式有哪些?
曾探:这些设计模式既然被前人总结出来,说明都是经过了大量项目和实战验证的。没有说哪些设计模式适合程序员,而另外一个设计模式不合适程序员,都是要看具体的场景来决定。
不过作为JavaScript开发者,接触过最多的设计模式应该至少有观察者(发布-订阅)模式、代理模式、单例模式、装饰者模式、状态模式等等。
CSDN:JavaScript有很多框架和库,如何在众多资源中建立属于自己的技术栈?
曾探:我们大多数人主要都在从事上层业务开发,拿公司的工资,给公司做需求(当然如果有公司愿意让你从事计算机科学研究,那也非常好)。 所以我们使用的大部分框架和库,首先是跟业务需求密切相关的,在业务开发的过程中,去使用和熟悉或是改进某个框架,都是非常好的学习机会。
把所有想学的技术列出一个清单,然后一样一样去学, 这是很难有机会全部实现的。在工作的业余,如果有时间,我们可以挑选一些最想学,或者是近期最需要的技术进行学习。当然,我们最需要的其实不是自己的技术栈里有多少东西,而是培养学习能力,随时可以把新东西放进自己的技术栈。
CSDN:现如今JavaScript越来越火,你认为同构JavaScript是Web的未来吗?
曾探:JavaScript这门当初不怎么起眼的语言,已经成了世界上最流行的语言之一。除了浏览器开发,我们也用Node.js做了许多有趣的东西。在腾讯内部,已经有许多业务的服务端语言使用的就是Node.js。当然,我们现在说同构JavaScript就是Web的未来还为时甚早。就像当初很难想象JavaScript会成为世界上最流行的语言,也预测不了诺基亚在短短几年从兴盛到衰败。不过这对于前端工程师来讲,是一个非常值得想象和期待的事情,需要我们大家一起努力。
CSDN:HTML5版街头霸王是你主导开发的吗?你认为HTML5目前已达到成熟阶段了吗?你怎么看待HTML5的发展前景?它会成为移动互联网的未来吗?
曾探:《HTML5版街头霸王》是我12年写的一个业余项目,可以在这里访问。当时是当作学习canvas的一个练手项目,虽然整体还不错,但也有一些没有实现完美的地方,比如游戏中的图片是从网上找的,有些图片有大小不一样的透明边,当时为了省事,没有去掉这些透明边,就把图片的大小当成了人物的大小来使用,所以碰撞检测看起来有时候会有些小小的问题。
HTML5应该说还远没达到成熟的阶段,HTML5的概念虽然已经出来了很多年,但真正标准在2014年10月才发布。HTML5的发展前景还是值得期待,不过现在说他是移动互联网的未来确实还太早,毕竟现在用HTML5做的移动端页面,不管是性能还是体验,都跟Native相差比较大,特别是一些复杂的项目和游戏,HTML5还远远达不到Native的效果。不过事情总是在发展,期待HMTL5越来越好。
CSDN:拜移动大潮所赐,你认为前端工程师将面临什么样的机会和挑战?
曾探:就我个人而言,除了上班时间已经很少打开电脑了。原先用PC能做的事情,现在手机几乎全部可以完成,可以预见这个趋势在将来还会更加明显。在这种情况下,原先在PC上开发的前端工程师很多都转向了移动Web开发。包括AlloyTeam也是这样,现在绝大部分时间都在做移动端开发。对于前端工程师来说,可能要学习一些新的知识,这不是坏事也不难,程序员应该保持学习的心态。 不管是PC开发还是移动开发,我们都在用相同的方式来改变人们的生活。
CSDN:给前端开发的开发者分享下您的经验吧。
曾探:其实我自己只能算一个普普通通的前端开发者,不算聪明也算不上特别努力,我本人的经验和经历也很平凡。不过我相信不管是前端开发者,还是后台、终端开发。最重要的是有一颗保持学习的热情,会喜欢这个职业,而不仅仅是为了一份糊口的工作。在工作中认真完成业务需求,从中学到必需的技能。业余时间里可以买一些经典的书籍来整理和总结自己的知识库,有时间的话可以参与一些开源项目,有个自己的技术blog,可以有一些工作之外的爱好,但别在类似技术QQ群之类的地方浪费太多的时间。提高不是一天两天的事情,但时间久了便会水到渠成。
CSDN:很多人认为,IT男是宅男,不懂得享受生活,而你却不同,你喜欢电影和音乐,还是一名健身教练,你是如何做到的?你平时一天的工作状态是怎样的。
曾探:我也认识许多非常有才的程序员,程序员是一个相当聪明的群体,聪明的人能做好许多事情,而不是仅仅写代码。我一直觉得工作和生活是不矛盾的,工作无论如何也只是生活的一部分。程序员的职业特点注定了对健康的损害比较大,在25岁往后人的器官开始不可逆转的老化之后,久坐和不运动带来的危害更大。所以程序员更要有意识地多运动,至少运动会给你一个跳动更强烈的心脏,可以背女朋友越过某个路上的小水沟。当然,加班赶项目的时候也比别人抗得久。
对我自己而言,一周大概会去3-4次健身房,踢一次足球或者游泳。当然也会遇到很多有其他事情的时候,不管怎样,一周抽出5个小时来锻炼肯定是没有问题的。
现在我工作的大多数时间都在做一些公用的工具,或是能提高大家开发调试效率的东西,还帮忙参与一部分团队管理的工作。晚上下班之后一般会去健身房待上一个小时。有时候也像刚毕业时候一样加班,总体在说,在Alloyteam工作是一件非常开心的事情。
作者简介:曾探,国内知名前端团队腾讯AlloyTeam,高级工程师;《JavaScript设计模式与开发实践》一书作者。曾参与Web QQ、QQ群、Q+开发者网站、微云、QQ兴趣部落等大型前端项目的开发。有过Java、Python和JavaScript的开发经验,业余作品有HTML5版街头霸王等。 平时喜欢电影和音乐,业余时间也是一名健身教练。