淘系技术
2020-01-20
646浏览量
作者|熊华丽(匠修)
出品|阿里巴巴新零售淘系技术部
闲鱼将使用 Flutter 和 FaaS 来建设未来的技术开发体系,这是一项长期的规划,新的技术在现在看来犹如雾里看花,需要我们不断的思考,探索,实践才能渐渐描绘出它的轮廓。本文对此提供一种思考角度,对未来基于 FaaS+Flutter 之上的编程形态做思考,并介绍自己的初步实践。
闲鱼长期在做技术一体化的探索与实践:我们希望使用一门语言,一套技术栈,能让开发工程师在任何场景完成业务开发,实现开发模式和技术栈的统一。这是对开发效率的极致追求,也是对开发人员的深度赋能,更好的释放人员价值,驱动业务成长。
闲鱼已经借助 Flutter 良好的跨栈能力来对 App 上的技术栈做统一,并取得了初步的成果。因此想更近一步的整合前后端,结合 Flutter 来建立统一的技术栈。 FaaS 的兴起给我们带来了新的视角和机会,在后端开发场景中,FaaS 将运行环境和部署运维从日常开发中剥离出来,让开发者更聚焦于业务,降低了后端开发准入门槛,闲鱼基于此已经在做 Flutter+FaaS 的一体化开发体系建设。
技术在发展中会对当前的解决方案不断的抽象,总结和提炼,逐渐分离出其中的变化的部分与不变的部分,让原来的问题变得收敛,开发的关注点会变的更聚焦,开发效率得以提升。这样会出现分层,进而沉淀出基础设施,这也是技术体系演进的一般规律,如图 1-1。
Flutter+FaaS 的技术方案也是如此,我们在当前的中台的基础设施之上建设用于一体化开发的新的基础设施层,让业务开发更加聚焦。由此需要思考两个基本的问题:
Flutter+FaaS 的技术体系作为支撑一体化开发的基础设施该提供什么样的能力?
基于新的一体化基础设施的业务开发是什么样的形态?
这是一体两面的两个问题,只要回答其中一个问题,另一个问题的答案也会变得清晰起来。本文是思考和探索第二个问题。
也许只有到了最后一刻我们才能最终回答这个问题,但是技术总是带着疑问前行,我们先从尝试做顶层做抽象定义开始,然后落地实践,在实践后总结提炼,完善顶层抽象,迭代往复,最终将概念变清晰。
先来看看当前的业务开发形态,如图 2-1,当前在业务开发中几个主要的关注点我大概的归纳为:数据处理,网络通信,状态管理和界面绘制。从这4个点出发,逐一思考,在新的一体化的场景下会有什么变化:
Flutter+FaaS 一体化技术体系下,应用开发应该会更加简单,前后端之间的差异变小,通信更加轻量自然,职责更加聚焦,如图 2-2。
在一体化的场景下,业务可以由一个同学负责前后端的开发,最大限度的减小沟通协作成本。当然,大体量的业务必然需要协作的,但协作的方式有所改变,工作的划分可以由传统的前后端的横向划分,变成前后一体的垂直划分,如图 3-1,协作方式的改变也会影响到我们设计的思路。
基于前面的讨论,我们尝试做了框架设计:首先我们将要开发的业务命名为一个 Story ,即一个 Story 代表一个产品业务,Story 会按照上面垂直划分的方式,将业务划分为一系列的 Scene。Scene 对应于传统意义上的"页面"的概念,但和产品设计上的页面不强求一一对应,如图 3-2-(1)。Scene 是个前后一体的虚拟概念,运行时并没有实体。它由3部分组成,如图 3-2-(2), Model 部分处理业务数据(RawData),Converter 将业务数据转换成渲染所使用的数据(State), 最后 Render 使用渲染数据绘制界面。Model 和 Converter 部署在后端,在 FaaS 函数中运行,Render 运行在客户端,他们之间的数据流是单向的。在实现逻辑处理的时候,统一使用事件,事件优先在本端处理,本端不处理则路由到另一端,如果另一端也不处理,则丢弃,如图 3-2-(3)。
Story 已经开始在闲鱼的业务中落地实践,后期带来实践效果的分享。
要建设完善一体化技术体系不是容易的事情,实践中肯定会有诸多挑战。好消息是 FaaS 和它背后的 Serverless 理念已经是业内潮流了,实践也在如火如荼的进行中。其中,阿里的前端同学集中力量,对 Serverless 已经实践的很深入了,虽然并不是一体化的理念,但实践上很多的思路可以做相互印证和借鉴:
当然,闲鱼也有自己感兴趣探索的方向:
We are hiring
淘系技术部依托淘系丰富的业务形态和海量的用户,我们持续以技术驱动产品和商业创新,不断探索和衍生颠覆型互联网新技术,以更加智能、友好、普惠的科技深度重塑产业和用户体验,打造新商业。我们不断吸引用户增长、机器学习、视觉算法、音视频通信、数字媒体、移动技术、端侧智能等领域全球顶尖专业人才加入,让科技引领面向未来的商业创新和进步。
请投递简历至邮箱:ruoqi.zlj@taobao.com
更多技术干货,关注「淘系技术」微信公众号
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
淘系技术部隶旗下包含淘宝技术、天猫技术、农村淘宝技术、闲鱼、iHome等团队和业务,是一支是具有商业和技术双重基因的螺旋体。 我们致力于成为全球最懂商业的技术创新团队,打造消费者和商家一体化的新零售智能商业平台,创新商业赛道。随着新零售业务的持续探索与快速发展,我们不断吸引用户增长、机器学习、视觉算法、音视频通信、数字媒体、端侧智能等领域全球顶尖专业人才加入,让科技引领面向未来的商业创新和进步。欢迎投递简历至ruoqi.zlj@taobao.com