标签: refactoring

你怎么重构?

我想知道其他开发人员如何开始重构.你的第一步是什么?如果你重构不属于你的代码,这个过程(重构)会有什么不同?你在重构时写测试吗?

refactoring unit-testing

19
推荐指数
2
解决办法
1440
查看次数

在LARGE项目上启动UnitTesting

任何人都可以推荐一些关于如何解决启动UnitTest大型现有CodeBase问题的最佳实践吗?我目前面临的问题包括:

  • 巨大的代码库
  • ZERO现有的UnitTests
  • 类之间的高耦合
  • 复杂的OM(我在这里做的不多 - 这是一个复杂的业务领域)
  • 缺乏编写UnitTests/TDD的经验
  • 数据库依赖
  • 外部源依赖项(Web服务,WCF服务,NetBIOS等)

显然,我明白我应该从重构代码开始,使它更少耦合,更可测试.但是,如果没有UnitTests(鸡和鸡蛋,任何人?),进行这样的重构是有风险的.

另外,您是否建议在Domain类或层级类(日志记录,实用程序等)上启动重构和编写测试?

refactoring unit-testing

19
推荐指数
3
解决办法
2530
查看次数

如何克服"大泥球"的反模式?

是什么导致计算机程序变成泥球?是否有可能从这种反模式中恢复?是否有可以应用的经过验证的重构方法?

refactoring recovery design-patterns anti-patterns

19
推荐指数
2
解决办法
3192
查看次数

通过Resharper将类型从一个项目移动到另一个项目?

我在业务层项目中有几个接口和类,我想将它们移动到一个全新的项目中.我正在使用Resharper 4.5.2.有什么方法可以轻松地做到这一点并且没有痛苦吗?我知道移动类型功能,但它似乎只会在同一个项目中执行.

任何帮助将不胜感激

谢谢!

refactoring projects-and-solutions resharper-4.5 visual-studio-2008

19
推荐指数
2
解决办法
4584
查看次数

Resharper重构以删除魔法字符串

有这样的事吗?作为产品的一部分还是插件?我看不到它.

我想从:

public DataTable Fetch() {
    return ExecuteDataTable(_ConnectionString, "pr_DetectAffectedOrderLines");
}
Run Code Online (Sandbox Code Playgroud)

至:

private const string SP_DETECT_AFFECTED_ORDER_LINES="pr_DetectAffectedOrderLines";

public DataTable Fetch() {
    return ExecuteDataTable(_ConnectionString, SP_DETECT_AFFECTED_ORDER_LINES);
}
Run Code Online (Sandbox Code Playgroud)

c# resharper refactoring

19
推荐指数
1
解决办法
4931
查看次数

Ruby方式:按零划分

我有以下方法来计算平均值:

def compute_average(a,b,c,d,e)
  total = [a,b,c,d,e].sum.to_f
  average = [a, 2*b, 3*c, 4*d, 5*e].sum / total
  average.round(2)
end
Run Code Online (Sandbox Code Playgroud)

这没什么特别的,但它有一个问题,我期望所有平均方程都有:如果输入全为零,它可能除以零.

所以,我想到这样做:

def compute_average(a,b,c,d,e)
  total = [a,b,c,d,e].sum.to_f
  if total==0
    average = 0.00
  else
    average = [a, 2*b, 3*c, 4*d, 5*e].sum / total
    average.round(2)
  end
end
Run Code Online (Sandbox Code Playgroud)

......这样可行,但对我来说感觉很糟糕.有没有更优雅的"Ruby Way"来避免这种划分为零的问题?

我希望我拥有的是"除非那么"的操作员,比如......

average = numerator / denominator unless denominator == 0 then 0
Run Code Online (Sandbox Code Playgroud)

有什么建议?

ruby refactoring divide-by-zero

19
推荐指数
4
解决办法
1万
查看次数

我如何重构我的CSS?

可能重复:
如何管理CSS爆炸

我打算用一致的样式和一致的CSS方案构建我的网站.但是当我调整单个页面(特别是主搜索表单)时,样式已经失控.

我已经完成了一次破坏样式和几乎从头开始重建的过程,现在看起来是时候再次这样做了.我怎么能有效率呢?我正在寻找一种方法,而不是软件实用程序(虽然我愿意接受那些建议......除非他们花钱......).

补充说明: 我使用的是CSS框架,很难保持paddingmargin协调.

补充说明2: 此帖子的初始回复是关于CSS的最佳做法.我们假设我已经尝试过遵循最佳实践(事实上,我做过).现在这是我正在寻找的清理程序.

添加了注释3: 截至6月14日,将此回复(我刚发现)与下面的帖子相结合可能是一个全面的答案.

关闭说明:

我知道我的问题太笼统了,因此我希望我没有发布它.(也许这就是为什么它得到了一次投票......我将永远不知道没有评论来解释原因.)另一方面,我得到了我需要的东西,所以我很高兴我发布了它.

我很惊讶我没有对我的答案进行投票 - 即使有其他人无价的投入,我认为它很好.

从我的观点来看,我的接受主要取​​决于答案的可用性 - 这一观点令人遗憾地无法消化一些更令人兴奋和全面的答案.

作为完全重复关闭

我只是尝试再次发布这个(主题,正文,标签),看看是否会建议帖子"如何管理CSS爆炸".有趣的是,它没有.我在refactoring该帖子中添加了标签.

css refactoring

19
推荐指数
2
解决办法
5645
查看次数

removeEventListener 已弃用,我无法正确重构它

Linking.removeEventListener('url', onReceiveURL);

removeEventListener 已弃用。

这是我的 IDE 的建议:

EventEmitter.removeListener('url', ...):方法已被弃用。请改为使用remove()所返回的订阅 EventEmitter.addListener

  // Custom function to subscribe to incoming links
  subscribe(listener: (deeplink: string) => void) {
    // First, you may want to do the default deep link handling
    const onReceiveURL = ({url}: {url: string}) => listener(url);
    // Listen to incoming links from deep linking
    Linking.addEventListener('url', onReceiveURL);
    const handleDynamicLink = (
      dynamicLink: FirebaseDynamicLinksTypes.DynamicLink,
    ) => {
      listener(dynamicLink.url);
    };
    const unsubscribeToDynamicLinks = dynamicLinks().onLink(handleDynamicLink);
    return () => {
      unsubscribeToDynamicLinks();
      Linking.removeEventListener('url', onReceiveURL);
    }; …
Run Code Online (Sandbox Code Playgroud)

refactoring dynamic-linking deprecated deep-linking react-native

19
推荐指数
2
解决办法
1万
查看次数

如何在Eclipse中重构顶级类或接口到内部类?

我有一个接口,我想移动到另一种类型.有没有办法让Eclipse帮助我做出改变?同样的更改也可以应用于类以将其移动到另一个类中.

基本上,我正在寻找转换成员类型到顶级的反向.我希望它会成为Move,但它只提供包作为目标.

java eclipse refactoring

18
推荐指数
1
解决办法
3103
查看次数

是否存在解决方案范围内的Untabify整个文件的方法

我已经下载了一个项目,它全部使用Tab,但我总是使用Space.有一个选项"编辑 - >高级 - > Untabify",但那时我必须逐个选择文件并为所有这些文件执行此操作,所以我想知道是否有一种方法可以将thzt应用于整个文件在项目中.我正在使用C#和VS2010 Pro.我也安装了Resharper,以防它有一些可以提供帮助的东西.

refactoring visual-studio-2010

18
推荐指数
1
解决办法
2982
查看次数