正式定档!QCon 北京站改期为2024年4月11-13日,地点:北京·国测国际会议会展中心 >>> 了解详情
写点什么

同样的能力,为什么开发小程序要比 App 简单 100 倍?

  • 2020-11-26
  • 本文字数:3584 字

    阅读完需:约 12 分钟

同样的能力,为什么开发小程序要比App简单100倍?

“在红海中博杀是没有前途的,所有的成功企业都是不同的。”这是 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、音视频、订阅消息、微信支付等,让开发者在更多业务场景中可以使用“小程序·云开发”,打造更优质的小程序。


但是,云开发的模式不局限于小程序这一个场景,在 11 月 29 日将要举行的“小程序·云开发”技术峰会上,腾讯云和微信相关负责人,将介绍腾讯云开发在支持公众号网页和 Web 网站时新增的一系列接口及资源互通与共享能力。此外,今年的峰会上,云开发在交付能力和创新模式上有哪些突破性进展,让我们拭目以待!


点击立即报名

2020-11-26 20:423750

评论

发布
暂无评论
发现更多内容

Android模块化开发实践

vivo互联网技术

android 架构 开发 项目实战 模块

多样数字人民币钱包来袭,阻力与动力并存

CECBC

带头撸抽奖系统,DDD + RPC 开发分布式架构!

小傅哥

DDD 小傅哥 架构设计 springboot 抽奖系统

从lowcode看下一代前端应用框架

百度Geek说

大前端 lowcode

传统到敏捷的转型中,谁更适合做Scrum Master?

华为云开发者联盟

Scrum 敏捷 团队 项目经理 Scrum Master

protocol buffer的高效编码方式

程序那些事

Java protobuf 程序那些事

国产接口调试工具ApiPost中的内置变量

Proud lion

大前端 测试 后端 Postman 开发工具

后Kubernetes时代的虚拟机管理技术之kubevirt篇

谐云

虚拟机 #Kubernetes#

Golang:再谈生产者消费者模型

Regan Yue

协程 Go 语言 8月日更

NameServer 核心原理解析

leonsh

RocketMQ 消息队列 NameServer

Java NIO在接口自动化中应用

FunTester

Java nio 接口测试 测试开发

带你梳理Jetty自定义ProxyServlet实现反向代理服务

华为云开发者联盟

容器 k8s jetty Servlet引擎 ProxyServlet

一分钟学会使用ApiPost中的全局参数和目录参数

CodeNongXiaoW

大前端 测试 后端 接口工具

在?进来看看新一季周边到底做点啥?【话题讨论】

气气

话题讨论

PageHelper原理深度剖析(集成+源码)

阿Q说代码

ThreadLocal 分页 PageHelper 8月日更 mybatis的拦截器

最小二乘法,了解一下?

华为云开发者联盟

数据 数据处理 计算 最小二乘法 数学工具

Go- 函数参数和返回值

HelloBug

函数 参数 返回值 Go 语言

云小课 | 详解华为云独享型负载均衡如何计费

华为云开发者联盟

负载均衡 华为云 弹性负载均衡 独享型ELB实例 独享型负载均衡

面试重灾区:请说说mybatis的一级缓存和二级缓存

小鲍侃java

8月日更

智能运维系列直播间开讲啦,就在今天!

浪潮云

使用mock.js给前端生成需要的数据

与风逐梦

大前端 后端 开发工具

🏆「作者推荐」Java技术专题-JDK/JVM的新储君—GraalVM和Quarkus

洛神灬殇

Java JVM GraalVM 8月日更

以区块链为基础 通证经济是下一代互联网的数字经济

CECBC

打造数字人民币的大运应用场景

CECBC

web技术分析| 一篇前端图像处理秘籍

anyRTC开发者

大前端 音视频 WebRTC web技术分享

来了!《中国移动2021智能硬件质量报告》正式发布

手撸二叉树之二叉树的坡度

HelloWorld杰少

8月日更

KubeCube开源:魔方六面,降阶Kubernetes落地应用

网易数帆

开源 Kubernetes 容器 KubeCube

区块链+物联网设备,能产生什么反应?

CECBC

6种常用Bean拷贝工具一览

码农参上

8月日更 对象拷贝

零基础入门:基于开源WebRTC,从0到1实现实时音视频聊天功能

JackJiang

音视频 WebRTC 即时通讯 IM

同样的能力,为什么开发小程序要比App简单100倍?_方法论_Linda_InfoQ精选文章