问题标签 [automated-refactoring]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
914 浏览

refactoring - Eclipse CDT 重构项目死了吗?

我最近访问过该网站,但似乎没什么用(除了主页)

0 投票
6 回答
13421 浏览

java - 如何将静态内部类重构为 Eclipse 中的顶级类?

我无法为以下场景找到正确的重构选项:

我有这样的代码(在 Outer.java 中):

我正在寻找一种方法来选择 Inner,并将其转换为顶级类,在它自己的.java源文件中。我知道这很容易通过复制/粘贴等手动完成,但是内部类在很多地方都被引用,我希望重构选项在它被引用的任何地方处理更改。

我已经尝试过这个选项,但是这对一个我不太理解Refactor -> Extract Class...的字段做了一些奇怪的事情。data

Eclipse 版本是 3.5.1 Galileo。

如何将静态内部类重构为顶级类?


编辑:不敢相信我忽略了这样做的选项。感谢您的所有正确答案,+1 给大家。我仍然需要接受答案,所以如果有任何更有用的信息,例如脚本的陷阱,留下答案仍然是有目的的。

0 投票
1 回答
3739 浏览

visual-c++ - Visual Studio:当另一个更改时自动更新 C++ cpp/头文件?

例如,如果我在标头或 cpp 中更改函数中的签名,我希望它在另一个函数中自动更改。如果我在其中一个中添加一个新函数,它应该同时出现在两者中。如果我删除一个函数,它可能会注释掉另一个函数。手动复制一个人的更改似乎很愚蠢。

有些人在回答类似问题时提到了http://www.lazycplusplus.com/,但似乎这是一个命令行工具,需要保存然后在特定文件上运行此外部工具。这仍然比我认为的需要更多的手动步骤。我希望在我键入时应用更改。

0 投票
3 回答
9731 浏览

c++ - 用于 C++ 开发的 Refactor Pro 与 Visual Assist X

可以为提供 C++ 支持的 Visual Studio 安装两个主要的重构工具。这两个工具的完整版本是 250 美元,而且它们似乎提供了类似的功能。他们是:

哪个工具更好?

编辑:我对这些工具的初步评估似乎是 Refactor Pro/CodeRush 有更多功能,但有时也有很多错误。它似乎不喜欢宏:( 来源:billy-oneal.com

这是 Visual Assist 的解释:( 来源:billy-oneal.com

EDIT2:我认为我喜欢 CodeRush 而不是 Visual Assist,但我不确定我是否可以信任 CR。CodeRush 似乎在解析一些 C++ 结构时遇到问题,比如上面的宏。但它的用户界面更加精致。例如:( 来源:billy-oneal.com

另一方面,Visual Assist X 在 C++ 开发人员中似乎有更多的追随者,而且它的代码分析要好得多。它似乎不会像R一样犯错误!Pro不时在制作。

我认为此时我只需要同时使用这两种工具,看看哪个更有用。但是我仍然很好奇是否有人使用任何一种工具都有过恐怖/成功的故事。

0 投票
4 回答
263 浏览

asp.net - XHTML 1.0 Transitive,有没有可以重构 HTML 的工具?

我有一个使用以下配置设置运行的 Asp.net Web 应用程序。

这限制了 AJAX 的使用以及与多个浏览器的兼容性。

如果我的理解是正确的,aspx 页面的 HTML 代码需要修复以符合 XHTML 1.0 Transitional。

有很多 HTML 页面,大约 1000 个,有没有可以加快这个过程的工具?

0 投票
0 回答
783 浏览

wcf - WCF客户端代理类重命名问题

也许其他人也遇到过同样的问题。WCF 客户端代理的默认类名似乎是 Service1Client。当我删除服务引用并重新创建它时,名称保持不变。(虽然它确实让我有机会命名命名空间。)

当我在 Service1Client 上选择 Refactor/Rename(即:代理的类名)时,它失败并显示以下消息:

无法重构文件“Service References\myNameSpace\References.cs”。当前对象由 Wcf 客户端生成器自动生成,无法重命名。

0 投票
6 回答
7572 浏览

c++ - C/C++ 包来理解重构代码

我即将开始从事一个项目,该项目涉及重构和修改 c 和 c++ 中的现有代码。代码很臃肿,而且数量巨大。当然,由于需要修改代码,因此必须在很短的时间内开发对代码的理解,因为我们有一些时间紧迫的项目时间表。任何人都可以建议任何有助于实现上述目标的开源工具。简而言之,我正在寻找的是可以:

  1. 有助于理解设计的逆向工程工具。
  2. 序列生成器工具将有助于在运行时绘制序列(很可能我们将能够运行代码,但至少不能在初始阶段)或通过代码检查。
  3. 研究现有代码库的良好代码浏览工具。
  4. 合适的工具,可以以最小的努力自动重构代码。

请告诉我任何值得关注的经历、偏好或最爱。

[编辑] 在上面列出了可以提供帮助的工具列表。这是列表:

  1. Graphviz & doxygen
    从现有代码库生成 UML 类图

  2. UMLStudio
    为您的 OO 遗留代码创建对象模型是分析、理解和维护它的最佳方法。UMLStudio 可以比任何其他 CASE 工具更快地自动将 C++、Java、CORBA IDL、PHP 5 和 Ada 95 代码转换为 OOA&D 符号。

  3. C++
    的 CodeDrawer CodeDrawer 将源代码转换为基于可视化的图表。类、结构和源代码的任何元素都可以显示在图表中。它还显示了函数和方法的逻辑。CodeDrawer 有助于理解项目的源代码

  4. Imagix
    源代码的逆向工程和可视化导致改进的程序理解。速度:学习不熟悉的代码更改影响分析集成开源代码代码重用软件维护

  5. AgileJ AgileJ StructureViews 是 Eclipse Java IDE 的插件,它可以在工业规模上生成高度可定制的 UML 类图,非常适合敏捷开发或探索任何现有 Java 代码库。

  6. MaintainJ 如果您可以运行代码库,那么当您运行特定用例时,MaintainJ 在运行时生成 UML 序列和类图。

  7. Java 逆向工程工具 从 Java 源代码生成类图和类之间的关系。

  8. Source Insight 优秀的资源浏览软件

还有一个,感谢 Steve Townsend
Klocwork

0 投票
6 回答
4468 浏览

java - 重构以将私有字段从一个类移动到它的助手类?

编辑: 我为此重构提交了Eclipse 增强请求。

有没有办法将私有字段从一个类移动到它的助手类?下面的小鸡 UML 显示了我现在正在手动执行的操作。类在重构之前具有对对象的 C1私有field和私有最终引用。Helper

重构之后,to 中的所有引用C1'field被更改为helper.getField()and helper.setfield()

UML 图

我已经大量使用了 Eclipse 的重构功能,但我想不出一种自动化的方法。

例如,理想情况下,我会将私有字段/属性/成员从一个类拖到另一个类,并希望 Eclipse 询问我想如何处理未解析的引用。它没有提供任何建议并破坏了所有参考。

我一直在重复的操作是将不属于当前课程的知识和行为分开。我正在将引用某些字段的属性和行为从原始类移到一个新的“帮助器”类中。

我重构的第一步是移动字段。对助手类的引用作为我要重构的类中的一个字段存在。为了 C1在重构过程中不中断,我认为如果 Eclipse 提供生成 getter 和 setterHelper'并更新引用C1以在新类中使用 getter/setter 会很好。

0 投票
12 回答
1726 浏览

java - 7000 个引用的 Java 源代码重构

我需要更改整个代码库中使用的方法的签名。

具体来说,该方法void log(String)将采用两个额外的参数 ( Class c, String methodName),这两个参数需要由调用者提供,具体取决于调用它的方法。我不能简单地通过null或类似。

为了给出范围的概念,Eclipse 找到了 7000 个对该方法的引用,所以如果我更改它,整个项目将会失败。我需要数周时间才能手动修复它。

据我所知,Eclipse 的 Eclipse 重构插件不能胜任这项任务,但我真的很想自动化它。
那么,我怎样才能完成工作呢?

0 投票
2 回答
123 浏览

javascript - 有没有人可以自动尝试将 javascript 重构为更原型/oo 风格的工具?

在我看来,在许多情况下,可以自动执行将函数式和/或类样式 javascript 源转换为更多原型/非基于类的 oo 源所需的一些重构。

有没有人认真尝试过编写一个进行这种自动重构的工具?