参加第10届 D2 的收获

在飞哥@徐飞的号召下,我们小组这次基本上全员出动(除一个小伙伴临时有事没来),来膜拜大神,学习新姿势。(貌似我没有写是五花肉的前男友就顺利通过D2申请了,哈哈[骄傲脸])。

这次D2的主题是融合,演讲主题主要分两大块,一块是 Node.js,一块是 React + React Native(果然是2015最火技术),然而在我们这边的实际项目中并没有用到这两个,所以估计对我们小组的人员来说,全听懂还是有困难的(经验丰富的大师兄和乔大师@乔梁除外)。好在自己之前做过一些跟 Node.js 相关的,在来之前也稍微补了一下 React ,写了小demo,所以也还能勉强听懂一些。

上午第一场听的是不四老师@dead-horse 的用《Node.js 构建海量页面渲染服务》,看到了在阿里,Node.js 确实是被广泛使用的(仅次于PHP,不知道有没有记错。。。),并且用来承载一些核心业务(比如淘宝首页促销页等),并能经得起双十一这样高峰值的考验。

这场主题印象比较深的主要有下面几点(因为是自己要么没听过要么没用过的。。。):

  1. koa和express的对比。在 express 里中间件顺序执行,而 koa 是一个包裹在后面所有中间件的装饰器(比如将charset、gzip这些都放到各中间件完成),所以核心代码也比较精简

  2. 编写可测试的代码,持续集成。记得当时不四老师问了一句,你们 Node.js 的开发都写了测试吗,举一下手,结果没几个人举,然后不四老师说,没测试的代码你们真的敢放上去跑吗。。。想想我自己就是其中一个[羞愧脸]

  3. 使用 cluster 进行多核处理。master 只做进程管理,worker 异常退出后自动重启,http 服务优雅退出

  4. 日志管理。所有请求都有 accesslog 追踪,所有异常统一处理分类输出

  5. 基于 CDN 的 URL 统一,在 CDN 识别设备类型,为 pc 和移动端缓存不同页面

第二场一开始是去听杨文坚老师的《Component 化设计与实践》的,去到发现人爆满,站的位置都没有。。。听了一会,发现在飞哥之前的几篇组件化方面的文章里面已经看过,所以就出来了,想换场听李成银老师的《使用ES6/7特性开发Node.js项目》,结果发现根本挤不进去,于是就回报告厅听《Hybrid APP 框架的架构演进》了,去到的时候晓田老师已经讲完,主要听隐风老师讲如何将 Native 组件覆盖到 webview 上,觉得还是要以后自己做了相关的东西才能理解更深刻。

中午跟几个小伙伴去食堂吃了饭,然后用飞哥拨的经费集体去喝了星巴克,回去之后还打电话叫飞哥出来一起在门口拍了张合照。。。

因为上午主听了一场 Node.js 的,下午第一场选择了听承玉老师的《React 及其生态圈在蚂蚁金服的实践》,主要记了以下几点。

  1. Ant Design,一个基于 React 构建的一套 UI 组件库。听过但是没用过,打算以后使用 React的时候深入了解一下。。。。

  2. 了解了在蚂蚁金服内部是如何进行组件化实践的,像购物车、表单处理等,让后台人员也可以在简单培训后使用组件进行前端开发。

  3. React Native 的一些优势。比如 100% 的 Native UI 和 API,编程语言能力,布局和样式能力,开发体验,开源,社区等。

其实同时进行的另外两场,朴灵老师的 《alinode 与 Node 应用性能管理》和 霍雍老师的 《Web接口管理工具 RAP》(最近刚好在做一个类似的 demo)也很想去听的,无奈冲突了,只能后面跟其他想听的主题一块看录像学习了。。。

下午第二场先是去听了郭虹宇老师的《融合 Web 技术的 Native UI 架构》,后来还是发现自己没有进行过实际的 React Native 开发听起来感受不强烈,就换场去听了黄友昆老师的《Node.js 加速 Qzone》,首屏离线,点开就有,消除白屏,确实让体验更好了。然后是介绍了 使用 window 对象而不是直接传 request 和 response,做一个log工具,也很有借鉴意义。话说友昆老师的 PPT 做的好冷,比如提到最难点的时候那张 最南点500米。。。

最后一场是听了宁朗老师的《DataV 数据可视化引擎》,最大的感觉就是很酷炫,不过对 WebGL没什么了解,所以没法对他们开发过程中踩的坑和解决方案感同身受,就当开眼界了。。。

一天听的内容大概就是这些了,主要有几点感想:

  1. 前端技术果然是日新月异的,越来越丰富,能做的事情也越来越多,Node.js,让前端工程师使用 javascript 进行后台开发,也就更有了话语权,而且就算不使用 Node.js 开发,大多前端构建工具也是基于 Node.js 环境的,所以不了解的可以了解一些,感兴趣的可以深入一下。

  2. 组件化确实是一个很好的理念,不过我们目前的开发主要是基于 MVVM 的 Angular,所以体会不是很深刻(其实也用 directive 进行了一些组件化实践)。了解各自的特点及应用场景,才能进行更好的技术选型,多进行技术储备肯定是没错的。

  3. React Native,结合了 Web 应用和 Native 应用的优势,使 IOS/Android 的开发具备 Web 开发的体验,后面应该会有更多 React Native 的应用出现,因为一直想尝试做 APP 玩,所以对这个技术很感兴趣。。。

综上,这次的 D2 之行让第一次去参加技术论坛的我大开眼界,收获颇丰,以后类似的活动也一定积极参加,强烈建议各位前端小伙伴有机会就去围观~~

坚持原创技术分享,您的支持将鼓励我继续创作!