为了账号安全,请及时绑定邮箱和手机立即绑定

Monolith 的自动重构

Monolith 的自动重构

交互式爱情 2023-06-14 15:38:06
我们有一个相当大的单片软件,我们想在更大的范围内进行重构。第一步是派生出几个可以独立编译的工件。鉴于应用程序的大小,我们希望尽可能自动化。一个例子:+ package1|    ||    + Service1|+ package2|    ||    + Service2|+ interfacepackage假设,Service1仅在内部使用package1,不应触及。假设Service2用于Service1我想自动生成一个最小接口Service2,将该接口放入包中interfacepackage并将其中的依赖项更改Service1为该接口。手动执行此操作一点也不麻烦。Idea 和 Eclipse 都提供半自动重构,但我们希望将它们制定为元规则。我曾希望 eclipse 或 intellij 有一个编程接口来定义这些规则,但我还没有找到它们。我什至找到了 eclipse 重构脚本,但这些似乎仅限于命名类的重构,所以如果我知道所有应该重构的服务,eclipse 重构脚本会有所帮助,但如果我想定义要重构的类的条件,则不会。我应该在哪里寻找解决方案?澄清:评论:那么你的问题是什么?我们有高达 3 位数的服务构成了这个整体。这些大约是。20 种不同的包装。整个软件接近100万行代码。我的问题只是大小。手动进行重构可能需要几个月的时间,我们可能会错过一些手动进行的事情。此外,消除服务的纠缠只是第一步。所以我们期待在未来应用很多类似的重构。
查看完整描述

1 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

IntelliJ IDEA 有一个“open api”,可用于插件开发。

优点是 IntelliJ 解析 java 代码,“元模型”可供插件作者使用。

在 IntelliJ 中,“AST”模型指的是“抽象语法树”。这种结构对于进行重构的插件来说是无价的。

你可以很容易地看到包结构、类名、代码等等。


查看完整回答
反对 回复 2023-06-14
  • 1 回答
  • 0 关注
  • 85 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信