Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >老旧架构是边造轮子边优化,还是直接重构?

老旧架构是边造轮子边优化,还是直接重构?

提问于 2024-12-28 01:30:23
回答 3关注 0查看 161

回答 3

程序员法医

发布于 2025-01-01 12:27:57

我觉得这个问题我们用一辆新旧车打比方最合适了,假如你有一辆旧车(老旧架构)。 如果边造轮子边优化呢,就像是你这辆车有些零件坏了或者不太好使,你就一个一个地去换更好的零件来让车能接着好好开。这样做的好处是车子(系统)一直能跑,不会一下子就瘫在那儿,业务不会受到太大的影响。而且你在换零件(优化)的过程中,还能慢慢了解这辆车(架构)到底是咋回事,不至于手忙脚乱。不过呢,这也有个麻烦的地方,就是你换来换去,可能最后发现这些新零件和旧零件拼在一起,还是有点小毛病,而且可能因为一直修修补补,有些地方还是挺乱的。 要是直接重构,就像是你不要这辆旧车了,重新造一辆新车。这样做如果成功了,那车(系统)就会非常棒,很符合现在的需求,而且也很整齐干净。但是风险也大啊,你在造车(重构)的时候,车肯定是开不了的(系统可能得停摆一段时间),这对业务影响就很大。而且造车的时候你要是有个小失误,说不定整辆车都报废了(重构失败)。 所以到底是边造轮子边优化还是直接重构,得看这辆车(老旧架构)现在有多破。要是还能开,业务也还能勉强维持,那可以先边造轮子边优化;要是这辆车已经破得不行,老是出大问题,业务都快进行不下去了,那可能就得咬咬牙直接重构了。

DigitalSonic

发布于 2024-12-31 11:10:31

在考虑这个问题之前,可以再往前一步,请回答下老旧架构有什么问题,为什么要去优化或者重构它呢?

一切的优化和重构都是有代价的,有代价就要有人来买单,业务是不是认可这个工作的投入产出?

如果业务觉得现在的系统也能跑,问题也不大,可以苟着,那这个代价就要技术来承担,技术做这个事情的动力又是什么?

如果一路推导到最后就是这个事情要搞,大家达成了一致,那再来思考你问的这个问题。

我的建议是大部分情况下选择边造轮子边优化,而不是直接重构。有以下原因:

  • 业务是在发展的,不可能停下来等你做完重构,过程中不提需求,这时如果是新老两套系统,这个需求可能就要做两遍。如果业务都不发展了,系统老就老了,也都不用重构。
  • 技改需要投入产研资源,这些资源做了技改就没办法承接业务需求,会影响业务需求交付,而在业务视角,能接受技术做技改,但因为要做技改而大量影响业务需求,这个是接受不了的。
  • 技改是伴随风险的,大系统分批改造上线,逐步迭代相比一次性改造上线的风险更加可控,而且能更快看到效果或者发现问题。

用户11427446

发布于 2024-12-28 05:08:58

得视具体情况而定。

如果老旧架构的问题不算特别严重,业务依赖它的地方多且复杂,重构风险大、成本高,那可以先边造轮子边优化,逐步替换一些关键模块,在不影响整体稳定运行的基础上慢慢改善性能、拓展功能。

但要是老旧架构已经严重阻碍业务发展了,比如难以满足新功能需求、性能瓶颈太突出,而且团队有足够的人力、时间以及对业务理解较透彻,那直接重构可能更合适,虽然短期内投入大,但长远来看能打造出更契合业务且高效的架构。

所以要综合考虑业务需求紧迫性、现有架构复杂程度、团队资源等等多方面因素来考量。

和开发者交流更多问题细节吧,去 写回答
相关文章
美的布局“造芯”工程,是缓解芯片荒还是重复造轮子?
最近的芯片行业总能搞出一些“大新闻”。进入2月,美国和欧盟先后公布了数额巨大的芯片资助计划;2月4日,拜登政府提出拨款520亿美元资助发展半导体产业、450亿美元加强高科技产品供应链的《2022年美国竞争法案》,主要用于加强芯片研发以及解决多行业芯片短缺等问题。欧洲几乎同步,2月8日,欧盟委员会通过《欧洲芯片法案》(The European Chips Act),旨在加强欧盟半导体生态系统,确保芯片供应链弹性和减少国际依赖,其目标是到2030年欧洲生产的芯片将在全球市场上占到20%。
数据猿
2022/04/06
3850
美的布局“造芯”工程,是缓解芯片荒还是重复造轮子?
带你造轮子,自定义一个随意拖拽可吸边的View
在开发中,随意拖拽可吸边的悬浮View还是比较常见的,这种功能网上也有各种各样的轮子,其实写起来并不复杂,看完本文,你也可以手写一个,而且不到400行代码就能实现一个通用的随意拖拽可吸边的悬浮View组件。
yechaoa
2022/09/20
6550
带你造轮子,自定义一个随意拖拽可吸边的View
直播编程:一边是分享,一边是赚钱
我在上一篇博文中分享过,要成为一名受欢迎的程序员直播者,可以使用哪些技巧。直播编程,除了分享知识和交流经验,还可以利用直播赚钱。据Livecoding.tv公布的数据显示,自从2015年成立以来,平台向直播者用户支付的捐助金以及频道订阅费用已超过了20万美金。作为直播者,如果也想通过直播编程赚钱的话,可以参考以下5种方法:
LiveEdu
2018/05/21
1.1K0
直播编程:一边是分享,一边是赚钱
大学,我是怎么边学编程边赚钱的?
首先给这位朋友点个大大的赞,我非常支持他的想法,在大学期间想到自己赚取生活费是很棒的,尤其是用自己感兴趣的、和未来发展目标一致的知识技术来赚钱再好不过!
程序员鱼皮
2021/05/20
1.7K0
ArrayList边遍历边删除?
一个for循环遍历,如果item > 2就执行remove,看上去似乎没有问题的样子,也不会出现报错,但是不符合题目的要求
DH镔
2019/12/19
1.9K0
Phoenix边讲架构边调优
一 基础架构详解 1 概念 讲调优之前,需要大家深入了解phoenix的架构,这样才能更好的调优。 Apache Phoenix在Hadoop中实现OLTP和运营分析,实现低延迟应用是通过结合下面两个优势: 具有完整ACID事务功能的标准SQL和JDBC API的强大功能 通过利用HBase作为后台存储,为NoSQL世界提供了late-bound, schema-on-read灵活的功能。 Apache Phoenix与其他Hadoop产品完全集成,如Spark,Hive,Pig,Flume和Map
Spark学习技巧
2018/01/31
4.1K0
Phoenix边讲架构边调优
边学边用Gradle:依赖管理
粗略的讲, 依赖管理由两部分组成:项目的 dependencies(依赖项) 和 publications(发布项)。
WindCoder
2018/09/19
2.2K0
工艺边
还记得那年毕业,拜师与名师(硬件总监),也是本人熬了一年半载,最后得以有机会做项目。还记得有一次师傅有事去了工厂,恰好碰到我的项目准备试产,然后师傅打电话问我,说你那板子没有留板边吗?
徐师兄
2022/08/29
3490
聊聊六边形架构
指导我们写出漂亮代码有一种方式是学习设计模式,自从 Gof 四人组的《设计模式》出版后,各类设计模式的书层出不穷。熟读这类书籍,对面试肯定是有帮助的,但代码能力是否有大的长进就不一定了,如果没能理解背后的思想,去生搬硬套,只会起反作用。
oec2003
2023/10/25
1.7K0
聊聊六边形架构
边双联通分量与割边
前言 在图论中,除了在有向图中的强连通分量,在无向图中还有一类双联通分量 双联通分量一般是指点双连通分量 当然,还有一种叫做边双连通分量 边双联通分量 对于一个连通图,如果任意两点至少存在两条“边不重复”的路径,则说图是点双连通的,边双连通的极大子图称为边双连通分量。 边双联通分量的计算方法比较简单 类比tarjan求强联通分量的算法,唯一的区别在于不能沿着dfs过来的那条边走回去。 也就是说在tarjan的时候我们需要记录一下父亲节点 其余的就和普通的tarjan一样啦 例题 割边(桥) 割边:对于无向图
attack
2018/04/10
1.1K0
兴趣类-python边学边练(1)
最近在学习的过程中出现了懒惰情况,仔细总结发现看教程视频太枯燥,在没有其他编程语言基础的情况下很难懂,虽然python简单,但是那也是对那些c java php熟悉的人来讲,所以不要再说python简单了,就像我说设计简单一样,因为我做这个工作的。
adventureisoutthere
2020/03/05
4600
兴趣类-python边学边练(1)
解读六边形架构
追溯微服务架构的渊源,一般会涉及到六边形架构。追溯六边形架构的起源,要看始作俑者Alistair Cockburn的这篇文章 http://alistair.cockburn.us/Hexagonal+architecture, 读原文,译重点,记感受, 如下:
半吊子全栈工匠
2018/08/22
2.3K0
解读六边形架构
UML2.51边译边学-组件
本文是UML规范2.5.1中组件相关部分中文翻译。原文可从https://www.omg.org/spec/UML/2.5.1下载。
面向对象思考
2021/10/14
5950
UML2.51边译边学-组件
造了 1000 遍轮子,还是没搞懂微服务!
最近几年,微服务大行其道。在业务模型不完善,超大规模流量的冲击的情况下,许多企业纷纷抛弃了传统的单体架构,拥抱微服务。这种模式具备独立开发、独立部署、可扩展性、可重用性的优点的同时,也带来这样一个问题:开发、运维的复杂性提高。有人感觉微服务越做越不方便维护。
搜云库技术团队
2019/11/21
5190
什么是PCB金属包边工艺
随着电子技术的飞速发展,电路板(PCB,Printed Circuit Board)作为电子设备中不可或缺的组成部分,其性能和质量要求也越来越高。在PCB的设计和制造过程中,金属包边工艺作为一种重要的技术手段,被广泛应用于提高电路板的机械强度、抗腐蚀能力、电磁兼容性(EMC)以及散热性能等方面。本文将详细探讨PCB金属包边工艺的定义、分类、作用、工艺流程以及在实际应用中的优势与挑战。
深泽多层电路
2024/09/07
7570
什么是PCB金属包边工艺
UML2.51边译边学-接口
本文是UML规范2.5.1中接口相关部分中文翻译。原文可从https://www.omg.org/spec/UML/2.5.1下载。
面向对象思考
2021/10/14
5350
UML2.51边译边学-接口
边开发边测试--故事从闹钟讲起
你开发过alarm相关的应用吗? 你测试过alarm相关的应用吗? 如果答案是肯定的,建议看官停下来拍拍砖。 手机管家新年运营功能有一个招牌:红包闹钟。 功能发布后,最常见的质疑当属:闹钟准吗? 为了回答这个问题,才有了这篇文章,也希望此文对那些闹钟的开发和测试者,有点用。 一. Android Alarm的技术背景 (一)基础API 1.关于闹钟的4个最常用api以及精准性: (1)set(int type,long startTime,PendingIntent pi); Beginning in A
腾讯移动品质中心TMQ
2018/02/02
1.9K0
边开发边测试--故事从闹钟讲起
浅析云边端融合趋势下的架构模型优化设计
当前,我国正处于数字经济高速发展的时代,数字技术不断重塑商业环境,越来越多的企业逐渐意识到,只有实现数字化转型,才能抓住发展新机遇。企业是经济数字化转型的重要实施主体,进一步推进经济数字化转型,则需要充分发挥数据的驱动作用。伴随着互联网、云计算、大数据、区块链、人工智能等技术的蓬勃发展,物联网连接数爆发式增长,数据处理量激增,促使边缘计算技术开始崛起。
TSINGSEE青犀视频
2023/02/08
1.1K0
Android FFmpeg 流媒体边播放边录制功能
前面 FFmpeg 系列的文章中,已经实现了音视频的播放、录制已经添加滤镜等功能,本文将用 FFmpeg 实现流媒体的边播放边录制功能。
字节流动
2021/05/08
1.9K0
Android FFmpeg 流媒体边播放边录制功能
边学边用Gradle:Gradle的脚本结构
配置此项目的构建脚本类路径。可声明用于编译和执行构建脚本的类路径。该类路径也用于加载构建脚本使用的插件。
WindCoder
2018/09/19
1.8K0

相似问题

对于老旧过时架构,边开飞机边换引擎,需要注意哪些?

13379

关于openni2是否是成年老旧还是依旧宏伟呢?

1182

腾讯云点播怎么实现边加载边播放视频呢?

0449

是架构服务于业务还是业务服务于架构呢?

122

是架构服务于业务还是业务服务于架构呢?

129
相关问答用户
到家集团 | 技术VP擅长5个领域
新浪微博 | 高级总监擅长4个领域
某公司 | 程序员擅长1个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档