问题标签 [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 投票
5 回答
887 浏览

version-control - 当使用 Borland StarTeam 更改文件夹结构时,如何合并我的文件?

我正在重构一些代码,其中包括移动文件夹,我想定期合并以保持最新状态。在工作副本中移动文件夹后,最好的合并方式是什么?

0 投票
7 回答
39321 浏览

python - 你为 Python 使用了哪些重构工具?

我有一堆要重命名的类。其中一些名称很小,并且该名称在其他类名中重复使用,我不希望更改该名称。其中大部分存在于 Python 代码中,但我们也有一些引用类名的 XML 代码。

简单的搜索和替换只能让我到目前为止。就我而言,我想将 AdminAction 重命名为 AdminActionPlug 并将 AdminActionLogger 重命名为 AdminActionLoggerPlug,因此第一个的搜索和替换也会错误地命中第二个。

有没有人有使用 Python 重构工具的经验?如果他们也可以修复 XML 文档中的类名,则可以加分。

0 投票
11 回答
1530 浏览

refactoring - 重写还是修复?

我敢肯定你们都去过那里,你们承担了一个项目,其中有一个老旧的代码库,几乎不适合目的,你必须决定要么从头开始重新编写它,要么修复已经存在的代码。

传统观点倾向于建议您永远不要尝试从头开始重写,因为失败的风险非常高。那么当你遇到这个问题时你做了什么,你是如何做出决定的,结果如何?

0 投票
15 回答
83828 浏览

parameters - 多少个构造函数参数太多了?

假设您有一个名为 Customer 的类,其中包含以下字段:

  • 用户名
  • 电子邮件

还假设根据您的业务逻辑,所有 Customer 对象都必须定义这四个属性。

现在,我们可以通过强制构造函数指定这些属性中的每一个来轻松地做到这一点。但是,当您被迫向 Customer 对象添加更多必填字段时,很容易看出这会如何失控。

我见过在构造函数中包含 20 多个参数的类,使用它们很痛苦。但是,或者,如果您不需要这些字段,则可能会遇到未定义信息的风险,或者更糟糕的是,如果您依赖调用代码来指定这些属性,则会出现对象引用错误。

是否有任何替代方案,或者您是否只需要决定 X 数量的构造函数参数是否太多而无法忍受?

0 投票
3 回答
363 浏览

refactoring - 对于初学者来说,哪个是更好的重构工具(易于学习和使用)?

Resharper、RefactorPro 等?

0 投票
9 回答
729 浏览

refactoring - 在哪里可以找到有关重构的资源?

重构是在不改变其行为的情况下改进现有系统设计的过程。

除了 Martin Fowler 的开创性著作《重构 - 改进现有代码的设计》和 Joshua Kerievsky 的著作《重构为模式》之外,还有什么关于重构的好资源吗?

0 投票
5 回答
232 浏览

refactoring - 跟踪 Bug 数据库中的重构

假设您在某个地方工作,对源代码的每次更改都必须与错误报告或功能请求相关联,并且无法改革该政策。在这样的环境中,处理代码重构(即改进代码但不修复错误或添加功能的更改)的最佳方法是什么?

  • 编写错误报告并将重构与它相关联。
  • 编写一个功能请求并将重构与它相关联。
  • 在处理与错误报告/功能请求相关的代码时潜入重构。
  • 只是不要进行任何重构。
  • 其他

请注意,所有错误报告和功能描述都将对经理和客户可见。

0 投票
2 回答
271 浏览

.net - 开始一份专注于棕地应用程序重构和敏捷的新工作

我星期一要开始一份新工作。该公司有一个本土企业案例管理应用程序,用ASP.NET/VB.NET. 他们正在尝试实施敏捷开发过程。他们甚至让两个人获得了 Scrum Master 认证并聘请了一名敏捷教练。他们目前专注于 6-9 个月的重构。

我的问题是,在这种环境下,有哪些好的方法/工具可以让我熟悉代码库并在我一落地就提高生产力?有什么建议吗?

0 投票
7 回答
545 浏览

c# - 在 C#(或任何语言)中,您最喜欢的消除重复的方式是什么?

我刚刚编写了一个 700 行的类。可怕。我羞愧地低下了头。它与DRY正好相反,就像英国的夏天一样。

它充满了剪切和粘贴,并在这里和那里进行了细微的调整。这使它成为重构的主要候选者。在我开始之前,我想我会问当你有很多重复时,你寻找的第一个重构机会是什么?

作为记录,我的可能正在使用:

  1. 泛型类和方法
  2. 方法重载/链接。

你的是什么?

0 投票
3 回答
7694 浏览

ruby-on-rails - 如何编写跨模型、控制器和视图的 Rails mixin

为了减少我的小 Rails 应用程序中的代码重复,我一直致力于将我的模型之间的通用代码放入它自己的单独模块中,到目前为止一切都很好。

模型的东西相当简单,我只需要在开始时包含模块,例如:

这工作正常,但是现在,我将有一些控制器和视图代码,这些代码在这些模型之间也将是通用的,到目前为止,我有这个用于我的可发送内容:

基本上我打算只为控制器和视图做一个包含 Sendable::Controller 和 Sendable::View (或等效的),但是,有没有更干净的方法来做到这一点?我正在寻找一种在我的模型、控制器和视图之间拥有一堆公共代码的简洁方法。

编辑:澄清一下,这只能在 2 或 3 个模型之间共享。