AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

去哪儿网跨端小程序开发实践谈

  • 2019-08-15
  • 本文字数:1132 字

    阅读完需:约 4 分钟

去哪儿网跨端小程序开发实践谈

ArchSummit深圳2019大会上,钟钦成(司徒正美)讲师做了《去哪儿网跨端小程序开发实践谈》主题演讲,主要内容如下。


演讲简介


两年前,微信小程序横空出世,及小米直达号联合其他手机商摇身一变,推出快应用,在这个互联网寒冬中,去哪儿网敏锐抓住机会,迅速推出去哪儿微信小程序与快应用,以一套代码加语法宏的方式进行开发, 取得不俗的收益,日收入百万级别。


一年前,其他小程序也冒出来了,显然这意味新的商业机会,但旧的开发方式已经无法进行下去(宏里面太多分支),因此去哪儿网开发了自己的转译框架 nanachi,实现一套代码运行于 N 个平台(微信,QQ 轻应用,头条,抖音,钉钉 E 应用,支付宝,百度,快应用,H5)。


本次分享介绍研发心得,大家耳熟能详的转译部分(babel 的 API 的调用)会略过,但会展示更加有用的信息,及在框架无法 hold 住的情况下处理措施。


演讲提纲


1、框架的研发细节


  • React 代码如何转换成小程序的代码

  • React 组件实例如何匹配相同页面上相同位置的小程序实例,实现数据的同步与视图的刷新

  • API 的兼容与 Promise 化

  • 针对个别平台的标签差异开发出补丁组件,在编译阶段无感支持这种标签

  • 样式单位的转译

  • 对事件进行统一委托,解决传参与 bind(this)与数据上传


2、框架外的技术文案(需要开发人员手动添加额外代码,或进行某方面的约束)


  • 针对平台的限制或体积的限制,需要将某个页面或频道放到 webview 中,开发出智能 webview 方案

  • iconfont 的跨平台处理

  • 根据不同平台打包业务代码

  • 拆库开发,方便多条业务线同时开发

  • 通过与各大公司的技术人员洽谈,协商加入某些 API,减轻兼容难度

  • 如何设计跨端的目录结构

  • 快应用的兼容问题


听众受益


1、对项目负责人来说,了解一下各种小程序的收益情况(微信>快应用>支付宝>百度),了解兼容难度,市面上有各种号称非常不错的转译框架,其实只能解决 60%的问题,于是才有了各种补丁方案,如何在框架无能为力的情况进行自救。从项目实施来讲,我的建议有三点:


  • 必须有 backup 方案

  • 如果决定上线,必须提前研发,不一定等到推广费到位,因为坑多

  • 加强与大公司技术人员的沟通


2、对开发者,可以了解到众多平台的差异与相应的解决方案。


讲师介绍


钟钦成(司徒正美)


去哪儿 架构师


网名司徒正美,拥有 11 年纯前端经验,涉猎多种语言与设计模式,精通 DOM 与 JS 各种黑魔法,精通选择器引擎、模块加载器、MVVM。著有《JavaScript 框架设计》一书,去哪儿网平台事业部前端架构师,人民出版社 Web+DB Press 中文版编委会编委!


开发过选择器引擎,前端模板,富文本选择器,甘特图 H5,多套 UI 库。主要开源项目有:mass、avalon、anujs、jsx-parser、fetch-polyfill、nanachi 多端小程序转译框架。












完整演讲 PPT 下载链接


https://archsummit.infoq.cn/2019/shenzhen/schedule


2019-08-15 00:0016924

评论

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

Linux设备驱动系列(九)——procfs文件系统

Linux内核拾遗

文件系统 linux开发 Linux内核 设备驱动 procfs

前端面试题 - 如何实现promise?

Geek_fed966

事业-最佳实践-编码-声明规范

南山

事业-最佳实践-编码-异常处理规范

南山

异常 异常处理

事业-最佳实践-编码-注释规范

南山

代码注释 注释 添加注释 注释规范

事业-最佳实践-编码-CR认知

南山

CR CodeReview

PPT软件Gamma平替!这款AI生成PPT工具千万别错过!

彭宏豪95

PPT 在线白板 PPT模板 办公软件 AI生成PPT

巧用 TiCDC Syncpiont 构建银行实时交易和准实时计算一体化架构

PingCAP

数据库 TiDB

ACK One x OpenKruiseGame 全球游戏服多地域一致性交付最佳实践

阿里巴巴云原生

阿里云 开源 容器 云原生

2024-05-01:用go语言,给定两个长度为偶数n的整数数组nums1和nums2, 分别移除它们各自的一半元素, 将剩下的元素合并成集合s。 找出集合s中可能包含的最多元素数量。 输入:nums

福大大架构师每日一题

福大大架构师每日一题

大模型探索:阿里向量检索服务DashVector

程序员架构进阶

架构 向量检索 大模型 5月月更 通义千问

30 秒出服装设计稿,森马用函数计算+AIGC 整“新活”!

阿里巴巴云原生

阿里云 Serverless 云原生 函数计算

Rust vs Go:如何选择最适合你的编程语言

伤感汤姆布利柏

嵌入式Linux的学习误区

芯动大师

Linux 嵌入式 处理器

银行核心背后的落地工程体系丨Oracle - TiDB 数据迁移详解

PingCAP

数据库 TiDB

TiDB Vector 太香啦:以图搜图初体验!

PingCAP

数据库 TiDB

为什么公共事业机构会偏爱 TiDB :TiDB 数据库在某省妇幼健康管理系统的应用

PingCAP

数据库 TiDB

在线音频,没有新故事

自象限

null是原始类型,但为什么typeof null的结果是object?

Geek_fed966

架构实战营 - 模块六作业

满心

Required request parameter ‘XXX‘ for method parameter type String is not present

源字节1号

开源 软件开发 前端开发 后端开发 小程序开发

去哪儿网跨端小程序开发实践谈_ArchSummit_钟钦成(司徒正美)_InfoQ精选文章