Code前端首页关于Code前端联系我们

美团外买亚容器生态建设实践Flutter可以使用如下

terry 2年前 (2023-09-23) 阅读数 69 #移动小程序

Flutter是一种革命性的终端间解决方案,一经推出就受到了相关专家的广泛关注。为了更好地平衡团队的开发效率和稳定性,美团收货端团队于2018年开始研究和部署Flutter,并在用户端和商户端验证其可行性,并确认其在中后端业务场景的实用价值。 。已在美团点评多个部门的各类中后端企业大规模上线使用,提高了研发效率。在此期间,美团外卖团队积累了大量的实践经验。

美团点评专家、陈航、老师的先进技术将在12月20-21日GMTC全球大前端技术大会(深圳站)上呈现《美团外卖 Flutter 容器化生态建设实践》。会前,InfoQ 采访了陈航老师,了解美团外卖如何利用新技术提高组织的开发效率,为公司带来价值?希望美团外卖的实践经验能够为大家构建Flutter容器生态、大规模使用Flutter提供参考和思路。 GMTC:简单介绍一下你自己以及你的团队负责的工作。

陈航:我是美团配送终端团队的技术业务经理,也是极客时代的王牌《Flutter 核心技术与实战》。我2015年加入美团,经历了客户端和商家的几个发展阶段。在此期间,我推动了移动终端架构的开发,进行采集、在线运维、终端技术集成等相关工作。

我们团队的主要职责是为商户提供稳定可靠的生产运营工具,支撑整个外卖连接的高可用并保持其稳定发展。团队的技术栈普遍比较丰富,也比较新,涵盖Android、iOS、React、Flutter、React Native、NW等。 GMTC:自从您加入美团以来,您经历了配送客户端和商家端的几个发展阶段。哪个阶段给你印象最深,为什么?

陈航:不同层次的思考和决策的过程也许更令人印象深刻。从2015年到现在,整个外卖市场发展非常迅速。在行业竞争激烈、业务快速发展的背景下,美团外卖不仅是一家闭环的交易公司,更是一个流量平台。因此,对于终端集团来说,我们的重点是如何促进各个业务节点的复用,在保证主要核心业务稳定快速发展的同时,打造一个成熟的标准化技术平台来支撑新企业。在这个方向上,我们将工作目标分为两个层次和支持体系:

  • 1。层面:标准化基础能力和交易环节,多层次升级移动终端架构,促进业务复用;
  • 第二级:推动终端技术集集成和周边工具支撑建设,减少需求交付环节之间信息和资源的流失;
  • 支撑体系:聚焦问题发现、定位、解决,持续建立终端监控、日志、容灾系统,保障业务高可用性。

支撑体系以及第一阶段工作的思路和逻辑,可以看我们在美团科技博客发布的文章《美团外卖客户端高可用建设体系》《美团外卖 Android 平台化架构演进实践》《美团外卖 iOS 多端复用的推动、支撑与思考》;而第二层的工作主要是为开发者赋能。这就是如何对终端能力和研发流程进行抽象,用最完整的技术栈和工具链隔离每个应用、每个终端系统、每个研发环节的差异,为业务开发同学提供统一、标准化的能力。 。其中,跨平台是一个重要的工具。 GMTC:美团外卖终端团队从 2018 年开始研究和部署 Flutter。为什么我们决定在这么短的时间内推出它?现在怎么样了?

陈航:为了解决需求交付连接丢失的问题,我们不断监控业界最新的跨平台解决方案,也大规模落地了动态模板、RN等技术。这些解决方案解决了强大的实际业务场景中的研发效率和发布效率问题。但由于其实现机制的限制,在可扩展性、性能和质量等维度与原有的存在差距。只能根据业务特点来实施。这是有取舍的,所以很难扩展到基本的高频链路场景来满足我们高性能/高稳定性/不退化的研发需求。 2018年中,我们考察了多平台解决方案的另一典型代表Flutter的原理和实践,并针对上述问题分别在用户侧和商户侧进行了可行性研究,最终确认:其高保真高性能的技术特性在商户的中后端业务场景中具有实用价值,同时也鼓励多个中级中心站点的实施,节省研发成本。美团科技博客《Flutter 原理与实践》上发表的一篇文章就是关于这一时期的。典型输出。

为了方便企业其他类似场景的实际使用,我们根据自己的实践经验构建了MTFlutter Flutter容器工具链。 MTFlutter作为源自美团外卖、服务于整个企业的容器采集解决方案,被美团点评多个部门的各类中后端企业在线广泛使用。 GMTC:现在很多大厂商都在用Flutter。您认为它们在 Flutter 应用程序方面有什么共同点?

陈航:任何技术选择都不是孤立的技术问题,最终都必须服务于业务目标。移动互联网经过十几年的发展,市场化红利已经达到顶峰,企业成长进入了领先和创新引领的阶段。这两个层次的特点是提供更便宜、效率更高的服务,并通过组织或创新获得更高的市场份额。这也与终端技术的发展方向类似。从目前来看,他们在终端技术的三个永恒主题:效率、质量、性能上都面临着类似的问题。 Flutter的方案抽象程度足够高,在原理和作用机制两个维度性能均领先于同类产品。因此,它是目前业界最流行的。

同样重要的是不要盲目追随新技术,而是要充分理解它们的原理和最佳实践使用场景,以便您知道它们可以解决您团队中的哪些具体问题。

Flutter 有很多优点,但也有明显的缺点。由于官方不支持动态发布周期,与Native类似,增加包大小的效率并不理想。没有一种放之四海而皆准的技术解决方案,因此应根据业务场景明智地评估技术的选择。对于美团外卖终端团队,我们会优先考虑能力要求低、动态要求强的运营业务场景的RN;我们对性能、稳定性、多端体验都有很高的要求,对动态没有特殊要求。对于要求较高的中后端业务场景,我们更喜欢Flutter。 GMTC:美团Flutter容器生态的研发背景是怎样的?

陈航:虽然Flutter提供了一套相对丰富的开发框架、IDE插件、调试器等开发工具,但从工程角度来看,企业级应用迭代仍然需要与大量现有移动端对接基础设施和工具(如大团队协作、CI、原生组件能力、运营发布基础设施等)可以支持企业级业务持续交付和在线运维。为了将Flutter的标准工作流程与美团点评的原生技术栈融合起来,我们对Flutter的研发阶段(初始化、开发/调试、构建、测试、发布、集成)进行了抽象,并将其作为工作流程级源项目。 Flutter模块的上游开发被抽象为源码依赖的工程管理,并提取相应的工作流程,以可重复、可配置的方式统一管理各个阶段。在这个过程中,我们汇集了公司多个基础设施团队来支持和适配其开发生态,提供项目模板、脚手架、核心能力插件、自动可视化草稿代码生成、混合开发集成工具、Pub服务、Developer能力等服务,如打包构建、资源托管、监控、运维等。 GMTC:构建Flutter美团外卖容器生态最大的挑战是什么?怎么解决这个问题呢?

陈航:前期主要是确定Flutter的技术定位,在现有终端技术体系内共享其他跨平台解决方案的服务边界。在此期间,我们进行了半年多的技术研究和技术储备,并通过大量的灰度测试和验证,从原理和实践的角度确定了业务技术选型的标准,最后明确了构建Flutter容器的思路和说明的要求。

在实施时,大多数问题都与兼容性和定制有关。 Flutter 官方 SDK 底层的工具链和周边基础设施相对较新。但为了兼容低端机器和遗留操作系统,我们实际的业务开发生态系统往往比较老旧。我们在连接公司内部的终端基础设施时遇到了很多兼容性问题。低成本机器处理器架构、Java 8语法特性兼容性、Gradle API定制、引擎加载异常、崩溃等问题对于个别型号。在内部,我们fork了Flutter SDK一套,对这些问题一一修复和改进,并通过一套编译脚本引入了从编译源码到上传到美团云的自动化流程,最后打包到MTFlutter SDK中,并且用户实际使用MTFlutter平台提供的命令时,可以一键安装。 GMTC:未来美团外卖Flutter生态容器结构的设计会有新的变化吗?下一步是什么?

陈航:基本工作思路不会改变。我们将继续专注于推动业务重用以及如何最大限度地减少需求交付链路之间的信息和资源损失。

在业务复用方面,我们将持续投入业务组件库、页面模板,开发一体化解决方案,提高易用性,从而降低使用成本;同时减少连接之间的信息和内容传递需求的资源消耗,我们不会单独考虑Flutter生态,而是思考如何将其与其他终端技术集成,比如通过翻译统一上层DSL——时间或运行时转换代码,以便开发人员可以根据需要进行选择。底层渲染技术节省了技术栈切换带来的资源浪费。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门