拿着公司轮流的福利,参加了20号下午半天的GMTC大前端大会,虽然只是半天,还是有不少收获的,所以简单做下总结。
我参加了贝壳的极致前端性能优化探索、Rokid的JavaScript in IoT、美团的基于跨平台框架Flutter的动态化平台建设和字节跳动的基于Electron的跨平台桌面客户端开发实践。

首先说下我在参加过这半天技术分享后对大前端的一些思考。
20号下午分为了五个大的主题——跨平台技术、UI与图形渲染、Node实战、未来移动技术以及贝壳专场。
从课题安排上可以看出,无论是“Web前端原生技术”、还是安卓、iOS原生技术的课题都是少之又少。即使贝壳的前端性能优化,其中很关键的环节也是对性能、错误的记录、存储分析等Server工作。可能真正意义上的“纯前端”只剩下图形渲染方面中的三维渲染、D3、幻灯片编辑器之类的了吧。

我最近也在思考,前端的未来是什么。虽然做后端的同学也常常会抱怨自己只是CURD工程师、IFELSE工程师,但是我一直觉得后端是比前端更难被替代的。后端随着工作时间等增长,对同类的业务必然会有更深入的了解,这点对新人一定是个门槛。
但是前端就比较尴尬,大部分前端应该和我这种差不多,工作主要就活动页面与后台两类。活动页面几乎都是从0开始的工作,后台几乎所有的后台都是调用接口,然后增删改查数据。基本上一个有点工作经验的前端都可以随时接手的吧。

从大会的课题上也能看到一些模糊的方向吧。

图形渲染与复杂交互,“纯前端”中最具有竞争力的方向,比如这次分享中就包括了三维地图渲染、D3数据可视化、幻灯片编辑器等。在复杂交互方面,需要大量的经验积累以及专业技能,所以应该比较难以被替代。如果说缺点的话,可能就是能力要求比较高,岗位相对少一些。

跨平台技术,这方面对Web前端是挺有优势的,小程序、React Native、Electron基本上就是Web那套技术。大火的Flutter框架和Dart语言对所有人基本上都是全新的,但是Dart语言简单,Flutter的开发思路和React挺接近的,对Web前端也很是友好。Rokid的JavaScript in IoT也是跨平台技术,平台变成了嵌入式设备。
跨平台技术对Web前端开发的挑战是大部分还是需要对底层的一些了解。比如美团中介绍的Flutter的动态化,其中的实现还是需要Flutter的渲染底层与Native中的JS Core进行通信。JavaScript in IoT中,更是自己对JavaScript的实现做了一些变动,来更好的支持对内存等限制较高的嵌入式设备。

Node方向,对于Node我用的也很少,貌似很多公司会作为中间层或者渲染层。20号下午场主要有Serverless、框架的设计、DevOps实践等。我觉得Node方向更应该定义为后端了,与已经工作多年的后端相比,肯定还是有些差距的。如果是拿Node来写业务代码,时间久了,应该会面临和大多数后端一样的烦恼吧,毕竟大部分工作一定是业务。不过另一方面,像贝壳分享的前端性能优化中讲到的,做的是服务于Web前端的工作,应该会比较有成就感。

应该选择哪个方向,我也不知道。复杂交互要学习一些专业知识,跨平台技术要学习相应的底层知识,Node方向要学习后端知识。我能想到的,也许只有学习,才能减少一些迷茫。