腾讯在线教育大前端架构演进之路.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《腾讯在线教育大前端架构演进之路.pptx》由用户(无敌的果实)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 腾讯 在线教育 前端 架构 演进
- 资源描述:
-
1、腾讯在线教育前端架构演进之路录 1、在线教育部业务简介2、前端架构演进历程3、前端的总结与展望1、腾讯在线教育部业务矩阵及技术图谱腾讯在线教育部业务产品矩阵产品覆盖了各年龄层ABCMouse企鹅辅导腾讯课堂腾讯在线教育前端技术图谱APP程序wepykboneh5、PC服务端存储Q.js研框架 serverlessexpress2019腾讯在线教育前端临的挑战1、业务增速度快、产品迭代周期短、项质量要求2、前端团队数,前端加客户端,增到了70多3、部内三个业务并发展,重复建设的能越来越多2、在线教育前端的架构演进历程腾讯在线教育前端技术演进历程组件化建设服务中台化统技术栈业务动态化云端体化架构之
2、初的设计思考如何避免功能重复建设?业务如何能代码如何快速的上线?更好的复?怎么实现可插拔设计?答案:组件化在线教育部成之初技术现状统前端技术栈jquery项框架不同,构建也不同块的加载机制AngularReactQ.js前端统技术栈技术栈收归,是组件化落地的前提ReactWebpack业务组件化落地减少重复开发,定程度提升了开发效率UI 组件基础组件具组件志组件监控组件抽象聚合动画组件程序组件RN 组件统登录组件视频组件消息推送组件业务组件运营活动组件付组件随着业务发展,产品新的诉求解决时效性问题产品:给我上个活动推荐卡开发:可以,预期是下个,跟 APP 版本提测开发:做不到啊,苹果审核需要时
3、间 产品:我下周,就要上线!开发的思考APP 动态化1、能不能不发版本就解决问题?2、业务代码如何能实时热更新?3、能不能不需要提前预埋逻辑?4、安卓 和 IOS 能否套代码?2.1 在线教育前端的服务中台化建设在线教育前端的动态化架构时间线Native 模板 Hybird React Native201512342019FlutterNative 模板可以满基本动态化诉求Native UI 绘制优点:可以配置化更新模板缺点:需要预埋,扩展性不够遇突发事件,Hybird 离线包满业务动态化,提升加载速度浏览器 Web App (HTML、CSS、JavaScript)Web UI 绘制WebV
4、iew 命周期基础API,系统能离线资源管理数据通信优点:动态更新,开发和维护成本低缺点:跟 Native ,存在性能问题Android / IOS 客户端 bridge客户端 FrameworkHybird 优化案传统优化资源压缩、Tree Shaking、资源分离客户端离线包更新策略,使 diff 进最更新静态资源协议提升传输协议:HTTPS 到 RPC数据协议:JSON 到 PB、JCE客户端预加载,减少络耗时弱络情况,客户端协议重试数据通信React Native解决 APP 屏问题JavaScript (UI)Native UI 绘制Android / IOS Bridge优点:保持
5、 JS 开发,渲染性能提升JS VMYoga缺点:不同平台有差异,需要兼容处理crash 率略基础API,系统能客户端 Framework17年出Plato 探索研 RN 框架设计应层登陆志下载ListViewNavBarTavHostAllPagerVideoWNS业务组件APP能直播分层更为合理各层接清晰每层最可减少耦合灵活性渐进增强组件层基础组件listViewViewTextImageModalScrollInputTextdiff 解析 渲染调试 打包 兼容前引志模块络请求本地存储全局参数初始化端核模块UI 管理 create擎基础模块基础能基础层Webpack优化事件代理动画del
6、eteupdateWebSocketPlato To PreactfindNode复杂动画,定制化后交给 Native 绘制扩展性好,持 vue、preactbridgeutilsv8jsc裁剪事件监听,只抛出绑定的事件Android / IOS 客户端Flutter降低 Crash 率,提升 UI 致性跨平台引擎 UI 绘制优点:性能媲美 Native,且多端渲染致缺点:不持动态化,前态不如 RN前端编写 dart,脱离前端 JS 态MJFlutter 实践企鹅辅导 落地 FlutterFlutterFlutter to We b 探索不适合追求性能的业务,适合 C 端场景AlertToas
7、tAppCSSRender NavigatorRefreshstoragewindowcookieMJFlutterHttp/CGIJSBridgeWebwebSocket环境依赖平台适配腾讯在线教育动态化演进回顾本质是渲染式的变NativeWeb浏览器渲染Flutter研引擎渲染12客户端渲染RN、NativeHybirdFlutter业务快速发展,如何提升产品质量核秒开产品:核打开很慢啊?开发:是吗?我看下上报的数据。产品:是的,尤其是端外,很慢!开发:嗯,我们优化下。开发的思考Node 服务端直出1、在离线包的场景下,怎样提升打开速度?2、在 APP 内有离线包的情况下,为什么打开会慢?
8、基于 Nodejs2.2 在线教育前端的服务中台化建设在线教育团队 Node 服务的基 IMServerserverLessIMServer 3.02019hapikoaIMServer 1.0 建设拓展了前端的边界worker1、worker2、worker3、worker4PM2业务标替代 Java VM 案Server1Server2Server3优化团队研发模式,提升开发效率IMServer 1.0Frameworkhapi + plugins IMServer 1.0 问题IMServer 架构升级开发效共个 Framework 耦合严重个业务出了问题,影响其它业务缺少合理的团队代码
9、开发规范耦合严重IMServer 2.0 升级改造约定于规范IMServer-cliIMServer-dcapiIMServer-monitor设计思想IMServer灵活可扩展的微内核架构业务采插件的形式嵌插件态imsocket imserver-core imserver具链KOA + 基础中间件IMServer-ioIMServer-ptloginIMServer 2.0 架构图组合于继承IMServer-coreIMServer功能模块Cluster HttpServer封装 KOAWorker1Worker2Worker3进程管理:PM2 IMServer原框架:hapi Koa2F
展开阅读全文