比心大前端研发效能体系
如果无法正常显示,请先停止浏览器的去广告插件。
1. 比心大前端研发效能体系
王劲鹏
比心-前端架构组
2.
3. • 大前端研发平台体系
• 组件化和业务集成
• 应用构建和发布交付
• 业务配置化
4. 大前端组件化
组件化优势
•
• 多端功能便于对齐一致
• 可维护性强,易于调试
• 依赖清晰,易于版本管理
5. 组件类型
Native组件
•
•
Android AAR;iOS Pod;PC Conan C++;NPM package
跨端组件
•
•
Doric动态化组件;游戏组件(如Cocos等)
6. 组件管理
• 组件创建和详情管理
• 三方组件跳过Lint类检查
• Owners追溯组件质量分析和责任分配
• 二进制可以加速后期应用构建
7. 组件版本迭代
• 指定组件分支发布
• 业务组件依赖分析
• 三方库依赖分析
8. 组件集成(1)
• 版本迭代
• 集成到指定业务分支
• 预览修改
9. 组件集成(2)
• 单个或多个组件集成
• 具体到指定业务分支
• 查看创建和编译日志
• 取消集成
10. 应用构建
• 构建分支,包类型
• 详细日志
• 二进制加速构建
• 自定义本地组件
11. 发布交付
• 版本管理和筛选
• 渠道发布
• 公网链接管理
12. 业务配置化
• App矩阵管理
• 编译或者构建任务步骤配置化
• 用户权限管控
13. Doric跨端和动态化
• 极简和渐进式(声明式布局,多种开发模式,如MVVM,类原生等)
• 多端一致性(Android,iOS,Web,Qt,小程序)
• 高性能,兼容原生或类原生混合开发
14. Doric Coding Style
•
声明式和TSX
15. Doric多端一致性
•
依次为iOS,Android,Web,小程序和Qt
16. Doric比心落地
• 2268个组件版本
• 69个闭环组件集合
17. Doric组件管理
• 版本控制
• 动态跟版
• 内置
18. • 下一代 CI/CD 构建系统
• 动机和背景
• 云原生结合虚拟化
19. 动机和背景
传统Jenkins局限性
•
• 需要手动部署到指定物理机
• 构建过程存在对构建系统环境的副作用
• 维护成本高,无法适配复杂的大前端体系下的构建和编译需求
20. 理想的构建系统
• 构建的原子性(一个环境只执行一个构建任务)
• 系统可复原(单次任务内对系统环境的修改任务结束时还原)
• 可定制软件或环境变量(提供一些内置软件)
• 易于部署,只需要copy即可完成部署
21. Matrix系统
• Docker化部署 (docker-compose.yml)
• Docker Linux + QEMU KVM (Mac, Linux & Windows) 保证环境可复
原
• 多项内置软件 (nodejs多版本管理;jvm多版本管理;rvm多版本管理)
• 定制化操作系统 (Mac Catalina ~ Monterey, Windows 10 ~ 11)
• 额外可以以ssh复用现有物理机器执行构建
22. Matrix任务描述
• 任务类型
• 目标机器
• 环境变量
• 阶段编译命令
• 任务元信息
23. Matrix容器管理
• 宿主机管理
• 挂载的Docker+KVM管理
•
YML编辑和修改
24. Matrix物理机群管理
• 物理机器的添加
• 单个节点的tag标记
• 节点基础信息修改和删除
25. Matrix任务调度和监控
状态监控
•
•
活跃、成功、失败、等待
• 等待和持续时长观测
• 失败任务重发和警报
26. Matrix构建日志
• 分阶段日志动态查看
• 日志快速搜索过滤
27. Matrix缓存
共用NFS高速网络缓存
•
• 二进制的构建缓存
• 工程第三方依赖缓存
28. • 总结和展望
• 总体收益和效果
• 未来的 Roadmap
29. 总体收益和效果
• 大前端研发平台很好的实现了组件能力和复用,避免了多个业务内部重
复“造轮子”,基础能力得到很好拓展和维护
• Doric在比心的2000多个版本的组件落地和原生配合可更好更高效得迭
代业务,使得任意一端的研发能力得到全局释放
• Matrix构建系统支持近10W次的构建和几乎零故障,配合二进制和缓存
系统做到了更高效的交付
30. Road Map
• 大前端研发平台会进一步迭代,支持更多类型,更丰富的组件形态,配
合Matrix构建系统,做到更加多样化的构建流程
• Matrix本身也会逐步丰富软件内置管理,镜像构建支持自动化等
• Doric开源社区会逐步支持3D引擎多样化,多端一致性演进等
31. Doric支持3d引擎
32. 欢迎加入Doric社区
33.
34.