首页 > 春风满楼 > 为什么创业公司不再需要后端工程师?
2015
03-24

为什么创业公司不再需要后端工程师?

原文:http://tech.sina.com.cn/zl/post/detail/i/2015-03-24/pid_8474712.htm
  这是一个脑洞大开的年代,产生越来越多的认知盈余。思想的碰撞产生出种种奇思妙想,许多人想通过互联网,通过技术来改变生活。所以,我们看到越来越多有价值的新产品出现。无论是在纯软件类移动互联网产品领域、硬件类实体产品还是在新兴的服务行业。你也许也会有同样的想法:有个创意,想开发一个App来解决某个问题,想做一款好玩的游戏App,或者是通过移动App来优化您的传统商业模式和体验。那么如今怎样来开发一个App,可以即高效又最节省开发成本呢?技术团队如何组建,还需要后端工程师么?

  关于开发方式,前两年最火爆的词语莫过于云计算。科技的迭代速度是指数级不断增长的,云计算正是这种指数级迭代的引爆点之一。软件开发的方向一定是会变得越来越简单,成本也会不断降低。

  云服务1.0

  如果你做一个App,请至少选择一款好用的云服务,尤其对于初创公司来说。这样的例子最有名就是Instagram,在2012年4月Instagram被Facebook10亿美金收购时,用户规模接近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万用户;上线不到三个月,目前已经突破160万下载。

  许多科技公司都可能会遇到这样的用户快速增长,这种情况下如果自建服务的技术成本很高。假如你打算做一款抢红包应用,或者你的电商网站举办双十一秒杀活动,技术团队自己维护就需要相当大的资源投入。但是现在很多科技团队可以在不投入一个后端工程师的情况下,使用BaaS服务轻松搞定这些。支付的成本远远低于自建团队的资源投入,而更关键的是,他们节省了太多时间成本,也是机会成本,将更多的时间花在产品和运营上。

  目前越来越多的科技类创业公司都希望能够保持着小而美,都希望技术团队可以保持着精英化。为了让工程团队最大化的发挥作用,在BaaS服务帮助下甚至可以不安排工程师来负责的后端研发,服务器端业务也完全依靠BaaS服务来支撑。云服务1.0解决了绝大部分服务器运维问题,而BaaS则是要解决后端研发的成本问题。

  无后端开发

  我们设想一下,每次想要做一款App时,总是会有很多重复的模块要开发。比如数据存储、文件存储、账号体系、短信验证、统计需求和实时通信等模块,这些模块工程师们也力求做到通用,为了以后开发的时候更加容易复用。这些模块为什么一定要反反复复的写,不可以做成一个通用的服务么?用户想使用哪个模块就用哪个模块,不需要服务器运维,也不用再重复开发,只需要按需付费,这就是BaaS要实现的目标。

  使用BaaS的服务之后,最有趣的一点就是不再需要专业的后端工程师。现在如果你要开发一个产品,一般情况下需要三个角色。一个产品设计师负责产品的需求、界面和交互设计,一个前端(包括Web、iOS和Android)工程师来实现设计,一个后端工程师来搭建后端服务写出后端逻辑部署在云服务上。而使用BaaS的服务之后,只需要两个角色,设计师和前端工程师。

  举个例子,比如你要是想实现一个游戏App,你可能需要的服务端需求就是存储、用户账户体系和统计。BaaS的服务提供商的网站中,会提供应用控制台。你可以直接点几下鼠标配置相关的存储表,服务端就自动生成RESTful API,前端工程师直接请求就可以了。类似用户账户体系、统计功能等众多模块都是类似的思路。

  但是很多人也会有疑问,那如果一定有服务端逻辑怎么办?一般BaaS服务的提供商同时还会提供各种服务器端的Hook(一种程序接口),比如,你想要在保存数据之前服务器端校验一下数据的正确性,BaaS的提供商会在服务端预留一个beforeSave之类的方法,那你就可以在这个函数内部,写自己的逻辑。不再像以前要操心服务端架构和性能,这些事情云服务商都帮你做了,你只需要写好对应的逻辑。

  这只是BaaS强大功能的一小部分,通过这一系列功能的使用,你会发现大大节省开发App的开发时间,并且显著提高开发效率,当然也省掉后期的运维成本。同样的只需按需付费,选择一家服务稳定价格合理的BaaS服务,还可以省掉一大笔研发资金。国外类似的服务很多,比如2013年4月Facebook刚刚收购的Parse、2014年10月份Google收购的Firebase等。

  而国内类似的服务也在遍地开花,比如专注文件存储的七牛和专注解决移动开发服务的LeanCloud等。开发者只需将全部精力全部集中到如何做出精美的产品上,不用再操心后端究竟做了些什么。

  人类科技的发展就是通过一个一个的创新,硅谷之所以走在创新的前列,一部分原因就是他们不断降低创新的成本,同时使团队变得更加高效。曾经一个互联网产品的问世可能需要很多成本,人力成本、推广成本、研发成本,当然还有大量的时间成本。但是现在因为BaaS等服务的出现,至少研发成本在不断降低,使创新的成本也不断降低,使更多的资源用在更重要的事情上。当然BaaS也不会是终点,越来越多的服务创新也会不断进行下去。

觉得文章有用,微信打赏一元。