【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

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

  • 2019-10-12
  • 本文字数:3311 字

    阅读完需:约 11 分钟

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

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 日,微信小程序和腾讯云团队将联合举办首次「小程序·云开发」技术峰会


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



公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2019-10-12 15:172157
用户头像

发布了 35 篇内容, 共 21.8 次阅读, 收获喜欢 43 次。

关注

评论

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

如何系统分析项目的干系人?

石云升

项目管理 1月月更

Hoo虎符研究院 | 币圈后浪 BreederDAO区块链游戏的NFT工厂

区块链前沿News

虎符 Hoo 虎符交易所

模块六 - 电商系统微服务设计

圈圈gor

架构实战营 「架构实战营」

如何写好一个Java方法?

蜜糖的代码注释

Java 后端开发 写好代码

Microchip发布具有强大编程和调试功能的新型在线仿真器(ICE)

Geek_2d6073

虎年就要玩虎符 春节就要瓜分虎符虎年大礼包

区块链前沿News

Hoo虎符 Hoo 虎年 春节活动

建一座国际连锁「商场」:openEuler 的雄心与蓝图 | 开源访谈《源创者说》首播

科技热闻

建木持续集成平台v2.2.1发布

Jianmu

DevOps 持续集成 CI/CD

架构训练营 week8 作业

红莲疾风

「架构实战营」

【笔记】学《郭东白的架构课》:访谈|对话于冰(下)

术子米德

架构师成长笔记

再见,Microsoft Academic——你好,开放式研究基础设施?

DisonTangor

搜索引擎

ReactNative进阶(四十二):面试必备:2022 ReactNative 经典面试题总结(含答案)

No Silver Bullet

面试题 1月月更 ReactNative

openLooKeng助力中移在线获“ICT优秀案例”

openLooKeng

ReactNative进阶(四十):应用 ListView 实现分组列表

No Silver Bullet

ListView React Native 1月月更

模块六作业

黄秀明

「架构实战营」

并发不是并行

en

在线时间戳计算时间差

入门小站

工具

ReactNative进阶(四十一):应用 FlatList 实现分组列表

No Silver Bullet

1月月更 ReactNative FlatList

双龙贺岁,龙蜥 LoongArch GA 版正式发布

OpenAnolis小助手

Linux 开源 新年

(1-24/24)awesome「结构」

mtfelix

300天创作 2022Y300P

第六节:SpingBoot基本配置一

入门小站

springboot java

Go 语言快速入门指南:Go 实现简易Web应用

宇宙之一粟

Go web服务器 Go 语言 1月月更

拆分电商系统为微服务

tony

openLooKeng算子接口和执行流程

openLooKeng

【笔记】学《郭东白的架构课》:访谈|对话于冰(上)

术子米德

架构师成长笔记

【笔记】学《郭东白的架构课》:访谈|对话于冰(中)

术子米德

架构师成长笔记

电商系统微服务化

皓月

「架构实战营」

Spark合并Iceberg小文件内存溢出问题定位和解决方案

漫长的白日梦

spark iceberg 小文件

快递,菜鸟驿站,直播购物:老年人的电商之墙

脑极体

LabVIEW播放提示声音或者音乐

不脱发的程序猿

LabVIEW 播放提示声音或者音乐

openLooKeng | Oracle update和delete支持简介及实现

openLooKeng

别再纠结后端了,小程序开发这么做_语言 & 开发_一点小小苏_InfoQ精选文章