six*_*ees 0 java refactoring automated-refactoring
我有一个膨胀的JDialog类(~2000行),显示两个不相关的JTable.我想将它分成三个类(JDialog,Jtable1和JTable2).我可以研究每个表使用哪些变量和哪些方法并将它们移动到相关的类,但是这种手动重构将是乏味的.
有没有办法自动化这种重构?
要实现这一点,脚本应该有一个令牌累加器.第一个标记是,例如jTable2来自panel.add(jTable2).现在检查所有包含jTable2的行,并将标记添加到累加器.重复搜索相关的令牌,直到找不到新的令牌.现在为每个令牌找到包含它的行.展开选择以包括括号.
很难相信可论证的最大语言的程序员还没有创建这样的工具.这应该与IDE中的find usages工具非常相似.
自动?不,谢天谢地.重构需要思考.深度学习还没有.
大多数IDE(例如JetBrains的IntelliJ,市场上最好的IDE)具有出色的重构支持.
但它不会为你考虑.
一条建议:如果你有单元测试,你会有更好的运气,以小增量咬合,并使用版本控制系统.编写测试,进行更改,显示测试仍然通过,提交更改,重复.
您可以随时返回上一个工作版本.你不会做出比单一增量步骤更大的混乱.
我认为你可以做得更好:看看移动监听器和处理代码的UI也是如此.Swing应用程序最终会出现大型课程,因为人们学习将所有内容都塞进UI类中.如果你将它分解,你会发现代码更容易阅读,更模块化,更容易进行单元测试.