现状痛点凸显
在当下无线技术发展中,跨平台需求十分强烈。团队招聘得斟酌 Android、IOS 配比,一个业务要在两端都编写代码,还得确保双端逻辑一致,测试也得进行两遍。传统的基于 Native+Web+服务端的开发方式,慢慢暴露出瓶颈,整体开发和运维效率低下,稳定性也差。
聚焦研发效率
鉴于这些问题,我们的关注点重新回到研发效率上。从整体研发架构和研发模式入手,思考什么样的架构演进和关系重塑,才能适配当前的业务形态。我们期望探索出适合“闲鱼这样规模的具有独立 APP”的高效研发架构,形成云端一体化的研发能力,来支持一云多端的发展。
解决代码耦合
客户端这个时期更多是支持交互的基础 UI 组件和动态适配性,核心是解决因业务发展带来的代码耦合问题。把变化的部分以扩展点形式开放,让具体业务自行实现,明确怎么做以及谁去做。Swak 的扩展点实现支持远程调用,使业务实现应用级别的隔离,比传统的分包、分模块隔离更彻底。
跨平台方案选型
闲鱼在跨平台方案选型时,充分对比了 Flutter 与 RN 的差异性和优缺点。考虑到“跨平台与高性能是当前的核心诉求”,且团队内 native 技术栈的同学较多,最终选择了 Flutter 作为跨端解决方案。不过 Flutter 两端统一后,客户端与服务端技术栈未统一,存在大量协同工作,端、云同学无法真正一体化打通。
思考一体架构
鉴于上述问题,我们开始思考构建一体的架构,让一个同学能负责云到端的完整业务,形成业务闭环。这样做不仅能提升效率,还能为业务开发同学提供更大的成长空间,让他们能完整且专注地思考业务。目前,这种一体化的研发模式已在闲鱼多个场景落地。
架构演进思考
回顾闲鱼从快速试错期到发展期、平台期,再到云端一体化的整体架构演进过程,我们发现架构的演化优于一步到位。软件工程尤其是业务架构非常复杂,需要随业务变化而变。明确当前业务特点和核心问题才是设计的根本,不符合业务的架构再先进也没用。
大家觉得在自己所在的研发场景中,云端一体化架构能带来多大的改变?不妨点赞分享文章并留言讨论!