1. 背景
我司是做全球业务的,在全球分别部署了 5 个大集群(资源独立)。
随着业务的发展,业务下线,业务负责人变更是很常见的事情。
业务下线,但是代码却未下线,服务代码量越来越大。
那么有什么方式能够快速把不用的代码找出来呢?
2. 怎么产生这个想法的?
在 Idea 中,可以通过以下方式找出未被使用的方法
Code -> Analyze Code -> Run Inspection by Name -> unused declaration
但是呢,这种方式无法知道哪些 「资源」 未被使用。
资源的定义:接口、Dubbo Provider、Job、MQ 等。
如果使用人工的方式拿到服务的资源使用情况,再和代码做对比。不仅费时,费力,还容易错。
那么如何让机器帮我们处理呢?
如果我们能拿到服务「资源」的使用情况,再可以通过 Idea Plugin 把声明在代码中未被使用的资源找出来,并显示出来,这样就可以节省非常多的人力成本。
OK,让我们顺着这个思路实践。
3. 实践
3.1 如何拿到服务资源使用情况
3.1.1 简单但清洁力度有限
一般会有监控平台,只需要把对应资源的使用情况打点上报。我们就可以通过监控平台拿到对应资源的使用情况。
这种方式最简单,投入产出比高,但是清洁力度有限。
如果使用该方式实现,一般还需要再借助 Idea 找出未被使用的方法
笔者实际开发中,使用的就是该方案。
3.1.2 高效但实现难度高
可以参考 去哪儿网系统瘦身技术揭秘[1]
实现难度高、投入高。中小公司不推荐使用该方式!!!
3.2 实现流程
3.3 遇到的困难
最难的可能是 Idea Plugin API 使用了吧。因为网上相关资源并不多。
这里提供几个方法快速熟悉 Idea Plugin API:
- 到
Github上找相关度高的插件代码 - 看 Idea 官方文档[2] 时,先看目录,了解
Idea Plugin的整体设计,从整体在到细节 - IDEA 交流论坛[3] 如果不清楚怎么使用 API,可以到这个论坛上找找代码
4. 总结
整体实现难度不高,主要是 Idea Plugin API 相关资料太少,导致开发难度上升。
引用链接
[1] 去哪儿网系统瘦身技术揭秘: xie.infoq.cn/article/c04…
[2] Idea 官方文档: plugins.jetbrains.com/docs/intell…
[3] IDEA 交流论坛: intellij-support.jetbrains.com/hc/en-us/co…