京东金融移动端多业务集成解决方案 王秀刚 京东金融

2020-03-01 209浏览

  • 1.京东⾦金金融 多业务集成解决⽅方案 王秀刚
  • 2.
  • 3.
  • 4.
  • 5.王秀刚 京东⾦金金融⾼高级架构师 专注于移动架构应⽤用和实践,对编程语⾳音有深刻的理理解,对跨平台研发⽅方⾯面有丰 富的经验;专注于提⾼高客户端整体性能。 曾从事移动地图和导航引擎的研究。
  • 6.• 现状 • 过往 • 组件化 • 组件化深⼊入实践 • 模块化集成
  • 7.现状 • 近百个版本的迭代 • 理理财,消费,借贷 • 百万级别的代码⾏行行数 • ⼏几⼗十个业务
  • 8.
  • 9.·多业务发展的监控 • 冗余代码 • 代码检测⼯工具 • 冗余资源 • 图⽚片相似度检测 • 性能监控 • 卡顿,内存,cpu,流量量 • 质量量监控 • 万分之五左右的崩溃率 • 业务数据采集 • 奇点sdk
  • 10.多业务发展的效率 iOS H5 Android RN
  • 11.过往 • 编译速度慢 • 代码耦合⾼高 • 模块化模糊 • 资源⽂文件冗余 • 三⽅方库+私有库的管理理 • 分⽀支合并冲突 • 业务模块封闭
  • 12.组件化 • 私有库和三⽅方库的沉淀 • 堆栈路路由-集中配置 • 模块化解耦 • 降低分⽀支合并冲突 • 资源⽂文件
  • 13.组件化-堆栈路路由 • 交互统⼀一⼊入⼝口 • 跨平台-Android、iOS、H5 • 堆栈的有效管理理 • 提升APP运⾏行行性能
  • 14.组件化-堆栈路路由-集中配置 • 宿主+模块=⾼高引⽤用 • 宿主+模块=⾼高粘性 • 宿主+模块=⾼高指令 • 路路由连接点复杂化
  • 15.组件化-路路由分散配置 • 动态查找⽅方法 • ⽅方法的映射 • 模块扩展类 业务A 业务B 路路由 15
  • 16.• 业务模块实现路路由的分类 路路由 (业务A) •createSelector:(jumpType)• [instancemethodSignatureForSelector:selector]• 路路由 (业务B) 路路由 [NSInvocationinvocationWithMethodSignature:] 16 路路由 (业务C)
  • 17.组件化-模块化资源 Framework(⼆二进制+Res) • • Framework 读取+命名空间⽅方 式,写法复杂 资源和代码的强关 联 17 Res • ⾮非同名+资源相同 • 同名+资源不不同
  • 18.组件化-模块化资源 framework • ⾮非同名+资源相同 • 同名+资源不不同 ipa包增⼤大 • bug • 资源检测 ⼯工具 + res 18 命名规范
  • 19.模块化集成-问题回顾 • • • 不不影响业务研发效率 • 减少联调成本 • 模块化测试 编译速度慢 业务模块SDK
  • 20.模块化集成-业务模块封闭 权限管理理 source 模块sdk APP switch lib
  • 21.库与⼯工程的关联 • 仓库与⼯工程⽬目录解耦 • 可以通过commandLine程序设置仓 库总⽬目录与⼯工程⽬目录 • 库包括⾃自身的Project⼯工程以及源⽂文 件 • ⼯工程通过配置⽂文件引⼊入仓库源码/Lib • 主⼯工程可修改仓库源⽂文件
  • 22.Lib/Source管理理 开发 soure-repo 发布 仓库管理理员 lib-repo
  • 23.权限管理理 read write read write 仓库管理理员 soure-repo ⽆无权限 read only 开发者 lib-repo
  • 24.模块化集成 宿主壳 主界⾯面 持续集成 研发环境 中间层 中间层 Module Module Module Module Module lib lib lib lib lib Tool Tool Tool Tool Tool lib lib lib lib lib BaseLib
  • 25.待解决问题 • UI共享问题 • 包瘦身持续关注 • 热更更新 • ⾃自动化的代码合并
  • 26.