zoukankan      html  css  js  c++  java
  • ArchSummit分享 | 高德地图App架构演化与实践

    讲师介绍


    郝仁杰,高德地图无线开发专家。在7月13日落幕的2019年ArchSummit峰会上就高德地图近几年的App架构演化和实践进行了分享。

    背景概述


    高德是国内领先的数字地图内容、导航和位置服务解决方案提供商,端上分手机和车机两条主线。近年来,高德业务迅猛发展,人员规模急速扩张,代码量急剧膨胀,如何提高团队高效并行作战的能力,端架构在一致性和动态性方面做了很多尝试:从最初的双端原生单体架构,到地图引擎下沉C++,再到动态UI框架的建设,收到了一定的成效,但面对业务持续的高速发展,依然还有很多方面需要继续完善。

    为了让业务开发有节奏的进行,项目上每年会制定一些公车计划。公车就是每个App版本,货物就是对应的产品功能,货物组装就是功能开发,公车计划即每年的发版计划,公车按照指定的时间来,把组装好的货物拉走。但由于双端代码差异较大、耦合严重、复用率低、职责不清晰、平台工具简陋等问题,公车并无法按照计划拉走货物,货物组装慢且质量差,迫使公车等待,导致整个版效周期长达3个月,崩溃率也高达万分之八,公车变成了伪公车。

    执行方案


    为了使伪公车变为真公车,需要解决双端差异问题、代码耦合问题和平台工具落后等问题,来提高稳定性、并行性和高效性。2018年端上通过双端融合、组件化和研发中台建设来达到目标。

    双端融合采用下沉C++、上漂动态UI和双端拉齐的方式来实现。下沉C++,实现了跨端的同时提高了性能;上漂动态UI同样实现了跨平台,且降低了开发门槛,让开发更简单,效率更高,同时也为未来动态化做好铺垫;双端拉齐更多的是借鉴双端的优势做到融合,同时保留双端的差异作为扩展,做到尽量保持一致的同时,也很好地兼容了Android/iOS平台的特性。

    组件化参考了手淘Atlas、BeeHive和网易LDBusMediator等成熟的容器方案并融合了高德自身的业务特点和设计思考,定义了容器、模块、微应用、微服务和页面路由。借鉴了Android组件化设计思想,让业务专注于自身需要的服务,而无需关注其它。

    通过架构的分层、分组,让模块的归属、职责清晰化。

    容器为模块提供了其内部的结构框架、架构分层、分组让模块找到自己的位置,二者结合实现了端上的组件化,解耦了代码、提高了功能的复用率,也为业务并行开发打下基础。

    研发中台建设根据当前的公车流程,结合组件化方案进行细分,制定了新的产、研、测、项详细流程,并将流程中台化,降低了风险、提高了效率、实现了研发并行。

    实践收益


    双端融合,解决一致性问题,提高了App的稳定性;组件化,解决代码耦合、提高复用率;研发中台建设,将流程自动化、标准化,同时结合组件化,实现了开发阶段的并行,做到了真公车。发版周期缩短了一半。

    通过针对性代码质量治理,加以平台管控,使得崩溃率从万分之八降低到十万分之八。

    通过工具升级、组件化后基于产物的集成,打包时间从40mins+降低到8mins。

    未来展望


    2018年,高德客户端通过一系列架构治理,从伪公车变成了真公车,但这只是近几年架构演进的一个阶段性成果。未来,我们要发挥动态UI的优势,让业务真正动态化起来,从公车时代跨入到Feature Team时代,让公车变成一条条公路,每个Feature Team就是一个小汽车,按照自己的节奏装好货物后,就可以在修好的公路上自由的行驶,更好地做到灵活、并行和高效!

    结语


    欢迎大家扫描高德技术公众号关注更多高德技术及细节,也欢迎大家加入高德,与我们一同探索高德地图App架构的演化之路!

    关注高德技术,找到更多出行技术领域专业内容

  • 相关阅读:
    QFramework 使用指南 2020(二):下载与版本介绍
    QFramework 使用指南 2020 (一): 概述
    Unity 游戏框架搭建 2018 (二) 单例的模板与最佳实践
    Unity 游戏框架搭建 2018 (一) 架构、框架与 QFramework 简介
    Unity 游戏框架搭建 2017 (二十三) 重构小工具 Platform
    Unity 游戏框架搭建 2017 (二十二) 简易引用计数器
    Unity 游戏框架搭建 2017 (二十一) 使用对象池时的一些细节
    你确定你会写 Dockerfile 吗?
    小白学 Python 爬虫(8):网页基础
    老司机大型车祸现场
  • 原文地址:https://www.cnblogs.com/amap_tech/p/11274675.html
Copyright © 2011-2022 走看看