邹达,APICloud联合创始人兼CTO。他是APICloud云端一体平台的架构设计者,也是终端引擎和云端服务核心模块的技术实现者。他专注于浏览器及相关中间件技术,参与过多个主流浏览器引擎、JavaScript引擎以及移动中间件引擎的开发工作。邹达是一位拥有10年一线开发经验的资深码农,他对Web应用和本地应用开发,以及NodeJs、MongoDB、Redis等技术都有着深刻的理解,对于大规模、高并发的云端服务开发也有着丰富的实战经验。

问:你做过浏览器,做过手机,做过平台架构设计,一直到现在的云服务平台,每次角色转换背后的动力是什么?

我研究生毕业的时候是2006年,那时候手机刚刚兴起,还没有智能机。当时寝室6个人都来北京了,当时我们大部分人都是做服务器端开发,去神州数码、惠普,还有去做PC端的,但是做手机的不多。我当时去的德信无线,德信应该是那时候最大的手机贴牌厂商。

那时候手机的开发比较简单。因为feature phone本身的系统都已经写好了,你只需要调试驱动,做一个适配,根本不需要写太多的代码,一直是在改bug、调试,而不是从头到尾写一个软件。那时候手机上面就三个软件可以卖钱,浏览器、彩信、Email,其他的应用都是平台自带。Access是日本的手机浏览器厂商,那时候在中国市场预装量基本上是第一名,再就是obigo台湾联发科MTK系统里面的浏览器。当时工作需要我和他们的工程师也有交流,因为他们做的是核心软件,所以我当时还是很羡慕他们。

后来高通投资了德信,要做高通blue平台上的一个浏览器。我感觉这是一个机会,可以去做软件了。那时候我做浏览器里面的JavaScript解释器,因为整个软件需要从头到尾开发,所以这个过程对我来说成长还是挺快的。

后来因为要结婚,所以我回到了北京,去了Access继续做浏览器引擎。以前浏览器卖许可是很贵的,后来许可越来越便宜,因为智能机上面都自带浏览器。2010年国内智能手机兴起之后,浏览器的传统业务模式也就慢慢没落了。那时候我就开始想浏览器还有什么用,既不能作为入口,也不能收费。后来我想探索一下Web平台的可能性,就去了一家创业公司,开始做Web平台。我们想做一个基于浏览器引擎的平台,相当于用浏览器引擎做应用。以前的产品表现形式都是网站,智能机起来之后就是App了。App能不能用浏览器的技术来做?是不是会节省一些成本?我带着这些问题开始去做基于浏览器的移动平台,一直做到现在自己出来创业做云端一体的平台。

问:APICloud有一个比较鲜明的特点是云端一体,这个概念是如何产生的?

我从2010年开始就在写智能机上面的App,从2010年到2014年做了快有100个原生应用,我自己平时可能还会帮朋友做个应用什么的,做得其实挺累。安卓开发一遍,iOS开发一遍,要搭服务器、要设计数据库、两边要定义接口,要联调,要适配,环节非常多。所以我就想能不能用最简单的方式把活给干了。

于是我们就想做一个云端一体,你后端不用写代码了,我在前端调用Restful接口来写业务逻辑,两边采用相同的语言,你只需要学JavaScript就可以了。前后端也不用再定义接口,定好模型后这个接口就固定了。移动端应用也是不论几个平台只开发一遍,并且中间有大量现成的API可以调用。我之前可能是感觉太痛苦了,所以现在就想解决这个问题,按照这样的思路去做产品。

问:你们典型的开发者用户是什么样的?

我们各种类型的用户都有。对于个人开发者来说,因为我们的系统简单,只需要有Web开发基础就可以,而很多个人开发者可能之前并不是做专业的移动开发。之前有一个独立开发者,他开发了一个瘦身类的应用,利用APICloud前后端一个人搞定。个人开发者可能想学习,自己有想法,想自己去尝试做一个产品,通过APICloud就可以做到,我们的端API和开发工具都是免费的。

我们的另一类用户是外包公司,他们要求开发效率高、成本低。比如西安的万紫网络和孔方网络都是我们的用户,从我们上线到现在,他们用APICloud可能已经做了二三十个项目了,用一两周的时间一个项目就完成了。原生开发的门槛高,开发者在北京都不好招,而我们客户中很多外包公司都来自二三线城市。

另外,我们的创业公司用户也非常多,因为我们快。创业的第一个阶段就是概念阶段,创业者需要把产品快速做出来,推到市场验证一下。这些公司一般都会买我们的培训服务,比如杭州的创业公司战旗TV,目前安装量基本已经达到1000多万。他们做的是游戏直播,他们利用我们的平台基本上两周就完成了初版上线,我们刚上线的时候正好他们公司也刚开始做产品,我们是9月15号上线,他们是10月15号第一个版本上线。再比如品读者,点连在线等等狠多都是一些A轮或B轮的创业公司。

还有就是大型企业,他们一个企业可能就有几十个应用要开发,希望使用一个统一的开发平台,另外也包括大量的SI和ISV在使用APICloud平台。

问:你们最大的团队是开发者关系团队,他们主要解决的问题是什么?

开发者关系团队包括我们的布道师、讲师、技术支持。技术支持更多是在线上论坛和QQ群跟开发者做互动。讲师和布道师是在我们每个月在全国各地举行的线下活动和培训中去普及APICloud的使用方法,解决用户的问题。我们自己的工程师能用好这个平台,并不代表其他的开发者也会用得很好。我们的技术专家也会到大企业或者创业公司,给他们做短期的专业培训,让他们的工程师快速上手。因为每个讲师或者布道师同时服务的用户是固定的,随着我们的开发者数量越来越多,购买我们培训的公司越来越多,所以这里的需求也在不断增长。

问:现在APICloud上的API开发者有多少?现在平台的生态环境处于一个什么阶段?

现在平台上的开发者应该达到十几万了。

完整的生态环境需要几方面的人,有需求方、开发者、模块开发者、服务提供商。现在需求方还不完善,我们仍然是通过人工方式去服务的。需求方找到我们的开发者关系团队,说明想做的项目,然后我们去帮忙找开发者。我们将来会把这个环节做成产品,你可以在我们的平台上看到很多方案,以及很多优质的开发者。

另外有一点是我们还没有做的,我们现在的开发者已经能写应用了,但是如何能让他们的利益最大化,让他们写出来的应用产生二次价值?我们提供了一个类似于这种模版的商店,开发者完成自己的项目之后,他做的这个应用沉淀下来还能发挥出价值。

再有一点就是一些行业的解决方案。我们其实给自己的定位是一个PaaS平台,上面要支撑很多的BaaS服务。这些BaaS服务应该是跟各个大服务商结合,提供行业的整体解决方案,这是我们接下来要做的。

问:你在之前采访中说过相对于做十年技术,你更认可一项技术做十年。你现在做的移动应用云服务平台是否是一项值得长期投入的技术?

我做浏览器应该已经快十年了。我感觉移动应用云服务平台应该是可以做到10年的。为什么?因为我们叫APICloud。虽然我们是一个平台,但是我们认为我们将来的发展方向是API。不管是要解决移动端的问题,还是服务器端的问题,我们解决问题的方式还是通过API。我认为API将来会代替很多的传统软件系统,因为将来所有的服务、功能、数据都应该是以API的形式来提供的。

我们会抓住移动和云这两个方向。不管是手机还是将来其他的移动设备,移动领域的API我们是抓住了,将来不管未来怎么发展,API都要不断扩展。云和服务也是一样,将来的数据和服务一定是由专业的厂商提供,所以就需要各种类型的API。我感觉围绕着API去做,一方面是做扩展,扩展越来越多的功能;另一方面就是在API接入和管理上可以有很多的环节,你可以找到很多方向。

问:APICloud全站都是基于JavaScript开发的,这么做是基于什么考虑?

就是云端一体。因为使用跨平台的方式,我们移动端的App开发是使用JavaScript。如果后端开发想要减少学习成本,那就也使用JavaScript,用Node.js。

问:JavaScript上手简单,但是深入之后就会发现这种语言也可以很复杂很强大,请问对于想要突破学习瓶颈的程序员你有什么建议?

我觉得必须要在项目上应用。如果自己学,一般很难有那么大的动力。

学习要分成两方面来说。对于移动端,我们建议你不要去花大量时间学习大的前端框架,因为我们已经扩展了很多接口。你不需要用一些大的框架或者库,只要用最基础的代码就好了。但是服务器端你就必须得用了,因为Node.js相对来说比较成熟,中间件非常多。用的过程中你不只要把人家的东西拿过来,还有很多东西都要修改,这个过程就需要看懂这些框架的代码,理解实现机制。也就是说,你在用开源代码的同时,一定要有这样的决心:我要把它重写一下,或者优化一下,融入到自己的项目中。

问:现在Web上很多流量已经流到App上了,很多前端工程师觉得自己前途无望。APICloud对于前端工程师的意义是什么?

Web开发者的数量要远远大于App开发者。为什么在移动互联网兴起之后,Web技术就没有特别大的有用武之地了呢?关键在于,以前的产品的表现形式是网站,是基于浏览器的,但是浏览器在移动端表现不好。HTML, CSS, JS都只是语言,拿一门语言跟安卓或者iOS这种移动平台去对比是不合适的。我们可以将这些语言跟安卓上面的Java语言和iOS上的OC作对比,它们在语言层面上是平等的。Web缺少的是一个移动平台级的支持,而APICloud提供的就是一个基于Web的应用化平台。有了这样的一个平台,就相当于JS跟Java或者OC一样了,有了一个可以跟iOS或者安卓对比的平台。这样开发者就可以在这个平台上继续使用Web技术,而产生的结果则是非常适合移动端的。


更多精彩,加入图灵访谈微信!