闲鱼技术2022年度白皮书-KUN主题-三代终端容器KUN的首次大考【架构演进】(上)

简介: 闲鱼技术2022年度白皮书-


 作者:叶遥颂晨


 

闲鱼号在闲鱼业务中一直承担着非常重要的角色,它既是卖家组织商品的货架,又是达人自我表达的载体,既是大V私域运营的阵地,又是小铺开店经营的门面。它是闲鱼各产品线的交汇点,号店浑然一体,一定要类比的话,它更像是抖音/小红书个人主页+淘宝店的综合体。

 

image.png


闲鱼号是个用户高频访问的场景,产品Feature快速迭代,体验上备受关注,当下面临的问题:

 

古董级高度耦合的业务代码、多业务线并行的日常需求时常让前端成为交付瓶颈

基于Weex 1.0渲染附带着大量的双端不一致问题和体验顽疾,也限制了交互创新

 

最近我们对闲鱼号做了架构升级,相信很快就会和大家见面,这里做个小结,概括下来这次升级直接带来的收益:

 

 

1. 体验

 

中高端机上维持秒开,同时:

 

新增微信朋友圈式的下拉封面交互,手势体感更加连贯,个人表达更加充分

新增贴近原生体验的下拉刷新交互,提升APP体验一致性

优化嵌套滚动的交互体验,纵划横划更加自然顺滑,逛起来更高效

 

2. 可维护性

 

可维护性的提升是「产品->设计->实现」综合优化的结果,具体:

 

产品侧重新梳理所有Features,抽象并制订同类功能的表达原则,确定各业务的表达方式、优先级

设计侧综合考虑模块权重、所属角色、用户比例、扩展方式等因素确定设计框架

技术侧通过组件化拆分+全局状态的方式解耦业务逻辑,提高需求并行效率

 

一、 为什么要升级

 

闲鱼号项目已有超过5年历史,目前业务较难向前迭代,原因主要归结为端容器能力受限和架构腐化两方面。

 

1. 端容器能力受限

 

闲鱼号目前是前端页面,容器使用Weex1.0(后文统称Weex)。Weex两年前就少有维护,其既有问题使得承载当下业务有以下问题:

 

难维护。闲鱼号存在较多的舆情顽疾,究其原因,Weex不是标准前端容器,在布局、组件、动画、事件等方面与预期不一致。一部分绕道解决,一部分只能保持现状依托升级容器解决

难做好体验。业务定位使闲鱼号在体验上有较高要求,但“这个交互是Native实现的,Weex做不了”不时会出现在业务迭代的技术评估中。

 

 

2. 项目架构腐化

 

闲鱼号有较高的业务复杂度和较厚重的历史上下文。承载了人设、电商、内容、信任等领域的业务,同时存在多维度视图(主/客态、B/C态、内容/电商态),多年下来已发展到5.x版本,技术架构仍未进行过本质升级,相关问题已严重影响项目日常维护和迭代,主要体现在:

 

1) ViewModel过于复杂。ViewModel是大管家,统一格式化、将数据派发到模块。在平铺了15+模块数据的场景,ViewModel改动不时“牵一发而动全身”

 

image.png


2) 缺乏统一的状态共享方案,数据流混乱。组件间通信存在Vue事件体系、自建事件体系、全局controller、自建状态共享体系多种方式

 

二、 升级目标

 

对应上述问题,闲鱼号迎来了技术架构升级。升级核心目标是,未来1-2年技术架构不成为项目迭代、维护的吞吐瓶颈,支撑业务快速、平稳、创新的发展,能持续保持高标准体验。其中:

 

容器能力:升级渲染容器,提升容器能力边界。明显减少存量体验顽疾,多场景协助业务、设计完成理想的交互、视觉体验

项目架构:模块解耦,打造清晰的数据流。明显提升迭代效率,减少影响面回归成本和压力,降低不同模块协作冲突次数

 

其中针对项目架构部分非本文重点,主要通过模块化前端后数据协议、统一状态管理方案进行了解决。后文继续介绍容器能力部分的思考和实践

 

接下篇:https://developer.aliyun.com/article/1225888?groupCode=idlefish

 


相关文章
|
8天前
|
边缘计算 Cloud Native 安全
构建灵活高效的下一代应用架构 随着企业数字化转型的加速,云原生技术正逐渐成为构建现代化应用程序的关键支柱。
随着企业数字化转型加速,云原生技术逐渐成为构建现代化应用的关键。本文探讨了云原生的核心概念(如容器化、微服务、DevOps)、主要应用场景(如金融、电商、IoT)及未来发展趋势(如无服务器计算、边缘计算、多云架构),并分析了面临的挑战,如架构复杂性和安全问题。云原生技术为企业提供了更灵活、高效的应用架构,助力数字化转型。
29 4
|
6天前
|
Kubernetes Cloud Native 持续交付
云端新纪元:云原生技术重塑IT架构####
【10月更文挑战第20天】 本文深入探讨了云原生技术的兴起背景、核心理念、关键技术组件以及它如何引领现代IT架构迈向更高效、灵活与可扩展的新阶段。通过剖析Kubernetes、微服务、Docker等核心技术,本文揭示了云原生架构如何优化资源利用、加速应用开发与部署流程,并促进企业数字化转型的深度实践。 ####
|
3天前
|
监控 安全 Serverless
"揭秘D2终端大会热点技术:Serverless架构最佳实践全解析,让你的开发效率翻倍,迈向技术新高峰!"
【10月更文挑战第23天】D2终端大会汇聚了众多前沿技术,其中Serverless架构备受瞩目。它让开发者无需关注服务器管理,专注于业务逻辑,提高开发效率。本文介绍了选择合适平台、设计合理函数架构、优化性能及安全监控的最佳实践,助力开发者充分挖掘Serverless潜力,推动技术发展。
10 1
|
8天前
|
缓存 前端开发 JavaScript
前端的全栈之路Meteor篇(二):容器化开发环境下的meteor工程架构解析
本文详细介绍了使用Docker创建Meteor项目的准备工作与步骤,解析了容器化Meteor项目的目录结构,包括工程准备、环境配置、容器启动及项目架构分析。提供了最佳实践建议,适合初学者参考学习。项目代码已托管至GitCode,方便读者实践与交流。
|
8天前
|
运维 Kubernetes 开发者
构建高效后端服务:微服务架构与容器化技术的结合
【10月更文挑战第18天】 在数字化转型的浪潮中,企业对后端服务的要求日益提高,追求更高的效率、更强的可伸缩性和更易于维护的系统。本文将探讨微服务架构与容器化技术如何结合,以构建一个既灵活又高效的后端服务体系。通过分析当前后端服务面临的挑战,介绍微服务和容器化的基本概念,以及它们如何相互配合来优化后端服务的性能和管理。本文旨在为开发者提供一种实现后端服务现代化的方法,从而帮助企业在竞争激烈的市场中脱颖而出。
12 0
|
11天前
|
存储 Docker 容器
docker中挂载数据卷到容器
【10月更文挑战第12天】
35 5
|
4天前
|
存储 Kubernetes C++
Kubernetes VS Docker Swarm:哪个容器编排工具更适合你?
随着容器技术的快速发展,容器编排工具成为了现代软件开发和运维的重要环节。在众多容器编排工具中,Kubernetes和Docker Swarm无疑是最受欢迎的两个。本文将从技术特性、易用性和社区支持三个方面,对Kubernetes和Docker Swarm进行比较,以帮助您选择更适合您需求的容器编排工具。
19 3
|
5天前
|
存储 缓存 Docker
docker中挂载数据卷到容器
【10月更文挑战第16天】
15 2
|
7天前
|
存储 关系型数据库 MySQL
|
8天前
|
存储 Docker 容器
docker中挂载数据卷到容器
【10月更文挑战第13天】
15 2

热门文章

最新文章