架构整洁之道--跟开源三方软件划清界限实战案例

本文探讨如何在扩展开源/第三方软件时,避免代码混淆导致的升级问题。通过实例,介绍如何通过接口隔离和适配层,保持自研代码与开源软件的独立性,以降低维护成本并提高架构稳定性。
摘要由CSDN通过智能技术生成

背景:

假设有一个开源/第三方的软件模块ModuleA,我们要基于其上做特性的扩展。我见过的较多的做法是二者的代码实现揉在一起,这样会导致一个问题。当ModuleA做升级或者ModuleA替换成另一款ModuleB的时候,需要有大量的代码做Merge适配。这样带来的一个比较大的问题是,每次升级开源/三方软件,极大概率会出现漏合错合代码的现象。(我所经历的项目中,有因为漏合入一行代码,引入概率性问题,攻关一个月之久)。因此我们需要有一种方法,至少让自研代码和原始开源/三方软件的代码隔离开来,以插件式拼接的方式面对这种升级问题,而不是琐碎的侵入式穿插修改。

案例:

下面我们就以一个例子为主线,讲述一种在实战中使用的案例。实实在在解决了上述痛点问题。

假设原生开源/三方软件中有一个ModuleA,其中包含Func1,和Func2两个功能,见图1。
图1 ModuleA
图1 ModuleA

假设此时,我们需要往ModuleA中增加一个功能FuncEx,以扩展ModuleA的逻辑从而满足我们的需求。其中调用关系为Func1->FuncEx->Func2。见图2
图2 ModuleA扩展
图2 ModuleA扩展

图2修改方法,其实已经进入了本文讲的问题痛点范畴ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值