微信号:frontshow

介绍:InfoQ大前端技术社群:囊括前端、移动、Node全栈一线技术,紧跟业界发展步伐。

阿里开源GCanvas、G3D和BindingX:提升跨平台交互体验

2018-03-27 12:03 李东辉

近日,阿里一口气放出三个前端开源项目,分别是跨平台图形渲染引擎 GCanvas、基于 WebGL 的 Javascript 3D 绘图引擎 G3D 和基于 weex/React Native 的富交互解决方案 BindingX,这三个项目增强了跨平台前端交互性能和开发能力,降低开发成本。我们采访了淘宝高级技术专家寒冬,了解这三个开源项目背后的故事。

项目地址:

  • GCanvas:https://github.com/alibaba/GCanvas

  • G3D:https://github.com/alibaba/G3D

  • BindingX:https://github.com/alibaba/bindingx

嘉宾介绍:

程劭非(寒冬),淘宝高级技术专家。主要的工作内容是手机淘宝上的各种页面。早年做过嵌入式系统浏览器、电子书和 WebOS,近年在移动前端领域摸爬滚打,提出过 Flexible 布局之类概念,团队也曾产出了 Weex 这样的 Web 开发体验开发 Native 的方案,现在负责 Weex 上的两个 DSL:Vue 和 Rax。寒冬将在 QCon 北京 2018 分享《前端交互的基础设施的建设》,识别二维码直达寒冬现场分享。

InfoQ:开源的三个项目是交互基础设施的工作么?能否简单介绍这三个项目,为什么选择这三个项目以及这个时机开源?

寒冬:BindingX 和 GCanvas 都是我们在 WeexConf 上承诺的开源,不过开源本身也是我们的长期计划,至少计划了一年了吧。

BindingX 是从 Weex 项目中诞生的一种模式,它的核心思想是通过表达式在输入和输出之间建立一个连接,这比我们常见的"事件 - 响应"模型抽象上更高一层,限制了一定的自由度,但是它带来的好处是声明式编程和 Native 通讯的亲和性,通过 binding 模式,我们可以避免 JS 和 Native 的频繁通讯,从而提升性能。

GCanvas 和 G3D 两个项目,其实是一体的,GCanvas 提供底层的图形能力,G3D 提供上层的 3D 模型。

GCanvas 这个项目历史悠久,大概在 13 年就在淘宝出现了,最早是为了解决 Android 上的性能问题的,那个时候我还是它的用户,后来到了 Weex 和 React Native 这样的框架出来,我们发现了它的新场景。而实际上 G3D 这个项目,我们经历了很多纠结,寻找它和业内知名的 ThreeJS 和 BabylonJS 这样的库相比价值在哪里,后来我们找到了它和 GCanvas 的结合点,那就是我们要做一个纯粹的不依赖 DOM,只依赖 WebGL 的 3D 框架,后来两个项目就一起开源了。

InfoQ:接下来你们团队还有哪些开源计划?能否谈谈你们的开源思路和开源前的准备?

寒冬:未来的重点肯定是维护好这几个开源项目,开源项目关键在于持之以恒的维护和发展,真正帮到实际的用户吧。我看到一些腾讯的朋友已经在关注我们的项目了,大厂之间还是比较能互相理解吧。

InfoQ:当维护的内部工具和开源工具多了,你们是如何管理以及维护这些工具的?如何避免陷入疲于维护的状态?

寒冬:我们做技术有一个架构原则,叫开放封闭原则:对修改封闭,对扩展开放。我觉得这个也适用于技术产品,想清楚什么该放出去,什么该收回来,就不会因为维护而把人力都消耗掉。不断推进产品演进,又不阻碍客户在上面完成自己的任务,这是最好的状态。

我看到很多很好的开源产品,都是不断地替用户做事,结果越来越臃肿,希望我们能够避免这个问题。

InfoQ:你认为前端交互基础设施的边界在哪里?你们团队注重哪些问题的解决,以及攻克优先级是怎样的?

寒冬:所谓交互,在我理解是一来一回,视图和输入以及它们之间的联系就是我们团队的职责。在这个理念下,我们产生了从前端框架 Rax,BindingX,GCanvas 和 G3D 等开源产品,除了这些看得见的技术产品,我们还有一些架构模式上的探索。我们这个团队的目标分成两部分,一部分是研发体验和效率,另一部分是探索和创新,具体问题的优先级,是根据业务团队的需要,以解决问题为导向的。

InfoQ:既然是基础设施,如何衡量投入产出比以及如何考核团队及项目的优异?

寒冬:我们的考核是客观指标和主观判断相结合的,业务团队的满意度、项目的影响范围、服务的 BU、开源社区的影响力,这些是客观的,设计的创新性、前瞻性以及开发体验,这些是主观的。

关于投入产出比,其实我倒不太关心,我比较关心的是产出,如果产出是能够引领新时代的、激动人心的那么加班、招人、找老板打滚要资源,也想把它做出来看看啊。

InfoQ:为什么说新交互永远是花费时间最多的工作?建设前端交互基础设施是一个好的解决方案么?

寒冬:我把新交互理解为一种实用性的艺术,艺术是有潮流的,每年都会不一样,所以在交互上的创新永远不会停止。

交互基础设施肯定是要有的,我认为设计师是交互创新里面感性的部分,而前端则是在交互创新里面理性的部分,设计师能够感知和引导用户的需求,保障新交互是能够让用户喜欢,我们建设基础设施,就是要保障这些创新是螺旋"上升"的,不能原地打转。

用户的要求看似兜兜转转,实际上是在不断提高的,今天拿出 Windows 98 的方框按钮滚动条来,大家都接受不了,当年那还是觉得挺惊艳的。如果没有这些基础设施,也许明年的新交互就做不出来了,或者要花费几倍的人力去做,逐渐团队就会被这样的研发成本拖垮。

InfoQ:如何看待目前的前端生态?您认为前端的下一个里程碑会是什么,为了达到这些里程碑目前的障碍有哪些?

寒冬:目前前端生态仍然是健康活跃的,不过同样也是比较初级的阶段,应该说是发展快但是成果少吧。

下一个里程碑就不好预测了,不负责任地瞎猜一下,我觉得图形学这样的东西未来应该成为前端的基本技能了吧,发展到一定阶段大家肯定不满足于用脚本排列组合改改属性,要开始自己画东西了吧——所以 GCanvas 前景我还是很看好的。

前端之巅

「前端之巅」是 InfoQ 旗下关注大前端技术的垂直社群。紧跟时代潮流,共享一线技术,欢迎关注。

活动推荐:

随着人工智能、物联网等技术的普及,从未来的端来看,端已经不仅仅是手机和 PC,会涉及到各种各样的端的交互和展现形式。更多关于前端和大前端的技术探索,可以关注 QCon 北京 2018,目前大会 9 折报名中,立减 680 元。有任何问题欢迎咨询票务经理 Hanna,电话:010-84782011,微信:qcon-0410。

 
前端之巅 更多文章 开发者吐槽:Android开发就像“大便三明治” 致移动开发前线读者 Swift 4.2进入最后开发阶段,为Swift 5铺平道路 滴滴出行跨地域 iOS 构建优化与持续集成 RedMonk发布编程语言排行榜:Swift成为全球增长最快的编程语言
猜您喜欢 优秀程序设计的原则 0x0E 大数据职位,数据场技能(上) (55) 容器类总结 \/ 计算机程序的思维逻辑 小米如何打出漂亮的翻身仗?| CEO说 【面试问题集锦及回答:你还有什么问题想问我的吗?】