-
降低新人成本
-
提升匹配效率
-
闲鱼与手淘的卖家差异:非专业的个人卖家,利益驱动弱。
-
发布产品差异:为保证市场供给,只能坚持轻发布。
-
商品差异:结构化信息少,没有历史累计行为。
-
试错期业务核心问题:业务不断探索适合的商业模式
-
架构核心关注点:提升响应速度,快速支持业务上线
-
架构核心原则:以质量换取速度,可以牺牲一点线上质量(业务可接受范围)来换取更快的响应速度
-
URL Router:所有请求路由到一个H5的链接,通过URI Schema重定向到真正页面,如果对应的native没有开发出来,就用H5版本来实现,解决安卓与IOS不同步的问题。
-
开关中心:通过开关控制页面路由,页面入口是否开启,分版本控制,参数变更等改动。
-
Poplayer:无需发版的情况下在已有的Native界面上弹出H5的部署容器,来满足运营随时创建活动并需要一个活动入口的需求。
-
业务核心问题:隐约看到商业模式,需要加速验证,扩大规模
-
架构关注点:提升效率(为了有机会去做更多事情,非降低整体成本),建设更多能力验证业务方向
-
架构演进方向:前后端的协议、工具的自动化服务端通过Mbaas(服务端提供基础的数据源(商品、用户、搜索、互动),让客户端/前端通过类SQL的描述一次性获取自己想要的数据,后端不需要增加接口)来实现活动、feeds投放的自动化。将更多精力投入到本地化、个性化、数据能力(与算法、推荐、搜索打通)的建设中。
-
对外整体连接协议的梳理,在容器这端演化成Service Bus(类似服务端的ESB),对具体的实现进行封装, 以方便后续基础能力的可替换。
-
组件库的建立,新做一个页面的时候,能通过现有的UI组件进行简单组装,不需要从0开始搭建。组件与服务端打通,组件组装逻辑与数据直接由服务端完成,客户端负责解析与渲染。因此这个时期客户端更多的工作是支持交互的基础的UI组件和动态适配性。
-
业务核心问题:需要让更多的二方、三方参与到共享经济平台的建设中,但是平台生态建设又超出了闲鱼自身的能力
-
架构核心关注点:扩展性(具备接入业务的能力)、业务隔离(已接入业务平稳运行)、平台基础能力建设(业务更好的发展)
-
架构原则:做一些更基础的规划,然后把更多的可能性、动态性留给二方或者三方完成
-
实时选品投放能力--马赫:解决因闲鱼商品特性(结构化信息少,新品成交占比高)导致传统离线选品转换率差的问题。
-
实时线上故障定位能力--神探:解决类闲鱼规模系统因依赖多、场景多,导致线上问题频发、问题定位投入成本高的问题。核心思路是对系统每一次错误的请求链路进行实时采集、分析、聚合再可视化展现,将整体故障定位过程变成自动化。
-
端上同学离业务越来越远,服务端同学没时间做底层领域沉淀。
-
各端研发之间存在大量的协同, 整体研发效率低下。
-
招人也难了,需要同时招多个技术栈的同学在这种背景下, 我们的关注点回到研发效率上,从整体研发架构、研发模式出发, 思考什么样的架构演进、关系重塑才能适合当前的业务形态。我们希望探索出适合“ 闲鱼这样规模的具有独立APP” 的高效研发架构, 形成云端一体化的研发能力,支持一云多端的发展。
-
如何消除云端技术壁垒?首先要统一技术栈,其次端同学对云的思维模式、知识储备上的差异,需要有办法消除。
-
如何使工作总量减少 ( 1+1<2 )?一体化下需要使总工作量降低,不是简单的进行工作量转移。
-
如何促进生产关系重塑?生产力发生变化,需要建立新的生产关系。
-
统一技术栈: Dart具备服务端语言特点,强类型,支持异步与并发,甚至更快的启动速度,因此作为服务端的server完全没有问题。Dart落地过程中更多的解决的是生态的问题(阿里的大部分生态都是基于java来建设的,例如中间件、消息、远程调用)。我们主要通过通过C++扩展、SideCar方式做桥接,Service Mesh来解决。
-
云端差异抹平: 通过Faas , Baas等无服务器能力的建设, 抹平除写代码外的其他差异性(运维、故障定位等),使得客户端同学能写服务端;通过UI2Code(根据图片生成UI代码),页面代码模板化(页面容器,数据管理)使得服务端写客户端
-
一体化总体效率提升:以往的架构是云、端分开架构的,一体化后下沉跨云端的研发框架Nexus,通过框架、工程体系的支持, 消除协议层, 重新定义UI与逻辑分层, 带来了总工作量1+1<2
-
关系重塑:领域下沉能让原来服务端同学更加专注领域建设, 使领域层更加稳定, 让业务层与领域层的变化比例,从当前的2:1,提高到5:1 甚至更高。让大家的关注点都集中在自己的范围内。
-
下单页有着复杂的渲染、交互逻辑,之前大部分逻辑都是在端上,需要两个客户端+一个服务端的同学来维护。
-
资源均衡:将客户端界面从 IOS、Android两端统一成了Flutter, 后续只需要一个同学维护即可(原来需要两个开发人员),也不会出现逻辑不一致的情况。
-
协同效率提升:端上由两端协同提升到无需协同,云端由接口协议约定演化成现阶段的一体化协议,未来可将协议下沉到框架实现云端无接口约定
-
业务闭环&人员成长:原来云端分离的业务逻辑全部下沉到了Faas(Dart),将原来分散在端与服务端的逻辑进行归一,有机会做更多的规划建设,同时也是端的同一个同学来维护,给这个端的同学带来更大的成长空间。
-
领域专注:Faas层调用底层领域服务来完成自己的业务,原来服务端的同学更多投入到交易能力的建设上。
-
框架下沉:跨云端业务研发框架Nexus:寓意着能将客户端与服务端连接在一起。核心思想就是 将UI与逻辑分离,框架限定了端上只负责UI与状态的存储, 所有的逻辑都在Faas中完成。非常适合类似下单页的领域稳定的的场景。
闲鱼团队是Flutter+Dart FaaS前后端一体化新技术的行业领军者,就是现在! 客户端/服务端java/架构/前端/质量工程师面向社会招聘,base杭州阿里巴巴西溪园区,一起做有创想空间的社区产品、做深度顶级的开源项目,一起拓展技术边界成就极致!
*投喂简历给小闲鱼→guicai.gxy@alibaba-inc.com
开源项目、峰会直击、关键洞察、深度解读 请认准 闲鱼技术