闲鱼技术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

 


相关文章
|
1月前
|
Java Go 开发者
Docker容器技术简介及其与Go语言的结合点
【2月更文挑战第23天】本文首先概述了Docker容器技术的核心概念和优势,接着探讨了Go语言与Docker容器技术的结合点。通过阐述Docker的轻量级、可移植性和版本控制等特性,以及Go语言在容器化应用中的优势,本文旨在说明两者结合能够实现更高效、灵活的应用开发和部署。
|
1月前
|
Kubernetes 开发者 Docker
基于容器技术的微服务架构
基于容器技术的微服务架构
33 0
|
1天前
|
Cloud Native Linux 开发者
【Docker】Docker:解析容器化技术的利器与在Linux中的关键作用
【Docker】Docker:解析容器化技术的利器与在Linux中的关键作用
|
4天前
|
运维 Kubernetes Docker
这是一项颠覆性技术 - 容器
这是一项颠覆性技术 - 容器
|
13天前
|
运维 Kubernetes Devops
构建高效自动化运维体系:DevOps与容器技术融合实践
【4月更文挑战第15天】 在当今快速发展的信息技术时代,传统的IT运维模式已难以满足业务敏捷性的需求。本文旨在探讨如何通过整合DevOps理念和容器技术来构建一个高效的自动化运维体系。文章将详细阐述DevOps的核心原则、容器技术的基础知识,以及两者结合的优势。此外,文中还将分享一系列实践经验,包括持续集成/持续部署(CI/CD)流程的搭建、微服务架构的应用,以及监控和日志管理策略的优化,以期帮助企业实现快速、可靠且安全的软件交付过程。
|
30天前
|
Kubernetes API 调度
总结归纳Kubernetes | 一站式速查知识,助您轻松驾驭容器编排技术(水平扩展控制)
总结归纳Kubernetes | 一站式速查知识,助您轻松驾驭容器编排技术(水平扩展控制)
60 0
|
1月前
|
运维 监控 Devops
构建高效自动化运维体系:基于容器技术的持续集成与持续部署实践
在数字化转型的浪潮中,企业的IT基础设施和软件交付模式正经历着深刻的变革。传统的运维方式已难以满足快速迭代、灵活扩展的现代业务需求。本文将探讨如何通过容器技术实现高效的自动化运维体系,重点分析持续集成(CI)与持续部署(CD)的实践方法及其对企业运维效率的影响。通过引入微服务架构、容器编排、DevOps文化等概念,我们旨在为读者提供一套全面的自动化运维解决方案,以支持业务的敏捷性和可扩展性。
|
1月前
|
边缘计算 Kubernetes 负载均衡
容器编排技术在云计算中的应用
随着云计算技术的飞速发展,容器编排技术作为一种重要的部署和管理工具,正在逐渐成为云计算领域的热门话题。本文将介绍容器编排技术在云计算中的应用,探讨其在提高应用程序部署效率、资源利用率以及系统可靠性方面的优势,并分析其未来发展趋势。
|
1月前
|
Kubernetes 云计算 开发者
云计算中的容器化技术:Docker与Kubernetes的实践
云计算中的容器化技术:Docker与Kubernetes的实践
119 0
|
1月前
|
存储 调度 块存储
十二年磨一剑:三代架构演进,打造高性能、低成本的块存储!
上周,全球计算机存储顶会USENIX FAST 2024 在美国加州圣克拉拉召开,继去年获得国内首个FAST最佳论文奖后,凭借在分布式块存储上的创新,阿里云新作再次斩获FAST大会最佳论文奖。这也是国内唯一一家连续两年获得FAST最佳论文奖的科技公司。
104619 104