截至2018年11月,微信小程序总量超过120万,小程序市场规模依然保持着的20%高速增长趋势。且微信小程序的累积用户量已突破7亿,占微信月活用户的70%,日活用户已达2亿。用户使用习惯形成。

小程序究竟是个什么?

小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用。也体现了“用完即走”的理念,用户不用关心是否安装太多应用的问题。应用将无处不在,随时可用,但又无需安装卸载。

与传统app相比,小程序无需安装、卸载,用完即走,触手可及,与用户不是粉丝关系,是访问关系,后台数据是微信标准化数据,不能自由选取。

与应用商店相比,小程序没有应用商店,也不做应用分发平台,不能进行模糊搜索,覆盖的只是用户的特定场景下的注意力资源,满足用户特定场景的需求,不是完整的产品应用。小程序只是连接人与服务的工具,不是流量分发平台。

目前微信、支付宝、百度、QQ、抖音、今日头条六大超级APP已悉数入局完毕,至此,小程序生态一超多强的格局形成,2019年小程序必将朝多极化方向发展。

随着诸多的顶级流量平台甚至是更多平台推出自己的小程序,每个小程序甚至是一套完全独立的开发体系,让程序员们和诸多创业公司们苦不堪言。一方面不知道各平台是否能带来足够多的流量,一方面又缺乏足够的生产力去适应各个平台,真是“食之无味,弃之可惜”。

而京东推出了一套遵循 React 语法规范的 多端开发解决方案-Taro。现如今市面上端的形态多种多样,Web、React-Native、微信小程序等各种端大行其道,当业务要求同时在不同的端都要求有所表现的时候,针对不同的端去编写多套代码的成本显然非常高,这时候只编写一套代码就能够适配到多端的能力就显得极为需要。

使用 Taro,程序员就可以只书写一套代码,再通过 Taro 的编译工具,将源代码分别编译出可以在不同端(微信/百度/支付宝/字节跳动小程序、H5、React-Native 等)运行的代码。

近期小编夜探京东秘密基地,特地邀请到了京东的Taro团队来到 Cloudopt 点评家进行专访。

以下为点评家与Taro团队李伟涛(liweitao)的专访记录:

您现在是在京东负责哪一块呢?
我主要是负责部门研发工具的开发以及一些开源项目建设。比如多端统一开发框架 Taro。还有一些与前端相关的开发工具和框架,比如说我们之前做的 Nerv(高性能前端框架),它跟React API一样,占用会更小,兼容性会更好,兼容IE8之类的。

您为什么会对编程感兴趣呢?
大学就读的专业是软件工程,对网站开发、软件设计都挺感兴趣的,并且在校期间加入一些计算机相关的社团,考虑往这个方向发展,于是就往这一块钻研。

那您除了对编程有兴趣之外还有其它爱好吗?
平时比较喜欢自驾游,最近的一次自驾游去了桂林。

能介绍一下您的团队吗?
我们团队目前主要是负责 Taro 这个项目。项目围绕着 Taro 相关的开发工作,因为它是一个多端开发工具,所以涉及到很多个模块的分工。比如说有人负责代码编译,需要把代码编译成各个端的代码,同时有人负责小程序这一块运行框架的开发。然后还有负责h5相关的,比如负责h5 API来同步实现API组件。还有人负责React Native相关开发,比如说他要把代码编译成HTML5。根据不同端的方向,每个方向会有一个人负责做适配。

为什么叫Taro呢?
因为我们部门是叫做凹凸实验室,谐音和奥特曼很像。当时就决定以后我们有新的开源项目,就以奥特曼来命名,所以 Taro(泰罗)是第一个。

相对于其他开发框架来说,Taro有什么优势吗?
Taro 和现行的那些开发框架不同。它使用的是类 React 语法,对于喜欢类 React 的人来说就比 Vue 语法要好很多,吸引力更大。其次,Taro 适配6个端,包括微信、百度、头条、h5、APP、快应用等等。而目前和 Taro 适配的端数量差不多的只有 uniapp 和变色龙。但从生态角度来讲,uni-app 和 Taro 两个是目前比较领先的。Taro 除了框架本身,它有自己一个不断的UI库,社区很多人会为 Taro 贡献组件库和 UI 库。所以 Taro 未来除了在框架核心这边继续建设之外,也会在生态以及相关周边的建设上赶超 uni-app。

Uni-app 他们之前是做Hbuider,在IDE开发工具这一块会接的比较多。他们先上线了一个插件平台,发展生态比如组件扩充会更快速一点。我们也有这方面的规划,计划推出一个可视化的开发工具。比如我们可以通过已经内置的模板直接创建出项目,通过可视化的方式进行编辑。关于模板这一块,目前我们已经积累了电商的模板,以后也会补充酒店、订餐等等涉及各行各业的模板。至于后端方面,后续可能会跟京东云、腾讯云有一些合作。

目前团队的平均年龄是?
Taro项目团队的平均年龄25-26岁,大家都相对年轻,充满活力。

目前部门有多少人?分别是负责?
我们部门研发人员约50人,主要为商城主站、微信手Q及部分事业群提供WEB前端开发、小程序开发、APP开发、小游戏开发、H5动画开发等能力支持,同时会去沉淀一些业务组件或模板,并研发一些效率提升、开放赋能的工具或者平台。

开源社区对Taro的影响大吗?
影响挺大的。一开始很多代码都是我们自己写的,但是到现在已经有约20%的代码是他人贡献的,这个比例应该还在慢慢扩大。因为Taro要做的事情很多,我们人又少,所以它对第三方生态的支持有时候可能不到位。举个例子,taro最早是不支持mobx的,后来的由网友贡献的,这个改造工作量非常大,它涉及到大概有二三十个包,并且代码量也挺大。所以第三方开发者对我们帮助很大。除此之外,一些有用的建议以及一些代码提交都帮助挺大的。

太多企业碰到类似小程序这样的问题,所以Taro之后的影响力也会越来越大。我们现在正在支持的快应用已经接近开发尾声。QQ轻应用这个项目目前刚做完文档,即将进入开发。QQ浏览器的项目也会在近期开始做。像微信、百度、头条这些现在已经是支持得非常好了。

当时是怎么萌生开发Taro的想法呢?
其实是因为当时我们支持的业务,这个业务既做小程序,也做h5,后来还做了APP,所以就得同时维护三套代码:小程序一套代码,h5一套代码,APP一套代码。因此我们萌生能不能就用一套代码去实现各个端的想法,而且当时我们刚好在做类React的框架。所以整个部门的技术选型就转向了React的阵营。后来我们在思考怎么写一套代码,然后编译到各个端。其实就是一个语法转换的过程,我们把React语法当成一门DSL来用。

如果让您举例Taro的优势,您会举例哪些呢?
首先是目前支持的端比较齐全,到了4月份将会增加快应用的支持。从活跃度来讲,Taro在开源社区内是最活跃的,有很多人来贡献代码,提交建议。从生态上来讲,Taro还没有那么多优势,但未来会有很多完善我们生态的规划。比如近期会上线Taro的物料平台,平台会提供我们之前已经积累的组件和模板。此外,后续会通过一些激励措施鼓励用户往Taro贡献代码或建议。我们还跟小程序的官方团队进行紧密合作,探讨如何进行优化,鼓励开发者去贡献。

Taro目前有做宣传或营销的打算吗?
暂时没有商业宣传或营销的规划。

在Taro的整个开发过程中有没出现比较大的失误?
去年开发的过程中碰到过一些问题。那时候 Taro 刚上线,当时主打小程序和h5编译。小程序组件化有一个选型的问题,最开始我们是用Templete模板去实现组件化的。那时对小程序了解不够深刻,而且自定义组件刚刚出来,还不够完善,很多网友对这个版本质疑也较多。后来痛定思痛,从微信官方寻找解决方案,重新审视了这个自定义组件。我们当时认为有一些特性是靠自定义组件无法实现的,后来经过深入研究发现这些特性可以通过特定手段绕过。于是我们就用自定义组件来重新开发了一个版本,稳定之后正式推出1.0版本。

目前给Taro贡献代码的有非京东的吗?多吗?
现在应该有180个左右开发者参与了此项目。社区用户的贡献在刚刚提到的mobx等一些功能这两块代码量占了大部分,其他部分的贡献一般是一两行或几行代码。

Taro的未来发展方向和发展计划是?
首先,肯定会继续开源的。然后就是端的完善,生态和工具的完善也会持续进行。今年内计划举办一个线下活动,邀请开发者来分享,同时也会邀请百度、头条等官方团队进行分享。同时,我们计划对参与项目的外部开发者进行一些激励,比如对贡献非常大的开发者给予官方认证以及礼品等。除此之外,我们还会加强和小程序官方团队的合作,举办沙龙或者比赛。比如前面提到我们会和腾讯云联合举办开发大赛,还有我们即将上线的物料平台里会专门给小程序云开辟栏目,去鼓励开发者探索更多可能性。

目前京东内部使用Taro的情况是怎么样的?
京东内部的使用当然是越来越多。因为Taro本身的影响力,越来越多业务方主动找过来切入到Taro的开发。其次就是和内部专门负责公司小程序能力规划的部门进行深度合作,将Taro作为整个小程序生态推荐使用的框架。

您觉得国内的开源社区氛围怎么样?
说实话,国内很多人对待开源的技术,都把它当成一种索取,但开源社区应该是大家共建、共享、互惠的一个平台。

您如何看待国内会出现那么多种小程序平台的事情呢?
我觉得多种小程序平台的出现对于开源框架来说是好事,同时能够证明开发者的价值。从业务角度看,现在国内的流量都聚集在巨头APP,如果一家企业要做一个新的APP,很难从巨头APP里分得流量。不过这些巨头APP已经能够提供类似小程序这样的渠道让其他企业或者商户能够分得一些流量,这是一件挺好的事。将来有越多的小程序平台,就能给越多的开发者提供机会。

你们团队平时除了负责Taro还要负责一线业务开发吗?
我们团队除了负责Taro的开发,也会做小程序和h5的一些业务,这两方面是相辅相成的,不能完全脱离业务去做工具。

您觉得Vue和React谁会是未来的主流趋势呢?
两个都很优秀,主要根据开发者自己的意愿选择。

您觉得未来的前端技术会怎么发展呢?
未来前端技术应该不再局限于手机或电脑等单个设备,而是物联网的时代。像(IOT)之类的东西会慢慢增多。再之后的5G时代,很多物联网设备能够更快运行起来,那么肯定会在不同的场景满足不同的体验。比如VR、AR如果配合5G之后,它的体验感以及交互方式可能都会发生改变,所以前端技术未来应该是无处不在。

有什么想对点评家读者说的吗?
Taro目前仍是一个正在成长的框架,需要更多的开发者来提意见,甚至是共同为开源这件事情做出贡献。我们非常欢迎广大的开发者来完善Taro,帮助Taro更好的成长。
也希望大家能多关注点评家这个媒体,点评家还是个很优质的媒体。