我去,拷贝代码,居然还有这等好处?
什么是去拷耦合?
耦合,是贝代架构中,本来不相干的码居代码、模块、然还服务、好处系统因为某些原因联系在一起,去拷各自独立性差,贝代影响则相互影响,码居变动则相互变动的然还一种架构状态。
感官上,好处怎么发现系统中的去拷耦合?
作为技术人,每每在心中骂上下游,贝代骂兄弟部门,码居“这个东西跟我有什么关系?然还为什么需要我来配合做这个事情?”。明明不应该联动,好处却要被动配合,就可能有潜在的耦合。
因为公共库,导致相互受影响,就是一个耦合的典型案例。
场景还原
一个看似“公共”的业务库(*.so *.jar *.dll *.php),很多业务系统都依赖于这个公共库,这个库使得这些系统都耦合在了一起。
画外音:这里的公共库不是服务器租用指像“字符串操作”这样的不变化的工具库,更多是指通用业务的公共库。
耦合如何导致相互影响?
业务1,业务2,业务3都依赖于某一个biz.jar,业务1因为某个需求需要升级biz.jar。上线前,业务1的QA进行了大量的测试,确保无误后,代码发布,发布完线上验证无误后,上线完成,闪人。
突然,bug群里有人反馈,业务2的系统挂了,业务3的系统也挂了,一下炸开了锅:
业务2的大boss首先发飙:“技术都干啥了,怎么系统挂了” 业务2的rd一脸无辜:“业务1上线了,所以我们挂了”额,然而,这个理由,好像在大boss那解释不通…
业务2的源码库大boss:“业务1上线?业务1上线前测试了么” 业务1的qa自信满满:“测试了呀,上线前上线后都验证了,没问题呀” 业务2的大boss对业务2的rd吼道“还想甩锅,拖出去祭天”不知道大家工作中会不会遇到这样的场景,因为公共库的耦合,兄弟部门上线,影响的确是你,此时你心里可能就在骂娘了,这帮不靠谱的**队友。
特别的,如果公共库的使用方很广,这个耦合很严重,可能影响很大的范围。
如何解除公共库耦合?
方案一:代码拷贝一份。别嘲笑这个方案,谁敢说自己写代码的时候没这么干过?
我们都知道这不是一个好的方案,但不可否认,拷贝之后,代码各自演化,免费源码下载一个地方升级出错,只影响一方,拷贝方只要不动原有代码,至少是不会受影响的。
代码拷贝缺点很多,系统拆分时,万不得已不要使用这个方案。
方案二:垂直拆分,将公共库里业务个性化的代码拆到调用方去,不要放在公共库里。需要把业务个性的代码拆分到各个业务线自己的工程,自己的业务库里去,例如s1.jar / s2.jar / s3.jar,修改各自的代码,至少不会扩大影响范围。
大家为什么都把代码往一个公共库里塞?
很多时候,因为惰性,一点一点的惰性,日积月累,终成大坑。
这个垂直拆分是一个架构重构的过程,需要各业务方配合。
方案三:服务化,将公共库里通用业务代码拆到下层去。完成了第一步,业务个性化的代码提取到业务侧上游。
接下来是第二步,业务通用的代码,下沉抽取一层服务,服务对上游提供RPC接口:
每次修改底层接口,需要测试接口的兼容性,保证不影响旧调用方; 如果是新的业务,则建议新增接口;最终,达到通过服务RPC调用的方式来解除耦合。
有朋友会问:
底层服务接口的测试; 上游业务层对公共库的测试;都是测试,为何前者能控制影响范围呢?
底层接口,所有人调用,接口没问题则调用方都没问题 上游业务层对公共库测试,只能保证自己的业务没有问题,并不能保证其他业务方没有问题。个性业务代码上浮,共性业务代码服务化下沉,只是一个很小的优化点,但对于公共库解耦却是非常的有效。
希望大家每天收获一点点,这样架构就能美好一点点。
画外音:原来拷贝代码,还有解耦的功效?
【本文为专栏作者“58沈剑”原创稿件,转载请联系原作者】

戳这里,看该作者更多好文
相关文章
- 摘要:现代科技的飞速发展使得电脑已经成为人们生活中必不可少的一部分。然而,对于一些刚接触福克斯特电脑的用户来说,可能会感到迷茫和困惑。本文将为大家提供福克斯特电脑使用教程,帮助大家轻松掌...2025-11-05
刚开始使用Windows 7系统的时候不少用户遇到过,在ie浏览器中打开多个网页的在任务栏中显示网页会变得折叠在一起了,而不是像在xp系统中将并排在任务栏中,一些用户会感觉这样比较不方便,那么怎么设置2025-11-05
计算机操作过程中,用的好好的光驱突然间无法正常读取光盘了。这可能是windows无法加载这个硬件的设备驱动程序,或者是驱动程序出现了损坏不见了。假如重新下载安装好,问题还是存在,建议参考以下如何解决系2025-11-05探索电脑最上面一排键的错误代码(解读键盘故障,提升电脑使用体验)
摘要:在日常使用电脑的过程中,我们经常会遇到键盘出现故障的情况。特别是电脑最上面一排键,如F1-F12和Esc键等,经常会出现各种错误代码的提示,给我们的使用体验带来困扰。本文将对这些错...2025-11-05
windows 7电脑提示无线适配器或访问点有问题且处于未修复状态怎
今天小编在使用无线网连接上网时,发现无线网显示已连接,但旁边却出现了一个感叹号,无法进行网络操作,诊断提示电脑无线适配器或访问点有问题,且出于未修复状态,这该怎么办呢?其实解决方法不难,下面小编就为大2025-11-05



最新评论