百度 App Tekes 研发一体化平台.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《百度 App Tekes 研发一体化平台.pptx》由用户(无敌的果实)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 百度 App Tekes 研发一体化平台 研发 一体化 平台
- 资源描述:
-
1、百度App移动端程能演进及Tekes研发体化平台型App架构和程能的挑战业务规模大:百度App技术方向及子方向70+,单端代码量230w+;团队规模大:团队快速发展, 有代码权限的近千人;/质量控制,编译速度/大规模并行开发接入业务多:30+(合并提供方后),非单纯基础库,与百度App关系复杂;迭代速度快:3周一个版本,2周开发1周测试;/架构支撑与集成能力/控制劣化技术形态多:H5、NA、Hybrid、Talos、Flutter技术共存;目标多样性:矩阵产品孵化复用,小程序开源复用,性能、体积等开发指标/保障基础能力复用/复用孵化能力,量化性能架构的利益相关者和关注点控制架构整体复杂度保障并
2、行开发效率提升编译速度等研发流程效率百度App RD确保单个模块的故障影响范围内敛到自己内部,不会引发整体crash处理接入业务与百度App的关系快速集成与调试能力稳定成熟的对外能力百度AppQA接入业务方问题快速定位发现利益相关者(stakeholder),并解决他们的关注点(concerns)启动速度、体积等指标可以以组件为单位量化最大程度复用最低成本组装最低成本升级矩阵团队(看多多、柠檬爱美)性能团队三方库规范性,便于宿主版本抉择基础库规范化,不与宿主工程撞库服务组件可替代性小程序团队研发效率 复用组装 劣化防控四个:EasyBox综合解决案Tekes研发体化平台程架构拆分矩阵产品孵化组
3、件化多仓库 + 二进制化自动化发布 + 防劣化产品线孵化程架构拆分程拆分法-百度App整体架构主工程(主版,矩阵)组件化-并行开发启动器(各组件初始化)容器加载器(加载UI)中央仓库配置表容器化、组件化、分发、数据拆分框架业务组件模型业务组件化推动全面组件化服务组件沉淀主工程壳化基础业务搜索浏览互动评论消息垂类说动漫服务桥接Feed反馈图集视频志络视频业务组件搜索建议TTS平台化技术组件业务撑组件业务支撑&平台化技术层组件化-保障复用Talos(RN)H5/Hybrid程序热修复CommonPlayer.基础库体系化约束边界及依赖治理各服务组件多产品线支撑媒体服务Web服务视图服务组件化/分发
4、/数据拆分框架基础服务监控服务数据与增服务服务层志PyramidSchemeRouterCocoaSetting账号分享卡顿监控公参定位RemoteConfigCrashABTestEasyBox-劣化防控编译隔离层级反向访问限制多仓库代码权限隔离基础库层基础类库UI组件库UI容器图查看器络库加解密库数据持久化三方库层 开源网络库动画库解析器解压缩库数据库缓存Tekes-劣化防控Android/iOS Application Framework依赖、接口劣化监控架构层级设计广义组件化框架程架构拆分-义组件化框架标:通过分发/拆分/隔离及容器化机制解耦,保障并开发能,统管理整体复杂度。Pyram
5、id功能:SchemeRouter功能:依赖注入、系统事件分发、组件生命周期管理、组间通信H5与NA的端能力调用与分发、服务端动态入口(个人中心、Feed流进落地页)下发作用:对外输出组件依赖服务实现可替代性。提升接口稳定性与成熟度。1对1解耦升级为1对多解耦,提升解耦效率。作用:分发及重定向机制减少依赖与交叉依赖;自注册机制减少输出适配成本。CocoaSetting(iOS)RemoteConfig/资源分发/预取数据分发功能:功能:负责服务端配置数据、资源、预取数据分发。数据解析、存储、解耦与访问一体化分层管理ABTest/Update/UserSetting/Debug数据监听数据变更。
6、作用:通过分发机制降低耦合,保障业务组件资源、数据各有归属。作用:数据集中管理升级为分散管理,各有归属;存储解耦、降低多数据源访问复杂度。程架构拆分-组件化实现路径架构层级设计:合理层级归属,并禁反向依赖;保障底向上的输出复能。12345678三库标准化:标准化,避免对外不同宿主为不致,以及便宿主版本抉择。基础库体系化:避免交叉依赖与对外输出撞库。组件化框架:容器化、分发机制、数据拆分、依赖注框架。服务组件沉淀:多业务复的账号、分享、云控等组件。业务组件化:在有明确的功能定位前提下,逻辑、资源、数据各有归属。有明确的逻辑与接边界。主程壳化:主程仅保留App初始化、容器加载、系统事件分发逻辑。劣
7、化防控机制:架构约束机制,禁下层组件访问上层组件;并明确横向可访问域。百度App程拆分收益可量化部分:55% 90%+5人周 1人周极速版复用率小程序开源输出复用率矩阵同步主线时间不可量化部分: 研发效率提升:体现组件复杂度内敛;组件化框架对并开发的保障;各组件、各技术形态基础能力复。 质量上:组件化、容器化、数据拆分框架具备设计时的隔离性,确保单个组件的故障影响范围内敛到组件内部。 中台化:支撑Feed、发布器、评论等组件中台化输出到西番、柠檬爱美、看多多等产品线。 架构统一:双端统一架构,统一技术方案,降低横向工作项目管理与推进成本。 性能、体积量化单位:逻辑单元、编译单元、资源与数据管理
8、单元、组件是启动速度、体积等指标的量化单位。程拆分没有解决的问题单一仓库的问题全源码的问题IDE问题代码评审权限管理:团队规模快速增长(含合作团队近千人),仓库评审人太多导致代码质量不可控。 编译速度:慢,全量1520分钟/次。 矩阵组装:矩阵产品手动组件依赖管理和组装成本高。 二进制复用:组件没有发布二进制版本机制,矩阵产品难以以二进制方式复用。 架构升级:手动架构调整(组件粒度拆分,架构层级调整)成本高。 合并成本(iOS):IDE通过工程文件组织编译链接,多人协作工程文件合并成本高。 上车排队:排队上车(合并到master)速度慢问题。 组件复用:多产品线单组件粒度仓库粒度源码复用问题。
9、 接入业务支持:接入业务开发模式,壳工程需人力持续支持问题。EasyBox综合解决案EasyBox综合解决案产品线-中央仓库百度代码托管平台进制版本托管平台NexusRemote.spec Overlay.spec Local.specFeed10.111.111.2Feed sourcealbumsourcealbumbrowsercomment 11.3em多仓库管理二进制管理构建系统source.spec bin.specFeed sourcebrowser 11.2album sourcecomment 11.3feed.gitcomment.bin工程组装器comment.binsp
10、ecpublic_headers = resources = dependencies = libraries = feed.specpublic_headers = resources = dependencies = libraries = sources = version = “11.3”commit id=EasyBox综合解决案-多仓库同步、源码/进制映射源码Feed.git Search.git MNP.gitService.bin Service.bin二进制feature_branch_xfeature_branch_xfeature_branch_xfeature_bran
展开阅读全文