![]() |
1
monmon 103 天前
感觉你在找的可能是 Intellij Profile ? By the way...如果你这个 method 的执行效率不是特别离谱,没人吐槽它慢,业务能跑最好别去动它,屎山这玩意谁沾谁脏😅
|
2
jamel 103 天前
链路追踪?
|
3
yuanmomo 103 天前 via iPhone
当年红岭创投重构.Net 到 Java ,花钱请了阿里的外援,全线使用阿里云。当时预计半年能搞完,我给他们预计的是,一年都搞完就不错了。结果最后花了一年多,上线的时候预计 8 小时,最后好像接近 20 小时吧。
一个项目,要重构,太多的先决条件了,最重要的就是测试覆盖率。如果测试用例不够,我是绝逼不重构的。 |
6
wellR OP @monmon 接手的项目,没有文档,反而要我们开发读源码输出文档,性能不是问题。有出那么些接口负责多种业务,一堆一堆的逻辑分支,头疼,开 debugger 才勉强搞明白些。说起来 java 的 Debugger 应该是能拿到我说的“代码追踪”数据的,怎么才能拿到呢
|
7
jamel 103 天前 ![]() 阿里云的 arms 可以到方法 到类,还有性能数据,很像火焰图了
|
![]() |
8
Dream95 103 天前 ![]() Jacoco ?
|
9
wellR OP 楼上的回答启发我了,这跟单元测试中的代码覆盖率很接近啊,只不过目标不一样,我是为了抽离代码,关注指定方法在指定输入下的实际执行的代码,而排除其它的逻辑分支的视觉干扰,降低心智负担。
|
![]() |
10
monmon 103 天前
idea 的 SequenceDiagram 插件应该可以满足你的需求
|
![]() |
13
ukpkmk 103 天前
<<精简代码实战:核心系统缩减 80%代码>>
https://mp.weixin.qq.com/s/30PHdlnGZ4lGm3H5VeLRWQ 以前看过的一个文章和你说的很像,也是经过一个月的随机采样,采集到 46 万流量,以此来对系统代码进行染色,得到有效函数 |
![]() |
14
SoloCompany 103 天前
实际上最简单的做法是把 method 直接复制 4 份, 然后把流程控制变量变成常量, 利用 IDE 静态分析删除 dead code, 剩余的 duplicate code 通常也能被分析出来, 根据提示 extract method
|
![]() |
16
tikazyq 101 天前
用图论去解决屎山问题固然很酷,但投入产出比不一定值得,特别是需要重构的代码量没到一定量级的时候。几十百来个文件需要重构的话,可能还不如人海战术重写逻辑。
还有,现在 GPT 都这么大窗口了,直接扔进去加合理的 prompt 理论上也可能有低成本的收获。 最后,养成良好的编程习惯和团队文化(例如 TDD 、代码审核),比硬啃屎山更有效和稳定。屎山代码产生的根本原因,通常来自于急功近利的老板和不够负责的技术领导。 |
17
wellR OP @SoloCompany 这也是个法子
|
18
wellR OP java 的 debugger 能获取的信息很丰富,似乎可以支撑代码分割或者代码染色的实现
|