我不时地使用Eclipse重构功能。有些技术比其他技术更明显,有些我从未尝试过。
哪种重构对您最有用?为什么?
注意:我发现这个演示文稿非常有用,可能因为它是示例驱动因此很容易理解:
“Refactoring for everyone - How and why to use Eclipse's automated refactoring features”
编辑:这篇文章也很有用(谢谢抖动)
答案 0 :(得分:52)
这是一个有趣的问题。我知道什么对我有用,看到其他人使用的东西很有意思。
我决定采用更科学的方法来确定最常用的重构命令。 Eclipse内置了Usage Data Collector (UDC)功能。数据为publicly available。我获取了数据并提取了下图,其中显示了最常用的编辑命令(没有导航命令)。
alt text http://img.skitch.com/20091207-bmcng36rjy837sqmcx58b85age.gif
但是,我坚信“保存操作”用于格式化和组织导入(阅读my article about it),所以我不会算这些。我也会删除评论行动。图片如下所示:alt text http://img.skitch.com/20091207-ieas1mk5114fwitucqkqxyw6t.gif
答案 1 :(得分:30)
重命名 - 因为提供有意义的名称是编写自我记录代码的最佳方式。 移 + 替代 + - [R
提取方法 - 只要方法过长。 移 + 替代 + 中号
提取常量 - 因为魔术数字不好。 Shift + Alt + T (重构菜单,没有直接的快捷方式)。
内联/引入变量 - 从方法中删除混乱。 Shift + Alt + I (内联), Shift + Alt + L (介绍)
答案 2 :(得分:20)
我的最爱(按使用顺序):
Alt-Shift-R
或Ctrl-1
以加快文件内重命名)Ctrl-1
,Alt-Shift-L
)Alt-Shift-M
)Ctrl-1
)Alt-Shift-C
)答案 3 :(得分:7)
我的最爱:
答案 4 :(得分:4)
最流行的重构已被陈述,我完全赞同。
代码格式化程序(来源,格式或 Ctrl Shift F )是我经常使用的IDE的功能之一。确实,它不是重构,但它在保持编码风格的同时提高了代码可读性:只需转到首选项, Java ,代码样式,< em> Formatter 并告诉Eclipse您希望代码看起来如何!
生成Getters和Setter 也是我在编写Java bean时节省时间的一项功能。
答案 5 :(得分:3)
对于所有流行的IDE,Eclipse可能是最少的重构。您可以考虑使用Netbeans或IntelliJ(社区版是免费的)。相反,Eclipse可能是最好的调试器。 ;)
我在编写代码时使用重构(我发现它的编写速度提高了大约15%)因此IntelliJ能够重构不能编译对我非常有用的代码。其他IDE现在可以支持这个(有人知道吗?) 我发现IntelliJ的智能完整性也更加智能。
我测试了从打印输出重新输入文件(最初用eclipse编写),发现用IntelliJ键入文件时使用的键少30%,鼠标移动少50%(与Eclipse相比)我估计Netbeans在某处中间。
答案 6 :(得分:2)
我最喜欢的是:
1)重命名 - 它适用于方法名称,变量名称,类名称,字段 - 实际上是任何带有名称的东西
2)将匿名类转换为嵌套 - 通过调试帮助您重复使用您认为在一个地方使用的逻辑(例如比较器)。
3)将成员类型转换为顶级 - 经常在将匿名类放入嵌套类之后,我发现该类在其他地方很有用。这种重构是完美的。
答案 7 :(得分:1)
我最常用的是按顺序重命名,提取方法和更改方法签名。
答案 8 :(得分:1)
红色衬里部分的CTRL + 1,即快速修复。
答案 9 :(得分:1)
我喜欢提取方法( Alt + Shift + M ),自3.6M1起,它现在处理选择包含continue语句。
为了保留现有代码的语义,选择需要包括循环的最后一个语句。在提取的方法中,continue语句被更改为返回:
对于在提取的方法中需要多个返回值的选择,Eclipse现在会在错误消息中列出冲突的变量:
答案 10 :(得分:0)
我用:
1-重命名 - 更正更好的方法名称
2-移动 - 以更好的方式组织我的包,比如当我开始我的项目时,它非常小,所以不需要io包,但现在是。
3-生成评论 - 当我创建.class时,请避免重新复制GPL许可证等
4-正确缩进 - 保持我的代码可读。
答案 11 :(得分:0)
还值得一读这项研究:D。Dig和R. Johnson的How do API evolve? A story of refactoring.。
作者注意到,80%的变化都是重构并对其进行了分类。这是摘要:
框架和图书馆改变他们的 蜜蜂。将应用程序迁移到 新的API很繁琐,会扰乱它 发展进程。一些 已提出工具和想法 最重要的是解决API的发展 更新是手动完成的。为了更好 了解要求 迁移工具,我们研究了API 四个框架和一个框架的变化 图书馆。我们发现了 破坏现有的变化 应用程序不是随机的,但往往是 落入特定类别。 超过80%的这些变化是 重构。这表明 基于重构的迁移工具 应该用来更新应用程序。
答案 12 :(得分:-3)
“同样值得一读这项研究:API如何发展?重构的故事.D。Dig和R. Johnson。
作者注意到,80%的变化都是重构并对其进行了分类。这是抽象的......“
80%的BREAKING变化被认为是重构。 重构本身只占API变化的20-30%..