您的位置:首页 > 移动开发 > 微信开发

别再纠结后端了,小程序开发这么做

2019-10-12 18:00 936 查看

2017 年,微信小程序上线。通过「无需安装、用完即走」的轻便形态,小程序可以快速解决用户的实际需求。在互联网人口红利见顶的大背景下,小程序成为移动互联网从业者们的布局重点。

2018 年 9 月,小程序·云开发正式上线,打通了小程序前端与云资源的链路,省去运维成本,帮助开发者快速上线和迭代小程序。这也标志着 Serverless 理念开始在国内有了大规模的应用落地。

疯狂的一年

回望这一年,小程序·云开发团队收到最多的反馈就是:“为什么 XXX 功能还没上,为什么 XXX 还不能支持。”不断涌现的客户需求推着团队快速向前。

2019 年 1 月,上线监控告警能力,提升产品保障性;

2019 年 4 月,上线云调用能力,进一步降低开发小程序门槛,提升研发效率;

2019 年 5 月,新增智能客服解决方案,与即速等服务商开展合作;

2019 年 7 月,上线预付费能力,正式成为商用产品;

2019 年 8 月,上线实时推送能力,切入小游戏引擎市场;

2019 年 9 月,上线代金券和新套餐,支持企业用户灵活购买;

……

伴随着高频率的功能上新,小程序·云开发的技术逐渐成熟。

云开发为开发者提供完整的原生云端支持和微信服务支持,弱化后端和运维概念,无需搭建服务器,使用平台提供的 API 进行核心业务开发,即可实现快速上线和迭代,同时这一能力,与开发者已经使用的云服务相互兼容,并不互斥。

那么,小程序·云开发如何让前端开发者无需考虑后端实现,专注于业务开发呢?这就不得不提到小程序·云开发提供的两大能力:基础能力及腾讯云基于小程序·云开发输出的增值能力。

     

小程序·云开发的基础能力是依托微信生态,深度定制高频云产品组件,提供便捷的、一体化的小程序原生基础产品能力,目前包括云函数、云数据库、云存储、云调用等服务。
  • 云函数: 一段运行在云端的代码,无需管理服务器,在开发工具内编写、一键上传部署即可运行后端代码。小程序内提供了专门用于云函数调用的 API。开发者可以在云函数内获取到每次调用的上下文(appid、openid 等),无需维护复杂的鉴权机制,即可获取天然可信任的用户登录态(openid)。并在开放了运用 Node.js 等框架编写“后端”业务逻辑后,直接可以部署在云平台下,不需要去考虑域名、服务器、打包发布、运维等琐事。
  • 云数据库:既可以在小程序前端操作,也能在云函数中读写的 JSON 数据库,不再受限于关系型数据库复杂的操作模式构建,数据管理上非常简洁。最近,小程序云开发新上线数据库实时推送能力,它可以优化升级诸如聊天、棋牌类游戏、订单状态同步等等很多长连接、实时交互场景下的开发体验,可以说,数据库实时推送能力对于小程序的功能完善上来说,有非常重要的意义。
  • 云存储: 云开发提供了一块文件存储空间,提供了上传文件到云端、带权限管理的云端下载能力,开发者可以在小程序端和云函数端通过 API 使用云文件存储功能。同时具备默认配置域名、无需自建 CDN 的特点。
  • 云调用: 打通云函数来简化鉴权,腾讯云和微信两边有打通鉴权的功能,把鉴权的工作自动化。

而腾讯云基于小程序·云开发输出的增值能力,核心为打通云开发与公有云服务链路,提供丰富小程序应用场景,并整合图像识别、音视频以及其它腾讯云基础产品的能力,通过模块化一键部署至云函数,不需要后台开发,后续只需要调用函数即可实现功能。

不仅如此,腾讯云基于小程序·云开发输出的增值能力在进一步减少小程序开发技术需求的同时,以业务场景为入口,借助云开发能力,不断降低新技术的使用门槛。其中,开发者们最为期待的当属 AI 与小程序的结合。

AI 场景中落地

当下,AI 技术浪潮正改变我们生活的方方面面,很多开发者都有过在自己项目中使用 AI 技术的想法。然而由于入门 AI 的难度比较大,并且上手时间较长,许多开发者在小程序研发筹备期就放弃了。而在近日,小程序·云开发上线 AI 增值服务,通过文档或者代码的形式,降低小程序 AI 使用门槛,让开发者在研发中轻松调用 AI 服务,满足不同小程序业务场景的个性化需求。

在要求实时性较强的 AI 场景下,因为依赖强计算力,如果将原有的技术方案直接在小程序本端运行,就会出现一些性能上的问题。那么,针对此类问题,小程序·云开发又是如何解决的呢?

首先,团队会对项目进行技术评估,确保在微信小程序框架下具可行性;其次应用测试中对性能进行评估,适配不同机型、不同设备上的内存限制以及 CPU 限制;最后在代码层面上通过编译等手段使用单一数据类型,减少运行时类型推断与隐式转换,加快执行效率。同时采用手动控制内存的方式,防止内存频繁开辟回收引起的性能与资源问题。

目前,腾讯云基于小程序·云开发输出的增值能力已全面开放了增值服务 AI 智能图像能力,其借助了腾讯云人脸识别、人脸核身和人脸融合功能,通过云开发的云函数和存储,简化素材存储、配置拉取和服务调用 image-node-sdk 等功能,并为企业提供定制化的解决方案,满足不同企业对于小程序功能的不同需求。

以“杰尼亚何谓当代男士小程序”为例。对于为奢侈品牌的定制化需求,在以往开发的过程中,D1M(第一秒) 电商科技总会为每个品牌搭建独立的环境,部署整套代码,由于定制开发居多,相对而言代码复用率不高。如何在小程序开发的过程中,以敏捷高效的方式实现具有趣味性的互动,成为 D1M 在开发该小程序初期所面临的最大痛点。在此背景下,D1M 借助腾讯云基于小程序·云开发输出的“AI 滤镜”增值服务,为杰尼亚打造小程序,并将继续推进“人脸融合”功能上线。

应用场景一:新品 T 恤上线明星代言试穿,引导用户滤镜自拍并分享

在微信小程序中每张中等质量的图像原始数据量都在 2M 左右,受限于移动设备与运行环境算力和其他资源,如在小程序本地处理即时对图像进行计算处理及渲染,小程序性能及稳定性将面临巨大挑战。

这时,云开发首先将独有的图像处理算法移植到小程序平台,实现了图像的本地处理,减少上传与下载网络消耗。再加之云开发在性能与系统资源管控方面的优化,AI 滤镜增值能力可使小程序在 20-30ms 内,完成一张 480P 分辨率的图象处理和渲染,这也是腾讯云基于小程序·云开发输出的极具代表性的增值技术能力。

     

图片来自编辑实测杰尼亚何谓当代男士小程序截屏

基于 AI 滤镜增值能力优越的性能,其不仅可以像传统滤镜服务一样实现照片的处理,还可以在拍摄过程中实现实时的滤镜效果预览。AI 滤镜技术对核心图像处理 API 与集成自定义组件两部分进行插件封装。其中,集成自定义组件基于微信官方组件,封装初始化、监听、处理、渲染、读取等能力,做到了开箱即用。细节上在微信官方组件的回调中,小程序会对摄像头像数据以 30FPS 的帧率进行实时读取,之后结合原始 API 中封装的优图 X-lab 滤镜算法,对像素帧数据进行矩阵运算,最终渲染到 webgl 画布中,屏幕中呈现用户带有滤镜效果的自拍图像。

应用场景二:模特试穿照片与用户自拍的人脸融合(即将上线)

小程序·云开发的另一项 AI 增值能力——人脸融合,封装了腾讯云 AI 团队已有的人脸融合技术能力,在实现函数内免鉴权调用的同时,对两张人像进行脸部融合,进而输出融合图像。但如何获取合适的 【图像主体】 内容,成为人脸融合面临的一大挑战。

面对人脸融合场景难点,人工进行预处理是万无一失的办法,但面对数据巨大的内容信息,基于可直接部署并使用的云函数,并借助腾讯云基于小程序·云开发输出的 AI 人脸特征分析与检测能力,就可以得到图像宽高像素数量,以及图像中人脸的位置、大小、分析属性、质量等信息,根据这些信息就可以准确裁剪。而在云函数的接入过程中,其庞大集群的快速扩容能力,也足以 hold 住百万级,甚至千万级的高并发使用场景。

开发者论道

从以上我们可以看出,小程序·云开发凭借灵活、快速等诸多优点,不仅让应用触手可得,为越来越多的用户带来便利,也成为连接线上与线下、虚拟与现实的利器,承载大量开发者与各个产业进行连接的使命。

为了加强与开发者的沟通,10 月 19 日,微信小程序和腾讯云团队将联合举办首次 「小程序·云开发」技术峰会

届时,微信小程序团队腾讯云团队 将联袂解读 「小程序·云开发」 的最新能力,为小程序开发者升级工具箱;顶级技术大牛将讲解前端技术最新的发展趋势,帮助开发者拓展技术视野;腾讯内外部的技术团队,也将分享基于 「小程序·云开发」 高效打造小程序的实战经验。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: