@pockry
2018-03-26T17:37:30.000000Z
字数 2450
阅读 8104
前端
近日,阿里一口气放出三个前端开源项目,分别是跨平台图形渲染引擎GCanvas、基于WebGL的Javascript 3D绘图引擎G3D和基于weex/React Native的富交互解决方案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 旗下关注大前端技术的垂直社群。紧跟时代潮流,共享一线技术,欢迎关注。