架构演进背景
闲鱼交易链路业务作为应用关键一环,有自身特性。业务相对固化,既要保证性能与用户体验,又要能快速承接新增业务类型、状态和交易操作。视觉变化少,对页面组件动态性需求没那么强烈。因此,架构演进势在必行,目的是在保证现有性能基础上,不断提升研发效率。
支持动态化能力
闲鱼采用新策略支持动态化能力,端侧仅负责页面渲染,业务逻辑都放到云端处理。这样的好处很明显,端侧压力减小,能专注做好页面呈现,而云端可以整合资源更好地处理复杂业务逻辑,既保证了架构的灵活度,又为后续承接新业务打下了坚实基础。
新研发模式
闲鱼推行新研发模式,前端深入业务,实现服务端页面渲染相关逻辑,而后端领域下沉,专注做领域建设,达成云端一体。在这种模式下,服务端分层更清晰,包括底层数据模型、闲鱼 C2X 交易域和业务解决方案。各层间紧密配合,根据不同业务特性和逻辑提供数据。
端侧处理机制
端侧分为两层,业务数据解析负责将后端业务数据依据不同业务类型和交易状态进行解析、整合,转化为页面渲染协议 ViewModel。同时将页面区块化,抽离出通用组件,根据 ViewModel 直接渲染。这些通用组件的应用,提高了端侧开发效率,降低重复劳动。
2019 年改进举措
2019 年,闲鱼在前期基础上有重大改进。先是用 Flutter 作为跨平台解决方案,解决双端逻辑不一致问题,又通过 FishRedux 进行页面区块化改造。交易操作借 CommonAction 实现逻辑一致,构建端上交易操作中台,为多业务场景调用,此时业务层与渲染层分离更清晰。
瓶颈突破与优化
前面客户端将业务逻辑完整上云后出现瓶颈,后端需更多精力做领域建设和沉淀,少关注页面渲染交互逻辑。闲鱼让原客户端同学在 Server 完成业务聚合和渲染协议解析,实现逻辑归一,完成端到端研发闭环,达到资源配置优化,提升整体架构性能。
如今,闲鱼交易链路在云端一体阶段不断深耕,下单页面已落地新架构,原本前后端 3 人开发的工作现仅需 1 人,显著减少协同成本、提升研发效率,其他场景也在规划落地中。想问问大家,你觉得闲鱼这种架构演进模式,对其他平台有没有借鉴意义?