什么是C++;您在实践中使用了哪些重构? < >我将创建现有的自动化C++重构工具的比较表,并探索自由和开源工具的创建能力。
我的问题是:你在日常工作中真正使用的重构是什么?有明显的事情,比如重命名变量/类/方法,但是有什么特定的C++,比如处理模板、STL、复制构造函数、初始化器等等? 我感兴趣的是C++开发人员每天在代码中所面对的所有小问题的真实图像的构建,至少在理论上是可以自动化的。我正在和同事们谈话,但这可能还不够什么是C++;您在实践中使用了哪些重构? < >我将创建现有的自动化C++重构工具的比较表,并探索自由和开源工具的创建能力。,c++,refactoring,automated-refactoring,C++,Refactoring,Automated Refactoring,我的问题是:你在日常工作中真正使用的重构是什么?有明显的事情,比如重命名变量/类/方法,但是有什么特定的C++,比如处理模板、STL、复制构造函数、初始化器等等? 我感兴趣的是C++开发人员每天在代码中所面对的所有小问题的真实图像的构建,至少在理论上是可以自动化的。我正在和同事们谈话,但这可能还不够 提前感谢。您好,我使用这个工具重命名变量/类/方法,更改函数体和初始值设定项。看看Martin Fowler和Joshua Kerievsky的作品。这些反过来又引用了GoF的书,所以也要得到它 如
提前感谢。您好,我使用这个工具重命名变量/类/方法,更改函数体和初始值设定项。看看Martin Fowler和Joshua Kerievsky的作品。这些反过来又引用了GoF的书,所以也要得到它
如果你可以超越基本的重命名特征和提取函数,那么你可能会成为赢家。
< P>这是我昨天提出的一个C++设计模式:放弃继承来支持政策。 < P>正如你所说的,有明显的事情:- 重命名就是其中之一
- 更改函数签名是另一个问题(特别是因为函数几乎必然是重复的:头中的声明和源中的实现)
- 重命名/移动文件(更新include指令)
- 更改函数签名时,您需要更新所有调用站点,开发人员需要帮助对其进行本地化
- 通过继承,可以对层次结构的所有类进行操作:更改函数签名(再次)或添加/删除虚拟重写
- 有了模板:概念提案已经被删除,如果您可以在传递的类型上合成需求(需要方法/内部类型),那么在更改这些需求时(通过修改模板定义)您将收到此模板正在使用的类列表的通知,这些类不再符合该模板(并且将被更新)。请注意,如果只是重命名类型/方法,您可能希望自动传播更改,只要它不破坏任何其他内容
祝你好运…我希望支持的一种重构实际上是注入方法。或多或少与提取方法相反
因为也许我看到我可以重新排列生成的代码,使其更清晰或效果更好;但我不知道目前有工具支持。 < P>从答案中可以清楚地看出,很少有C++程序员曾经见过真正的重构工具。是的,它们非常罕见,并且对您使用的IDE非常特定。这是不可避免的,否则就没有好的方法来找出哪些源代码文件将代码贡献给最终的可执行文件。预处理器使其更具挑战性,您需要知道宏值。需要一个源代码解析器,但还不够