想问一个问题,如何优化一个老项目.

2021-12-08 11:15:48 +08:00
 helee9199
公司是医院项目,源码里最老的代码可以追溯到 05 年左右,
然后几乎 80%的模块代码都在一个 jar 里
目前想做一些优化,把一些功能按模块抽取出来
例如 A B C D E F G 等 都在一个 jar 包内
想把 A 相关的 抽取出来单独成为一个 jar 后期想慢慢都分离出来.
但是 A 和 B C D 之间又有关联,可能 A 要用 B ,C 要用 A 之类的
那就成了循环引用.
这种情况下应该如何进行下去呢
常年 crud 这方面无从下手了.
而且新技术也用不上 目前 JDK6
请大佬们指教
3096 次点击
所在节点    Java
38 条回复
Vkery
2021-12-08 11:19:07 +08:00
难度 甚至超过推倒重写
pengtdyd
2021-12-08 11:22:23 +08:00
优化不如重写
3dwelcome
2021-12-08 11:24:13 +08:00
也许人家写代码的时候,就没打算把模块分开,你又何必强行拆离。

最好的方法就是重写,用新的模块直接去覆盖。
helee9199
2021-12-08 11:38:50 +08:00
@3dwelcome 可能也不是没打算把模块分开 而是项目太老 当时设计的就没想那么多
然后现在一团乱麻了
LxExExl
2021-12-08 11:40:07 +08:00
没新的业务需求和性能需求 为啥要优化呢
murmur
2021-12-08 11:43:58 +08:00
不要优化
ChrisFreeMan
2021-12-08 11:51:51 +08:00
只是好奇,我想问下为什么很多人喜欢把几千几千行的代码塞在一起?
gadfly3173
2021-12-08 11:57:43 +08:00
jdk6 也上不了 spring cloud ,就放在一个 jar 里其实也没有很大影响,想拆分的话就内部分一下 package 好了
kensoz
2021-12-08 11:57:47 +08:00
和我这地方很像
我这地方也是一个 jar ,有基础功能。针对不同的客户还会有一些针对性升级
内部逻辑就不说了,循环引用,无效代码,各种无解代码。接手的人多,各种年代风格的代码都有
开始我也准备修改,现在放弃,继续屎山上拉屎
如果优化不是工作,有需求就拉屎,有空闲时间可以自己试试重构
xuanbg
2021-12-08 11:59:47 +08:00
先解决模块相互依赖的问题,然后拆就很简单了。
helee9199
2021-12-08 12:03:00 +08:00
@kensoz 然后会碰到一个问题是, 如果有同样的 bug 那 12345 家客户 每家都要去改一遍
目前就是想把母版做好, 子板引用 修好 bug 大家都好
zyy314680012
2021-12-08 12:11:09 +08:00
不要优化
zoharSoul
2021-12-08 12:21:00 +08:00
最好的优化就是不要优化
dqzcwxb
2021-12-08 12:25:14 +08:00
串行变并行就是最简单有效的优化
potatowish
2021-12-08 12:55:09 +08:00
只是一个需求的话,建议继续在屎山上加一层,不要重构,费力不讨好的事不做
forbreak
2021-12-08 13:52:28 +08:00
1. 你目前能投入多少时间去做这个事情。
2. 你为这事加班加点项目进度还有人催,你能顶住不?
3. 最后拆分完了,有没有人帮你整合测试。
4. 项目进度更重要的时候,有没有人手顶上项目进度,让你专门做这个拆分。
5. 领导能不能理解你得重构和拆分这件事,领导愿意支持你多久,给你投入多少人力和时间?延期之后,是否还能大力支持。
6. 拆分完之后旧项目得处理,分批上线,还是旧项目不动,新项目用新的?
7. 拆分不产生正收益,负收益会不会对你得绩效奖金之类得产生影响?
等等等等。。。你可以继续细想
chocotan
2021-12-08 13:57:36 +08:00
问题说给领导听, 领导做决定
nonoyang
2021-12-08 14:00:20 +08:00
不要盲目优化,尤其是老项目。
wolfie
2021-12-08 14:05:23 +08:00
代理模式覆盖。
myl0204
2021-12-08 14:43:12 +08:00
如何优化一个老项目?

"永远不要尝试优化它“

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/820819

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX