偶尔我会使用Eclipse重构功能。其中有些技巧比其他技巧更为明显,而有些则从未尝试过。
对你来说,哪种重构方式最有用?为什么?
注意:我发现这个演示非常实用,也许是因为它以实例为驱动,因此易于理解:
"Refactoring for everyone - How and why to use Eclipse's automated refactoring features"
编辑:这篇文章也很有用(感谢jitter)
偶尔我会使用Eclipse重构功能。其中有些技巧比其他技巧更为明显,而有些则从未尝试过。
对你来说,哪种重构方式最有用?为什么?
注意:我发现这个演示非常实用,也许是因为它以实例为驱动,因此易于理解:
"Refactoring for everyone - How and why to use Eclipse's automated refactoring features"
编辑:这篇文章也很有用(感谢jitter)
这是一个有趣的问题。我知道对我有效的方法,也很有趣看到其他人使用的方法。
我决定采用更科学的方法来确定最常用的重构命令。Eclipse内置了一个Usage Data Collector (UDC)功能。该数据是公开可用的。我提取了数据,并提取出以下图表,显示了最常用的编辑命令(不包括导航命令)。
alt text http://img.skitch.com/20091207-bmcng36rjy837sqmcx58b85age.gif
然而,我坚信“Save Actions”用于格式化和组织导入(请阅读我的文章),所以我不会计算那些命令。我还将删除注释命令。图片看起来像这样:alt text http://img.skitch.com/20091207-ieas1mk5114fwitucqkqxyw6t.gif
重命名 - 因为给事物赋予有意义的名称是编写自我说明代码的最佳方法。 Shift+Alt+R
提取方法 - 每当一个方法过长时。 Shift+Alt+M
提取常量 - 因为神奇的数字很糟糕。 Shift+Alt+T (重构菜单,没有直接的快捷方式)。
内联/引入变量 - 从方法中删除混乱的内容。 Shift+Alt+I(内联),Shift+Alt+L(引入)
我的收藏夹(按使用顺序排列):
Alt-Shift-R
,或 Ctrl-1
用于文件内快速重命名)Ctrl-1
,Alt-Shift-L
)Alt-Shift-M
)Ctrl-1
)Alt-Shift-C
)Eclipse在众多流行的IDE中可能拥有最少的重构功能。您可以考虑使用Netbeans或IntelliJ(社区版是免费的)。相反,Eclipse可能拥有最好的调试器。;)
我在编写代码时使用重构(我发现这样能加速编写大约15%),所以IntelliJ无需编译即可重构代码的能力对我非常有用。其他IDE现在可能也支持此功能(有人知道吗?) 我发现IntelliJ的智能完成更加智能。
我测试了从打印输出(最初在Eclipse中编写)重新输入文件,并发现在使用IntelliJ键入该文件时,键入的按键数减少了30%,鼠标移动次数减少了50%(与Eclipse相比)。我估计Netbeans位于中间水平。
我的收藏夹包括:
1) 重命名 - 它可以用于方法名称、变量名称、类名称、字段等任何名称。
2) 将匿名类转换为嵌套类 - 有助于调试,让您重复使用逻辑(例如比较器),而您只认为会在一个地方使用它。
3) 将成员类型转换为顶级类型 - 在将匿名类转换为嵌套类后,我经常发现该类在其他地方也很有用。这时候进行重构就非常完美。
我喜欢使用提取方法 (Alt+Shift+M),自从 3.6M1 版本以来,它现在可以处理包含 continue 语句的选择。
为了保留现有代码的语义,选择需要包括循环的最后一条语句。在提取的方法中,continue 语句将被更改为 return 语句:
对于在提取的方法中需要多个返回值的选择,Eclipse 现在会在错误消息中列出冲突的变量:
我最常用的是重命名、提取方法和更改方法签名,按照这个顺序。
在红色下划线部分按CTRL + 1,即快速修复。