黑马说:这是一个脑洞大开的年代,产生越来越多的认知盈余。思想的碰撞产生出种种奇思妙想,许多人想通过互联网,通过技术来改变生活。所以,我们看到越来越多有价值的新产品出现。无论是在纯软件类移动互联网产品领域、硬件类实体产品还是在新兴的服务行业。
您也许也会有同样的想法:有个创意,想开发一个App来解决某个问题,想做一款好玩的游戏App,或者是通过移动App来优化您的传统商业模式和体验。那么如今怎样来开发一个App,可以即高效又最节省开发成本呢?技术团队如何组建,还需要后端工程师么?
开发方式决定效率
关于开发方式,前两年最火爆的词语莫过于云计算。科技的迭代速度是指数级不断增长的,云计算正是这种指数级迭代的引爆点之一。软件开发的方向一定是会变得越来越简单,成本也会不断降低。云服务1.0如果你做一个App,请至少选择一款好用的云服务,尤其对于初创公司来说。这样的例子最有名就是Instagram,在2012年4月Instagram 被Facebook 10亿美金收购时,用户规模接近5000万,然而整个团队仅13 人,而且其中的5名技术人员中,仅有两个半后端工程师。另外的半个偶尔要负责前端的部分开发工作,Instagram 的所有服务就是部署在AWS 上面。Instagram 联合创始人Mike Krieger 在「如何成为十亿美金公司」的演讲中,将使用Amazon的云服务归结为用户规模暴涨,但工程团队并未出现明显增长的重要原因。类似的公司还有Dropbox。
在云服务1.0 这个时期,开发虽然没有比之前变得简单容易太多,但是如果你想让别人使用你的服务,只需部署程序到对应的云主机或者App Engine 上,节省大量运维成本。类似AWS(亚马逊的云服务)、SAE(新浪的云服务)、微软Azure 和阿里云,让本来需要花很多钱购买的服务器和运维成本都不再需要,取而代之的是选择一个好的云服务商。你的服务器端程序可以完全部署在云服务器上,使用初期由于访问量较小,用户不需要支付费用。按需付费,当使用量真正达到了收费额度,云服务商才会收一部分钱。当然,如果能够达到这个付费标准,理论上这个项目已经运转的不错了。
云服务2.0
如今越来越多的BaaS (Backend as a Service 后端即服务)已在硅谷兴起,被称为云服务2.0 版本。不知道大家是否记得,过年期间有个应用特别火爆,App Store 的下载排行榜一直位居榜首,这个应用叫做「逗拍」,来看下逗拍的发展速度。逗拍2014 年12 月22 日正式上线,上线仅10 天,用户突破10 万;上线42 天,进入App Store 总排行榜第一;上线52 天,突破1000 万用户;上线不到三个月,目前已经突破1600 万下载。(数据来源于逗拍在拉勾网发布的招聘信息)
目前国内也已经有很多使用BaaS 服务成功的案例,许多科技公司都会遇到用户快速增长,这种情况下如果自建服务的技术成本是多大呢?打个比方,假如你打算做一款抢红包应用,或者你的电商网站举办双十一秒杀活动,技术团队自己维护就需要相当大的资源投入。但是现在很多科技团队可以在不投入一个后端工程师的情况下,使用BaaS 服务轻松搞定这些。支付的成本远远低于自建团队的资源投入,而更关键的是,他们节省了太多时间成本,也是机会成本,将更多的时间花在产品和运营上。
无后端开发我们设想一下,每次想要做一款App 时,总是会有很多重复的模块要开发。比如数据存储、文件存储、账号体系、短信验证、统计需求和实时通信等模块,这些模块工程师们也力求做到通用,为了以后开发的时候更加容易复用。这些模块为什么一定要反反复复的写,不可以做成一个通用的服务么?用户想使用哪个模块就用哪个模块,不需要服务器运维,也不用再重复开发,只需要按需付费,这就是BaaS 要实现的目标。
但是很多人也会有疑问,那如果一定有服务端逻辑怎么办?一般BaaS 服务的提供商同时还会提供各种服务器端的Hook(一种程序接口),比如,你想要在保存数据之前服务器端校验一下数据的正确性,BaaS 的提供商会在服务端预留一个beforeSave 之类的方法,那你就可以在这个函数内部,写自己的逻辑。不再像以前要操心服务端架构和性能,这些事情云服务商都帮你做了,你只需要写好对应的逻辑。
结语:人类科技的发展就是通过一个一个的创新,硅谷之所以走在创新的前列,一部分原因就是他们不断降低创新的成本,同时使团队变得更加高效。曾经一个互联网产品的问世可能需要很多成本,人力成本、推广成本、研发成本,当然还有大量的时间成本。但是现在因为BaaS 等服务的出现,至少研发成本在不断降低,使创新的成本也不断降低,使更多的资源用在更重要的事情上。当然BaaS 也不会是终点,越来越多的服务创新也会不断进行下去。
王潇LeanCloud前端资深工程师