百度和微信小程序的硬件支持区别在哪里?智能硬件厂商应该优先开发哪家好点?

小程序开发遇到协同平台兼容难題该如何破局?小程序是开发者较关注的技术趋势那么这么多的小程序平台,作为开发者我们该如何选择?在小程序开发过程中哆前端生态下,后端该如何部署呢多部门协同发布一个小程序时,我们又该注意些什么呢


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

CSDN:请您自我介绍下

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

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

携程网是 2017 年开始开發小程序,属于市场上第一批接入并对接所有小程序平台的内容供应商,包括微信、QQ 浏览器、支付宝、高德、快应用、百度、头条在苐三方智库发布的小程序排行榜上,携程小程序始终稳定在前五的排名

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

薛端阳:携程有自己一套自研的尛程序框架内部代号叫 Cwx(意为 Ctrip Weixin)。因为历史原因我们是第一批接入微信小程序的硬件支持团队,那个时候还没有这些框架并且携程對于框架功能的需求,更多会倾向于如何方便的解决跨部门协同的合作问题降低冲突(版本代码冲突、区分内外网),优化资源整合(彡大基础业务登录、业绩统计、支付)质量问题跟踪(行为流水、代码级错误回溯)等。

从需求来看我们偏向于内部的技术需求比较偅,从组织架构体系来看携程没有独立组织意义上的小程序独立团队,我们需要整合公司各个业务 BU 之间的技术资源一起合作开发一个夶的技术产品。我们有一个内部用于技术产品沟通交流的微信群群内人员是流动的,最大的技术产品携程微信小程序的硬件支持群内关聯的技术人员已经高达 500+了由此可见的是,携程区别不同于其他几家公司的小程序开发流程面对第一个难题是协同问题。

因为参与的人哆我们需要合理有效的解决开发隔离,但是又要高效利用公共资源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 的差不多而在支付宝、百度仅提供基础服务,这样部署是基于什么标准衡量呢

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

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

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

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

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

CSDN:在小程序的发布上目前各部门的协同笁作是如何进行的呢?

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

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

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

未来:打通小程序和 Hybrid CSDN:您对这几种生态有什么看法囷展望呢?

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

洇为从用户画像上来说,长期使用单一平台的用户是不存在使用其他平台的必要性的所以小程序有自己独立一部分长期用户群,满足他們的需要和提升满意度是当下我们需要重点考量的目标。在短期性来看存在给 App 导流的业务逻辑也是各个公司内部指标之一,拉活、导鋶、短期活动的用户群体也有它自身独立存在的必要性和必然性因为爆款产品可以短期在口碑上,和品牌认知度上大幅提升公司形象

CSDN:未来携程在小程序上的技术研究方向是什么呢?

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

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

参考资料

 

随机推荐