1 Vkery 2021-12-08 11:19:07 +08:00 难度 甚至超过推倒重写 |
![]() | 2 pengtdyd 2021-12-08 11:22:23 +08:00 优化不如重写 |
![]() | 3 3dwelcome 2021-12-08 11:24:13 +08:00 也许人家写代码的时候,就没打算把模块分开,你又何必强行拆离。 最好的方法就是重写,用新的模块直接去覆盖。 |
![]() | 5 LxExExl 2021-12-08 11:40:07 +08:00 via iPhone 没新的业务需求和性能需求 为啥要优化呢 |
![]() | 6 murmur 2021-12-08 11:43:58 +08:00 不要优化 |
![]() | 7 ChrisFreeMan 2021-12-08 11:51:51 +08:00 via iPhone 只是好奇,我想问下为什么很多人喜欢几千几千行的代码塞在一起? |
![]() | 8 gadfly3173 2021-12-08 11:57:43 +08:00 jdk6 也上不了 spring cloud ,就放在一个 jar 里其实也没有很大影响,想拆分的话就内部分一下 package 好了 |
![]() | 9 kensoz 2021-12-08 11:57:47 +08:00 ![]() 和我这地方很像 我这地方也是一个 jar ,有基础功能。针对不同的客户还会有一些针对性升级 内部逻辑就不说了,循环引用,无效代码,各种无解代码。接手的人多,各种年代风格的代码都有 开始我也准备修改,现在放弃,继续屎山上拉屎 如果优化不是工作,有需求就拉屎,有空闲时间可以自己试试重构 |
![]() | 10 xuanbg 2021-12-08 11:59:47 +08:00 先解决模块相互依赖的问题,然后拆就很简单了。 |
![]() | 11 helee9199 OP @kensoz 然后会碰到一个问题是, 如果有同样的 bug 那 12345 家客户 每家都要去改一遍 目前就是想把母版做好, 子板引用 修好 bug 大家都好 |
12 zyy314680012 2021-12-08 12:11:09 +08:00 via Android 不要优化 |
![]() | 13 zoharSoul 2021-12-08 12:21:00 +08:00 最好的优化就是不要优化 |
14 dqzcwxb 2021-12-08 12:25:14 +08:00 串行变并行就是最简单有效的优化 |
![]() | 15 potatowish 2021-12-08 12:55:09 +08:00 via iPhone 只是一个需求的话,建议继续在屎山上加一层,不要重构,费力不讨好的事不做 |
16 forbreak 2021-12-08 13:52:28 +08:00 ![]() 1. 你目前能投入多少时间去做这个事情。 2. 你为这事加班加点项目进度还有人催,你能顶住不? 3. 最后拆分完了,有没有人帮你整合测试。 4. 项目进度更重要的时候,有没有人手顶上项目进度,让你专门做这个拆分。 5. 领导能不能理解你得重构和拆分这件事,领导愿意支持你多久,给你投入多少人力和时间?延期之后,是否还能大力支持。 6. 拆分完之后旧项目得处理,分批上线,还是旧项目不动,新项目用新的? 7. 拆分不产生正收益,负收益会不会对你得绩效奖金之类得产生影响? 等等等等。。。你可以继续细想 |
![]() | 17 chocotan 2021-12-08 13:57:36 +08:00 问题说给领导听, 领导做决定 |
![]() | 18 nonoyang 2021-12-08 14:00:20 +08:00 不要盲目优化,尤其是老项目。 |
![]() | 19 wolfie 2021-12-08 14:05:23 +08:00 代理模式覆盖。 |
20 myl0204 2021-12-08 14:43:12 +08:00 如何优化一个老项目? "永远不要尝试优化它“ |
![]() | 21 tabrye 2021-12-08 15:08:01 +08:00 不要动它!不要动它!不要动它! 哪怕重做啊 |
22 jjwjiang 2021-12-08 15:31:01 +08:00 真的太年轻了,仿佛看到几年前的自己。 眼界宽一点,多想想代码以外的事,测试、运维、交付的时间是不是时间? 重给客户带来的额外风险谁来解释? 重构完成,带来的所谓“修复 bug 的效率提升”,是否比得上重构的成本? 你的所谓“重构”,是否真的能够满足将来扩展的需求? 一个项目的因素,往往真的不止代码那点事,代码洁癖是年轻码农的通病,慢慢理解就好了。 |
![]() | 24 kujio 2021-12-08 15:45:12 +08:00 如果旧的可以用那就别动了, 重写一个新的,逐渐用新的替代旧的 |
25 piping 2021-12-08 15:55:57 +08:00 via iPhone 如果没坏就不要修。 实在想改,先写测试,单元测试。没有测试不要大改 |
![]() | 27 statement 2021-12-08 16:15:33 +08:00 你要先问问你自己 你入职这家公司几年了,是项目负责人或者领导吗? 还是应届生或者刚进去实习 |
![]() | 28 ericgui 2021-12-09 01:32:47 +08:00 其实我个人挺喜欢重构的,很有成就感的 |
![]() | 29 ericgui 2021-12-09 01:34:08 +08:00 就类似你们喜欢看各种修复老旧物件的视频,油管上很多,b 站有个林果儿 为什么到了代码,就只想着推倒重来,而不是慢慢修复? |
![]() | 30 kensoz 2021-12-09 08:02:33 +08:00 @helee9199 你这说的仿佛和我这一样啊。 我这也是,我这是母版一个主分支,一个客户一个副分支,其他的按功能建分支,需要的哪个功能就合并哪个分支到需要的客户分支,不过这样带来的问题就是合并地狱。 关于重构,我现在的想法就是不重构也不改,屎山上拉屎,这样是最省事的,然后说屎山太臭,给自己争取时间。 有时间了就学习,然后自己私下用新技术重构,当然这里重构的好坏都无所谓,省去了被说的风险。 随着对屎山的把握以及重构,能感受到自己对项目架构的把握也在一点点的提升。 |
![]() | 31 jj256 2021-12-09 09:21:19 +08:00 via Android 先看看前任的代码水平吧,如果本身水平一般坑会比较多,推荐重写,没有历史包袱。重写之前先用老项目接口写好单元测试用例,覆盖要全,然后新项目就可以为所欲为了。 |
![]() | 34 ericgui 2021-12-09 10:34:47 +08:00 via iPhone @kensoz 哦,错了,不是开闭选择,是“正交”,每个功能都可以关闭,不影响其他功能,不同的配置就是一套不同 feature 的组合 |
![]() | 36 comoyi 2021-12-09 13:20:43 +08:00 先开个新仓库拆一个非关键模块出来替换掉原先的看看 |
38 456789 2022-02-25 20:32:45 +08:00 重写,能复制的复制 |