随着业务持续扩张,传统的开发模式遭遇了发展障碍,那么闲鱼该如何突破这一困境?又该如何通过技术架构的升级来提高研发效能,并实现云端的全面整合?这些问题值得我们共同探讨。
传统开发的痛点
如今,无线技术已至成熟阶段,对跨平台功能的需求日益迫切。招聘团队时,需关注 Android 和 IOS 的比例。一项业务需在两个平台同时开发,且要确保两端逻辑保持一致,测试工作亦需进行两次。传统的 Native、Web 和服务端结合的开发模式,效率低下,稳定性不足,难以跟上业务发展的步伐,就如同在泥潭中艰难前行。
业务规模增长,代码间的相互依赖变得明显,导致整体开发与维护效率不高。这种状况让研发工作如同陷入了一张密网,处处受限,难以发挥,极大地制约了业务的发展。
聚焦研发效率
在这种情形下,我们必须将注意力重新聚焦于研发效率的提升。首先,我们要审视研发的整体架构和模式,研究如何进行架构的演变和关系的重建,以适应现行的业务需求。显然,不存在一劳永逸的解决办法,研发架构必须随着业务的发展而不断调整。
闲鱼这样的平台拥有独立APP,其研发架构的高效性极为关键。我们希望建立起云端融合的研发体系,实现一云多端的发展模式,这样开发者就不必受限于不同平台之间的差异,从而能更高效地推进业务的发展。
解决代码耦合
为了解决代码间的紧密联系问题,我们采取将需要变更的部分以扩展点的形式呈现,允许业务部门自主完成具体实现。这种方式既明确了操作步骤,又指出了责任归属,从而显著减少了代码间的相互依赖,使得开发过程更加灵活便捷。
Swak的扩展点功能支持远程调用,这使得应用能够实现更高层次的隔离。相较于传统的分包和模块隔离方法,它更为彻底。这就像为不同的业务领域搭建了各自的独立空间,彼此之间不会相互干扰。因此,系统的稳定性和可维护性得到了显著提升。
跨平台方案选型
跨平台成为行业发展的潮流,但在选择具体方案时却面临挑战。闲鱼在众多选项中,对 Flutter 和 RN 的特点、优劣进行了详尽比较。考虑到跨平台和高效性能是关键需求,以及团队中熟悉原生技术的成员较多,我们最终决定采用 Flutter 作为跨平台开发方案。
Flutter 实现了前端和后端的统一,解决了双边开发中的许多问题。尽管客户端和服务器端执行相同的业务,但它们的技术架构并不一致,且需要大量协作,前端和后端团队并未完全实现一体化,仍有改进的余地。
云端一体化的思考
针对终端与云端协同的挑战,我们着手探讨是否可以打造一个统一的框架,使得一名同学能够独立负责从云端到终端的整个业务流程,实现业务的全闭环。这样的安排不仅能够提高工作效率,而且能让负责业务开发的同学拥有更广阔的成长天地,更加专注于业务层面的思考。
这种设计并非虚构,已在闲鱼多个应用场景中实现,比如订单页面的改造就是一个例子,它带来的效益非常明显。对于像闲鱼这样拥有独立APP的研发团队来说,云端一体化架构尤为适用。
架构演进的启示
从试错快速期过渡到成长阶段,继而步入成熟期,最终实现云端整合,闲鱼的系统结构持续进步。由此可知,架构的演变并非一蹴而就,没有任何单一策略能够持续提高系统效能。
业务架构必须与业务特色相契合,需擅长明确问题所在,随后通过持续改进来逐一解决这些问题,最终构建出与自身业务特性相匹配的架构。
各位觉得在你们的研究开发领域里,最迫切要解决的系统结构难题是啥?觉得文章有帮助,不妨点个赞,也欢迎转发!