爱收集资源网

薛端阳:揭秘携程微信小程序的技术黑科技

网络整理 2023-09-27 11:05

受访者 |薛端阳

采访者 | 伍杏玲

出品 | CSDN(ID:CSDNnews)

2017 年 1 月 9 日,微信小程序诞生,自此我们从联通互联网时代跨入小程序时代。目前各大大鳄公司正在紧锣密鼓地布局小程序市场:

微信小程序日活达 6 亿;百度小程序月活用户达 2 亿;支付宝小程序日活用户达 2.3 亿;快应用覆盖 10 亿设备,月活 2 亿……

同时小程序亦是开发者较关注的技术趋势。那么这么多的小程序平台,作为开发者,我们该怎么选择?在小程序开发过程中,多后端生态下,后端该怎么布署呢?多部门协同发布一个小程序时,我们又该注意些哪些呢?

在阿拉丁统计平台上qq小程序开发者,携程陌陌小程序高踞 7 月总榜单的 23 位,且同程在各生态均有布局。所以 CSDN(ID:CSDNnews)邀请到同程小程序的技术负责人薛端阳,为我们分享同程小程序的技术开发经验。

CSDN:请您自我介绍下。

薛端阳:我是同程小程序的技术负责人,薛端阳,主要负责公司所有对接小程序相关技术业务,包括对外合作技术引进,对内业务向框架技术研究,技术布道,打通内部纵向合作障碍,努力为携程系各业务 BU 提供便捷、高效、稳定、易用的小程序接入整体解决方案。

在我的职业生涯期间,先后开源过 KitJs 移动端 UI 框架、ReactMix 通用 RN for Web解决方案等,经历了 Web 技术从最早的 prototype.js 到现今的 React 的急速发展,平台从 H5 到 RN,再到如今很火的小程序。

我们经过多年的探求研究,从用户体验、技术上手难度、深度使用体验、社区活力市场支持力度等几个方面看出来,一致认为目前小程序技术具有旺盛的生命力,在综合能力上属于极具市场前瞻性的技术平台产品,值得大力投资,并追随风口。

携程网是 2017 年开始开发小程序,属于市场上第一批接入,并对接所有小程序平台的内容供应商,包括陌陌、QQ 浏览器、支付宝、高德、快应用、百度、头条。

在第三方智库发布的小程序排行榜上,携程小程序一直稳定在前五的排行。

自研小程序框架

开发过程遇协同困局

CSDN:目前小程序的框架有很多,例如嘀嘀的 Chameleon、美团的 Mpvue、京东的 Taro、腾讯的 WePY 等,请问携程网采用的是自研框架还是市场上的其中一个框架?

薛端阳:携程有自己一套自研的小程序框架,内部代号叫 Cwx(意为 Ctrip Weixin)。

因为历史缘由,我们是第一批接入陌陌小程序的团队,那个时侯还没有这种框架。

并且同程对于框架功能的需求,更多会倾向于怎么便捷的解决跨部门协同的合作问题,降低冲突(版本代码冲突、区分内外网),优化资源整合(三大基础业务登陆、业绩统计、支付),质量问题跟踪(行为流水、代码级错误回溯)等。

从需求来看,我们偏向于内部的技术需求比较重,从组织构架体系来看,携程没有独立组织意义上的小程序独立团队,我们须要整合公司各个业务 BU 之间的技术资源,一起合作开发一个大的技术产品。

我们有一个内部用于技术产品沟通交流的微信群,群内人员是流动的,最大的技术产品同程陌陌小程序的群内关联的技术人员早已高达 500+了。

qq小程序开发者_qq小程序开发者工具怎么使用_qq小程序开源

由此可见的是,携程区别不同于其他几家公司的小程序开发流程,面对第一个困局是协同问题。

因为参与的人多,我们须要合理有效的解决开发隔离,但是又要高效借助公共资源,Cwx 框架诞生早期就是为了实现这个目标而形成的。

幸运的是经过了 2 年的沉淀,也感受到了多人协作的益处,让我们能有市面上最丰富的的小程序代码样本数据,在以陌陌小程序为基础 DSL,我们挺好地解决了陌陌转其他小程序的各类兼容和边界问题。

在这点上,已知市面上其他家已开源产品大多以封闭规则的方法来实现跨多端,这一理念在同程小程序上行不通,因为我们同程做的比较早,本身又秉持一个内部开放多元的体系,我们对于技术并无限制,只要在陌陌容器能玩得上去的,我们就会支持,并给与提供多端转换的持续支持。

所以我们以点为目标,线为工具,针对我们内部业务 BU 的各类需求,我们开发了一套整体的小程序解决方案,涵盖目前小程序开发中遇见的各类技术问题。

当然我们也宽容和支持市面上已有的第三方小程序框架,虽然在代码冗余度上,我们的解决方案包含了她们支持的绝大部分功能,我们倡导的是一个多样化的技术理念,你中有我 ,我中有你。

我们追求的目标是整体的通用解决方案,一个稳定、高效能的开发+调试+业务运维监控体系。

开发难点:平台限制的插口不全

CSDN:目前携程网已对接各平台的小程序,那么前端服务是怎样实现的呢?是一前端对应多后端,还是一前端对应一后端的方法呢?

薛端阳:在设计之初,我们在恳求封装层面针对平台特点有封装好多标记,后端服务拥有足够的指纹特点去做灵活判定,至于是否分平台分发,由具体的业务产品决定。同时,我们代码分层层面上,有独立的业务 DAO 层指导,BU 可以自行选择参数配置。

CSDN:相比 App,对比这几种小程序生态,您认为开发难点各是哪些?

薛端阳:对比 App 来说,小程序最大的问题是因为平台限制的插口不全/权限不够大,App+Hybrid 理论上来说仅次于 root 权限,很多产品设计上的功能都能实现,小程序由于安全缘由以及平台限制,并不能提供好多 App 上已有的功能。

以分享举例,很多小程序不能主动分享,但是 App 就可以,就引起了代码逻辑的分离,不能一套代码 App+小程序通用,当然在同程的 Cwx 解决方案内,我们通过 postCompiler 预编译的方法来掩藏了这一问题。但是在实际的产品业务逻辑设计上,这些都绕不开的。

第二个比较严重的问题是平台兼容性问题,在市面上数以万计的终端用户面前,一个真实用户如果 Crash 是非常无法定位和调试的。

目前市面已开源的框架产品都没有注重这个问题,我们 Cwx 是提供了 crash 面包屑搜集、堆栈 SourceMap、用户行为流水、错误回溯等等,帮助开发人员快速确切定位,1小时修补发布。

这上面包含了好多细节的核心技术难点,包括 crash dump 文件的本地压缩传输、断点续传、断网重试、SourceMap 加揭秘、用户画像、前前端单一用户日志打通等等。

我们提供的是一套整体的解决方案,而不只是一个框架,当然在解决这种细节技术问题的过程中,我们必须和小程序容器厂商,微信、快应用等紧密合作,我们仍然都有内部沟通渠道,可以无缝对接,我们会提出第三方订制要求,共同讨论必要性和施行细节,这些为了让小程序这个大平台能更易用,更止痛地良性发展,我们和容器厂商仍然是相互依存的状态。

虚拟开发团队,多级分层容灾

CSDN:对比了艺龙在陌陌小程序、支付宝小程序、百度智能小程序,携程网在各生态的提供的功能服务有很大差别,例如在陌陌端提供的服务和 App 的差不多qq小程序开发者,而在支付宝、百度仅提供基础服务,这样布署是基于哪些标准评判呢?

薛端阳:这个是由业务部门自身业务发展决定的,我们因为一段时间仍然同步陌陌的版本到其他家小程序平台的,但是由于每位小程序平台都有自己的初审标准和业务限制,并不是陌陌的功能都直接搬过去用,所以业务出于自身发展的考虑,会做一些区别。

CSDN:携程网有很多个部门,在小程序开发上是单独由一支团队负责,还是各业务部门有专门的人来开发协同呢?

薛端阳:我们是虚拟团队,每个业务线有相对固定的开发人员。

CSDN:小程序和 App 目前的开发资源投入分配大致是如何的?

薛端阳:目前 App 的资源优先级低于小程序。

CSDN:在小程序的发布上,目前各部门的协同工作是怎样进行的呢?

薛端阳:小程序虚拟团队的沟通主要基于外网 IM 以及内网陌陌,自动化程度较高,很多发布协同指令都开发了对应的机器人去完成自动化无人值守操作,我们是实际意义上的 24 小时 Hold on。

CSDN:是否有容灾性?如某个部门的入口有问题,是否能迅速下掉呢?

薛端阳:多级分层容灾,很多入口都是基于配置系统下发的,所以可以不用发布,实时生效。

未来:打通小程序和 Hybrid

CSDN:您对这几种生态有哪些想法和展望呢?

薛端阳:可以预计的是,在相当长的一段时间内,几种生态都是各自独立良性发展的,这是必然性和必要性,不会形成冲突。

因为从用户画像上来说,长期使用单一平台的用户是不存在使用其他平台的必要性的,所以小程序有自己独立一部分常年用户群,满足她们的须要和提高满意度,是当下我们须要重点审视的目标。

在短期性来看,存在给 App 导流的业务逻辑也是各个公司内部指标之一,拉活、导流、短期活动的用户群体也有它自身独立存在的必要性和必然性,因为新品产品可以短期在口碑上,和品牌认知度上急剧提高公司形象。

CSDN:未来艺龙在小程序上的技术研究方向是哪些呢?

薛端阳:

1、继续深入建立现有体系,因为小程序是从刀耕火种走过来的,文档化完成度确实不高,我们正在不断努力建立,目前早已内部有一套基于相关代码的自动化文档体系。

2、打通小程序和 Hybrid,未来我们期望小程序可以直接接替现有的 Hybrid,这两个技术栈是十分相像和同构的。

【END】

热 文推 荐

qq小程序开发者
上一篇:安卓手机卡顿?5招助你秒变流畅 下一篇:没有了