服务代码瘦身

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 高效但实现难度高

可以参考 去哪儿网系统瘦身技术揭秘

实现难度高、投入高。中小公司不推荐使用该方式!!!

3.2 实现流程

服务代码瘦身_第1张图片

3.3 遇到的困难

最难的可能是 Idea Plugin API 使用了吧。因为网上相关资源并不多。

这里提供几个方法快速熟悉 Idea Plugin API

  1. Github 上找相关度最高的插件代码
  2. 看 Idea 官方文档 时,先看目录,了解 Idea Plugin 的整体设计,从整体在到细节
  3. IDEA 交流论坛 如果不清楚怎么使用 API,可以到这个论坛上找找代码

4. 总结

整体实现难度不高,主要是 Idea Plugin API 相关资料太少,导致开发难度上升。

你可能感兴趣的:(架构设计,intellij-idea,java)