1 月 19 日 weex 团队在杭州开 weex conf.半闭门邀请制,因为我之前的项目里尝试性的接入了 weex ,刚好失业在家有空,就约上冰霜一起报名参加了.
虽然此次会议规模不大,现场不到百人,但是似乎是只邀请了项目里有使用过的 weex 的人,现场也不乏腾讯,网易,蘑菇街规模大一些的公司,所以现场讨论的气氛还是挺好的.下午的演讲都是介绍各自团队在使用 weex 的实践总结,算是让我对 weex 的现状有了更清晰的认知.把我一天下来的感想总结一下.
weex 的下一步:重写内核,摆脱 JavaScriptCore 依赖
一份代码,多端运行的思路是逻辑使用 JS 编写,JS 文件动态的同步到本地,之后本地的 JS 引擎执行 JS 的代码,通过调用本地提前注册好的 native 函数实现业务.如果更抽象一步,就是约定一份语法格式(DSL),不同平台针对这个语法执行响应逻辑.有点像编译的过程,把自定义的字符串解析成本地对应的代码.只是在早期的时候,有现成的 JS 和 JavaScript Core,自然而然的利用现有的完备的技术体系.
那么现有体系有什么硬伤呢?
JS 环境和 native 环境通信性能问题 JS 的 runtime 和本地的 runtime 不一致.两个环境的互相调用还是有比较明显的性能损失.会上有人提到本地的 GPS 定位持续的传给 JSC,函数响应的过程可能需要几十毫秒.虽然这种持续的函数调用虽然不是常见的场景,但是这个场景突显了这种模式的先天的硬伤.
对不同平台 JavaScript Core 的依赖 在 iOS 端,weex 使用的是 iOS 自带的 JavaScriptCore framework;安卓端原先用的是 V8 引擎,后来替换成了 JavaScriptCore .两端的 JS 引擎有着不一样的代码,而且 iOS 端的 JSC 是闭源的.如果同一份 JS 代码,两个端运行结果不一样,调试起来就非常困难.
如果用 C++ 写一份自己的内核,两个端就可以使用同一个引擎,就可以抹平运行时的不一致,性能也会得到提升.唯一的问题就是这个操作门槛有点高.只能说 weex 的野心让人敬佩.
选择 weex 的理由
支持 web
其实我本来想用 "吊打" 这个词,毕竟 RN 根本不支持 web.之前在技术会议上看到携程,京东都提到他们打算自己维护一套工具,以支持 RN 的 web 端能力.可是普通小团队都没有这样的研发力量.weex 因为来自自身(淘宝) web 端的需求,所以一开始就支持了三端.虽然 web 端的能力一般,但也还是能用.这是一个真实的痛点,现场来的很多团队选择 weex 就是因为需要同时支撑 web 端.
vue 的加持
前端框架的优劣就不谈了,但是个人喜好确实不同.因为现场团队听见有的团队说我们对 Vue 比较熟,不想再接触 react 那一套,就选择了 weex .
阿里已经深深依赖
毕竟 weex 的最初使命就是解决自身的开发效率问题.阿里内部的认同对于这个项目的稳定性影响至观重大.随着 weex 的性能提示,淘宝的双十一会场的几千个页面都是利用 weex 实现的.看来是稳了.
听到飞猪团队的一个分享提到的一个业务场景很有意思.飞猪有一半的流量来自其他阿里系 app(淘宝等),以前通过 hybrid 的网页实现.但是网页的缺点大家都知道了,加载慢和交互体验差.现在因为其他 app 都带了 weex ,所以约定好一些 module ,可以非常方便的支持其他 app 嵌入自身的业务.
总之,阿里内部对 weex 已经有价值上的认同.好吧,其实我也不是很关心这个,我知道明天 weex 团队不会解散就好了.
最大的瓶颈:社区活跃度
Weex 开发者社区的活跃度对比 RN 可以用惨淡来形容.这种心情大概就是两个开发者如果知道对方用的是 weex 会相视一笑,然后抱头痛哭.
社区不活跃会对技术的使用提高很多门槛.
比如我看到的一件事,weex 移交到 Apache 后,原先 github 上的 repo 就不再维护了.Apache 上面并没有提 issue 的渠道.开发者也普遍对 Apache 通过邮件沟通的方式不太习惯.所以一位开发者使用 weex 碰到问题就不知道去找谁了.某些网站上提问有人回答也是几个月后才有稀松的几个回答.一个技术要普及,门槛就一定要低.不能希望使用的团队技术都有一线互联网公司的水准,能自己看源码解决;或者都能有渠道找到阿里的朋友帮忙解决问题.
社区不够活跃,技术的实践资料也就少了.如果用 RN 想要做路由,一搜就能搜到几个解决方案.甚至出版社的纸书,RN 都有好多本.然而搜一下 native 如何往 weex 传值都要找好久.
冰冻三尺非一日之寒.如果要入坑 weex ,社区虽然在变好,但是可能还是没有主流的框架那样活跃,要做好心理准备.
总结
谁不希望看到一个中国团队开发的技术方案走向世界舞台呢?
顺便带个 weex 的招聘
淘宝 - Weex 内核研发技术专家
来源: https://juejin.im/post/5a620abf6fb9a01c9950e4a0