“在红海中博杀是没有前途的,所有的成功企业都是不同的。”这是 Paypal 创始人 Peter Thiel 在作品《从 0 到 1》中写下的结论。
过去互联网产品的快速发展得益于人口红利,前几年只要把握好流量就可以实现产品增长,而今天,用户说产品好才是增长的核心,市场已从流量驱动转为创新驱动。APP 作为用户接入移动互联网世界的桥梁和入口,无论对于传统企业还是互联网企业,都是市场营销的重要战场。但是,传统的 APP 开发模式的门槛高、成本高、开发周期长、无法快速迭代,很难在应用交付上有突破性创新。
2017 年 1 月,微信小程序正式上线。小程序是微信基于 xml 和 js 定义的一套标记语言、全新的生态、一个轻 OS,开发工具和 UI 框架都是腾讯自己做的,它依附微信、无需下载,也是一座流量富矿。
传统 APP 开发 vs 小程序开发
尽管,大部分团队已经意识到创新和高效很重要,但却依旧难以”敏捷“起来。在传统 APP 开发方式下,应用交付需要经历这样的过程:
- 一个 APP 从 idea 到上架商店,要经历 8 个步骤:设计流程→设计原型→设计 UI→前端代码→后端服务器搭建→后端代码→后端部署→测试→上架。由于是代码级开发,开发和测试周期都很长,成本高,调试出错率也高,开发好的应用也需要一定时间磨合才能稳定。在这个过程中若需要使用外部商业化 API,还需要支付昂贵的费用。
- 过程中参与的人员至少包括 5 个人:Android + iOS + 后台 + 产品经理 + 美工。这对开发人才的要求很高,分别需要精通编程语言、数据库等。无论是物理托管,还是云主机维护,都需要投入较多人力物力,成本无上限。
- 前后端联调、资源存储、部署等操作繁杂,上线流程耗时长。
- 上线后需时刻关注环境运行情况,且由于维护时代码级修改导致产品新问题出现,调试过程也非常麻烦。
这些因素导致各环节和部门总体的效率不高,包括持续发布能力低、需求响应周期长、交付吞吐率低、交付过程质量低、交付质量低,业务部门提出的创新性需求也很难及时响应。
微信小程序的交付过程是这样的:
- 一般小程序从 idea 到发布,也要经历 8 个步骤:安装微信开发者工具→创建一个小程序→编译→前端代码→后端服务器搭建→后端代码→后端部署→发布。小程序框架本身所具有的快速加载和快速渲染能力,加之配套的云能力、运维能力和数据汇总能力,可以释放开发者的精力。且在语言上,小程序的前端开发学习成本较低。
- 过程中依旧需要前端和后端开发的参与。
- 提供丰富的微信原生 API,调用微信能力比较方便。相对于传统 APP 开发,微信小程序官方的开发文档较为丰富,开发语言门槛低,从组件到 API 都很全面,开发难度适中。且网络上有丰富的开源项目,方便开发者获取和比较。
再看用云开发构建小程序的过程:
- 从 idea 到上线,需要经历 5 个步骤:安装微信开发者工具→新建一个模板小程序→开通云开发服务→编译→发布,且整个过程为可视化操作,只需写核心逻辑代码即可。
- 仅需 1 人即可完成开发。
- 平台一体化,开发者无需关心服务器搭建和管理;项目一体化,前后端可以在同一项目内开发和维护。
- 按请求数和资源的运行收费,投入按需付费。
如此看来,相对于大型互联网公司来说,中小型企业更希望低成本、低人力投入、快速上线和迭代的产品,可以优先考虑通过云开发构建小程序来承载。
为什么开发小程序没有繁重的后台问题?
这几年高频的技术换新让开发者又爱又恨,所谓的“学不动了”,不单单包括语言,框架、工具还有很多理念思维上的内容。但若学无所用,它的性价比就会下降。那么,腾讯如何帮助开发者最大化实现技术先进、研发高效和投入成本低?
1、拥抱 Serverless 设计理念。 云开发是一个入口,目标是为了让开发者以更低的门槛,更小的成本接入云计算服务,实现应用快速开发。同时这也是服务上 BaaS(后端即服务)+FaaS(函数即服务)的体现,尤其是云函数的设计,可根据请求量弹性横向扩展,开发者只需关注核心代码,不再参与基础设施架构设计。
2、从产品生态方面来说,云开发和微信生态打通,技术拥抱产品生态,打通了客户端和云资源的链路,一个云端服务支撑多端应用,实现一次开发,多端运行。
3、工具丰富,从数据库,存储服务,API 到云函数,云托管基本上涵盖了所有的开发流程节点,每一个上手门槛都很低,只需浏览文档对应模块即可。
4、可视化程度高,云开发正在朝着无代码或者低代码设计微信小程序的趋势发展,这样非开发人员可以直接设计应用,进一步降低门槛。
(传统开发模式与云开发模式的对比)
在传统开发模式下,开发者需要更多关注文件存储、备份、容灾等,但是云开发模式下就只需要关注与业务逻辑相关的数据库、文件存储、云函数。目前,小程序开发主要采用云开发的模式。
现在,我们整体对比下,实现同样的功能,APP 开发者和小程序开发者需要解决的问题。
很明显,如果一个全栈工程师沉浸在繁重的编程和运维上,那么,遇到具体业务问题时,还怎么有充足的精力和经验来解决,面对新的需求还怎么快速响应。
我们先不去讨论全面自动化或零代码有没有可能,从这几年的发展趋势来看,拥抱 Severless、低代码、可视化,已经稳稳抓住了程序员和企业技术架构的痛点。小程序云开发已成为软件开发效率提升的突破点,越来越多的业务需求可以得到有效解决。
哪些团队适合使用小程序云开发?
云开发可以真正意义上实现前后端包揽的“全栈”,用在以下这几个场景尤其合适:
1) 传统企业 / 存量业务需要快速迁移上云时,不希望改造代码或重构业务的,云开发可以提供免运维的后端云服务,适用于传统企业、存量业务;
2) SaaS 厂商需要多租户隔离时,云开发可以支持环境级别资源隔离,每个环境有独立的一套后端云服务;
3) 中小企业希望享受自动化运维和托管服务时,可以使用云开发的后台服务托管, 实现可视化操作,释放运维压力;
4) 初创企业或是企业内部创新孵化时,希望可以快速验证商业模式,可以使用云开发快速部署和上线
For example:
1、10 个月发布 349 次版本:微信读书
微信读书小程序继承了微信读书 APP 最核心的阅读功能,并作为 APP 最核心的对外分享和运营渠道。上线 10 个月以来,微信小程序已发布 349 次版本,开发效率分别是对应的 APP 和 H5 的 4 倍与 2 倍,累计获客数千万,日均 PV 过千万。
微信读书为什么用小程序云开发?原因有三,一是团队在小程序开发方面经验不足,积累的 Node 框架也需更新,因此导致上线流程较为繁琐,速度也不太可观。二是团队人力不足,这也是比较客观也比较难解决的一个问题。三是考虑了性价比问题,云开发要比自己搭建 Node 服务器划算。
通过云开发模式,微信读书小程序的前端代码和服务端代码共存在一个项目中,同样的技术栈、同样的 IDE 环境,可以调试开发更高效。同时,云函数支持动态扩容,可以完美支持瞬间增长的运营类业务。此外,云开发还让其团队的分工和成员能力发生了显著变化。以前其团队按照前端开发、Node 开发和运维人员进行分工,现在前端负责全栈开发。团队成员除了前端技术,还更关注服务性能和稳定性,资源利用率(如云函数耗时、云数据库连接数等)。
微信读书使用云开发的具体逻辑如下图,从小程序端获取的数据通过云函数、云存储等功能传输到 Server 后台,并生成业务发展数据的报表,相当于一套从后台到前端的完整服务。
2、1 人 2 周完成的亿级项目:腾讯相册
腾讯相册的产品定位是帮助用户在微信中能无限量存储照片,快速与好友分享照片进行互动,对照片富媒体化编辑等基础能力,让用户在微信场景点开即看。这里有 4 个关键词:存储,分享,互动,富媒体化编辑。腾讯相册小程序团队仅投入 1 名前端开发工程师,2 周内就快速完成了“评论点赞”社交功能以及小程序内部二维码的快速优化升级。
3、让海外用户访问性能提升 42%
“境外游礼包”是使用”微信“小程序的优惠平台,只需扫店铺海报上的二维码或在 APP 上搜索小程序,即可获取“超优汇率券“及“翻倍折扣券”等店铺专享优惠券。“小程序·云开发”还对数据访问链路做了专门优化,使小程序的数据加载速度更快。借助“小程序·云开发”良好的网络和数据加载性能,境外游礼包小程序开发性能优于传统模式 42%。
云开发模式,不止于小程序
云开发已经得到了很多开发者的认可。上线一年后,“小程序·云开发”注册账户数超过了 23 万,服务了超过 50 万开发者。这标志着云原生理念开始在国内有了大规模的应用落地。
在基础能力之外,“小程序·云开发”还正在进一步封装腾讯云、微信平台的其他能力,提供扩展能力,包括 AI、音视频、订阅消息、微信支付等,让开发者在更多业务场景中可以使用“小程序·云开发”,打造更优质的小程序。