Nexus协议,闲鱼一体化开发的幕后玩家

本文介绍了闲鱼采用的Flutter + FaaS云端一体化开发模式,重点阐述了Nexus协议的设计和作用。Nexus协议是基于Action的,提供客户端和FaaS系统间的调用,实现了语言一体化和开发模式的一体化。通过事件驱动和逻辑归一,FaaS可以直接指挥客户端UI变化,简化了传统前后端分离的开发模式。LogicEngine作为Action的调度器,负责执行调用。未来,Nexus协议还将升级为更类型安全的协议,并实现双向调用,进一步增强一体化体验。
摘要由CSDN通过智能技术生成

背景

Serverless是这几年兴起的一个概念,它希望开发者更加专注于应用逻辑本身,而不是被琐碎的基础设施细节所”绑架“。而FaaS是Serverless的一种比较好的实践方式。它拥有更加轻量、事件驱动的特点。

闲鱼选择使用Flutter + FaaS体系来实现云端一体化的开发模式也正是看中了Flutter和FaaS技术本身都是轻量的、面向应用的技术。与一体化本身希望开发者尽可能关注整体的业务逻辑非常契合。

Flutter + FaaS的云端一体化开发模式已经在闲鱼中被使用了一段时间。同事们之前也有过一些文章来介绍一体化开发在闲鱼演进和落地的过程。在这些文章中,都提到了 Logic_engineNexus_Framework等字眼。它们一直默默地在业务开发同学的身后,支撑着一体化的落地和发展。

今天,我们就来介绍一下这个一体化的幕后玩家--- Nexus协议,以及基于它衍生出来的框架和库。

Nexus协议的来源

一开始说要做Flutter + FaaS一体化开发的时候,我们对”一体化“这三个字的认知相对比较模糊,只是知道端侧的同学可以用Dart这门语言来写FaaS函数,这样的语言上的一体化。对于FaaS所能做的事,也仅仅停留在前端实施已久的BFF层面。那个阶段,对于要做些什么,还是比较迷茫的。

阿里的同学经常说:你不知道能做些什么,是因为想得还不够清楚。

本着这样的想法,一体化小组经常聚在一起讨(liao)论(tian),不管Flutter + FaaS有没有一体化,反正我们小组先”一体化“了再说。

整个一体化的概念在讨论中慢慢变得清晰,首先我们对于一体化进行了定义,它应该是这样的一个形态:

  • 语言一体化

  • 开发模式与架构一体化

最终达到开发Flutter页面和开发FaaS无明显gap,像在开发一整个应用的体验。

语言一体化

由于Flutter本身是以Dart作为开发语言,那么我们自然也选择它作为FaaS的开发语言。闲鱼在之前已经实践过了Dart Server这种开发方式,在Dart runtime、相关开发工具方面有非常深厚的沉淀。组内的同学将这个runtime经过修改之后移植到了集团的FaaS平台Gaia上。

开发同学不仅可以在端上使用hotreload进行页面快速调试&#x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值