讲师介绍
李成熙 lee
腾讯 AlloyTeam 前端工程师
主要参与家校群、互动直播的开发工作,喜欢钻研技术,对 react、webpack 有深入研究,在性能优化和自动化方面具有丰富经验。
以下案例如果让你放弃了律师、医生、银行家这些职业而转行搬砖,求你的父母不要来追杀我。—— Lee
1. 简单介绍一下自己?什么促使你走上这条从入门到转行的道路?什么机缘巧合让你加入了 AlloyTeam 的大家庭?
我叫李成熙,网名 lcxfs1991,分别暴露了我的名字、出生地(佛山)和年龄(呃,年纪好大)。高中毕业后去了香港读了 4 年商科,中间去悉尼交换了 1 年,修过金融法、撸过 Java 和 PHP,最终因为兴趣走上了前端这条不归路。读大学的时候金融的课程都是随意读的,反而是信息科学、计算机科学的课程学得比较认真,去悉尼交换的时候也专门修读了不少计算机的课程,虽然被虐得不轻,但依然是很喜欢。当时为了糊口帮当地的律所、门户网站都写过代码。
在学习和工作的过程中,越来越感觉科技力量的强大,深感不远的将来,科技能将替代越来越多的人手工作,例如我自己的读的专业里面,像会计、量化交易等等的工作,当时由于科技的介入,效率已经大大提高,不久的将来随着人工智能的进步,这些商科对口职业可能会越来越多地被替代。出于混口饭吃的考虑,所以决定转行。果不其然,这几年金融业普遍境况比较惨淡,在香港的许多著名的银行都开始裁员和冻薪,但与此同时,这些银行却开始大力投资科技,以改善自身的运作效率。
加入 AlloyTeam 确实是很巧,当时刚从悉尼交换回来一段时间,各大互联网公司的校招都差不多尾声了,便开始尝试去了解有没有别的途径可以投简历。当时 AlloyTeam 的博客引起了我的注意,里面有不少前沿技术的文章,还有许多炫酷的开源项目。然后发现 AlloyTeam 长期招人,就抱着试一试的决心,加了 AlloyTeam 的公众群。很幸运,发时还有校招名额,然后居然还直接把简历投给了 AlloyTeam 的负责人 jetyu,经过一轮过关斩将之后,拿到了 offer。
所以,有兴趣进腾讯,尤其是 AlloyTeam 的同学,多关注前沿技术、多关注团队博客、多参加团队的活动,真的很重要!!!AC2016 不来,绝对是错过一个认识 AlloyTeam 及其它业界大牛的好机会!!!先混个脸熟,然后成功入职的机会就会大大提升!!!
2. 据说你是团队内部 React 的推广者之一,在项目中推行 React 的过程中有什么困难呢?如何克服?
最初听说 React,是在 2015 年中,深圳 Javascript 开发大会上,但当时由于业务迭代迅速,还没有很好地在项目中试用。AlloyTeam 算是公司内部最先将 React 应用到大规模应用的团队,率先由兴趣部落这边进行试验,采取了 React + Reflux 的架构,进行了 PC 版的开发。有大型业务的经验,与此同时,我参与的家校群项目,受制于交接过来的框架的种种限制,业务迭代受限。于是我们也开始尝试用 React 去开发 PC,并且重构移动端的页面,开发过程中采用了 React + Redux 的架构,并且从数据管理、路由、同构、React Native,进行了全方位的试验,最终也取得不少的成果,在业界算是较早的一批在移动端试验成功的。
遇到的困难也是不少的,当时还在迭代的快速阶段,除了兼顾业务发展,还需要同时进行重构。而且移动端由于性能不如 PC,那些在 PC 端没有性能问题的 React 写法,在移动端都纷纷触及了性能瓶颈。所以在重构的过程中,不断反思了之前的经验与做法,重构的时候也反复斟酌,好几次推翻了之前的写法。由于 React 本身只是 View 层(视图层),因此为了满足业务和性能的要求,我们还花了不少时间从 webpack,redux,react-router 等各方面都做了学习。不过克服了这一波学习的门槛之后,变得阔然开朗,由于 React 自身组件化的优势,以及我们采用 ES2016 的写法,项目的开发效率大大地提升。
3. 这次 AC2016 你主要讲 Webpack,有什么可以剧透一下的吗?
Webpack 作为 React 开发的御用打包工具,在我看来,由于它生态的发展,现在已大有超越自身领域,成为构建工具之势。由于开发 React 的缘故,我也对其下了一番研究的功夫—— 从它的原理、插件开发、优化构建配置等等。
目前,在我们 React 开发的过程中,已经以 Webpack 作为核心,研发出一一套包括打包、压缩、合图(gulp 主要负责合图)、React 轻量化、React 同构等等的 starter kit——steamer-react。这套 starter kit 基本覆盖了我们业务中的不少优化场景,让项目在开发的时候非常得心应手,1 分钟基本就可以初始化一个项目。而且 starter-kit 还包含了各种场景的例子,当新人加入不会写的时候,大可以参考这些例子,免去了反复请教别人的麻烦。
不过由于 Webpack 的内容非常丰富,因此我提前在 9 月份的时候,在 Coding x 掘金的技术沙龙上已经讲了一部份。但此次在 AC 大会上讲的内容,会有些不一样,我规划会讲一下 Webpack 的原理,以及介绍一下 Webpack2.0 的一些新的功能,还有目前我们在项目中使用的一些情况。
更多精彩内容,敬请期待李成熙在 AC2016 上的分享——《Webpack 支撑大规模应用开发最佳实践及原理》