GMTC 前端技术大会记录
本周参加了为期两天的 GMTC 前端技术大会,在 PWA 专场上做了一个分享,也听了几场其他老师的演讲,在此记录一下一些收获和感悟。 分享内容大致和之前写的在 PWA 中使用 App Shell 模型一文相同。
大会前一天的讲师欢迎晚宴上,同桌有一位来自饿了么的 Android 讲师张涛,因为也是从上海赶来,我们就闲聊了一会儿。正吃着,大会的一位重磅嘉宾,Google Flutter 团队的于潇老师也来了。我们几个简单的聊了一下 Flutter 相关的技术,相比从事原生开发的二位,我就显得业余太多了。
说起 Flutter 这个全新的跨平台开发框架,第一次了解是在今年上海的 Google 开发者大会上,那次会后自己也试用了一下,从开发体验上说,自带的 Hot Reload 功能令人印象深刻。以往在 Web 端开发这功能很常见,但是在原生 App 的开发时,每次保存后自动刷新应用并保留当前的状态确实能大大提升开发效率。
虽然欠缺实际开发原生应用的经验,但是了解到 Flutter 底层使用 Skia 渲染引擎(Android 自带,iOS 需要打包进去)绘制组件,这也是和其他跨平台方案例如 RN 的显著区别。而渲染引擎又依赖 OpenGL 或者 Vulkan 这样的直接操作 GPU 的 API。
下面简单回忆一下这两天的几个分享。
Flutter
第一天上午 Flutter 团队发布了 1.0 版本。演示过程中,Hot Reload,直接修改框架代码等环节引来阵阵掌声。 于潇老师的演讲很棒。
值得一提的是,国内较早跟进实践的是闲鱼团队。之前在知乎专栏上看了他们发表的一系列文章,虽然我由于缺乏原生开发的知识,很多还看不懂。官方的文档也有开发者进行了汉化,随着中文社区的不断完善,相信能吸引一大波国内的开发者。
Web 框架
这个专场应该是相当火爆的一场,去晚了基本都没座儿只能站着。当前前端三大框架各有一位老师进行分享。我听了 React 和 Vue 这两场。
在知乎上关注程墨老师很久了,很多 React 相关的回答和文章都有读过。分享的内容是 Hulu 的技术演进,在服务端渲染上从 react-server 到 next.js 这样的方案。印象很深的一点是“框架要提供约束”,以前在使用 RoR 的时候,也体会过其倡导的“约定优于配置”。
Vue 这场是林溪老师带来的关于组件库的建设心得。Element UI 无疑是非常成功的组件库,在分享中一系列软件开发的设计原则仿佛将人拉回大学时代,当然那时候这些原则总觉得过于抽象。
Node.js
在听到阿里将很多运维工作交给前端开发人员负责时,不由得心里一惊,因为自己对这方面知之甚少,要是这类工作交到自己手上,真的算是毫无准备。
一些印象深刻的点:
- Pandora.js 是 Midway 团队开源的应用管理器,像我这样不懂运维的前端的福音!
- 故障演练
UI & 动画
总共听了两场。第一场是 winter 老师带来的图形学相关的分享。我也是 WebGL 的初学者,听完之后更加坚定了学好这个新技能的决心。 我记得其中说到很多复杂公式我们看不懂,也很难理解背后的数学原理,但是对于前端来说,用 GLES 实现一遍还是很简单的。shader toy 上有很多炫酷的实现,要想完全弄明白其中每一个细节是不现实的。当然一些图形学的基础知识肯定得学好,目前我也在看 WebGL Programing Guide 这本书。
整场分享的气氛是十分轻松愉快的,得益于 winter 老师风趣的演讲风格。
第二场是贝壳找房“教主”的分享,关于使用 SVG 绘制房型平面图以及使用 three.js 绘制实时看房场景。
WebAssembly
音视频领域涉及密集计算,纯 JS 往往力不从心。
工程化
来自 twitter 的胡天海老师分享了最新的工程实践。中间关于“父亲对于母亲的贴心举动”的小故事真的很棒。
Code Review 很多时候限于成本或者懒惰,我们就常常忽视了。但是胡老师告诉我们,更多的自动化,加上模拟环境,控制每次提交改动的粒度可以让这一切不再存在借口。
另外我那场演讲完之后,胡老师立刻发来了鼓励的短信,当时看到心里着实暖暖的。
总结
总的来说收获挺大的,个人的演讲技巧和一些优秀的讲师差距还是挺明显的,希望下次有机会能够表现的更好。