我想知道其他开发人员如何开始重构.你的第一步是什么?如果你重构不属于你的代码,这个过程(重构)会有什么不同?你在重构时写测试吗?
任何人都可以推荐一些关于如何解决启动UnitTest大型现有CodeBase问题的最佳实践吗?我目前面临的问题包括:
显然,我明白我应该从重构代码开始,使它更少耦合,更可测试.但是,如果没有UnitTests(鸡和鸡蛋,任何人?),进行这样的重构是有风险的.
另外,您是否建议在Domain类或层级类(日志记录,实用程序等)上启动重构和编写测试?
是什么导致计算机程序变成泥球?是否有可能从这种反模式中恢复?是否有可以应用的经过验证的重构方法?
我在业务层项目中有几个接口和类,我想将它们移动到一个全新的项目中.我正在使用Resharper 4.5.2.有什么方法可以轻松地做到这一点并且没有痛苦吗?我知道移动类型功能,但它似乎只会在同一个项目中执行.
任何帮助将不胜感激
谢谢!
refactoring projects-and-solutions resharper-4.5 visual-studio-2008
有这样的事吗?作为产品的一部分还是插件?我看不到它.
我想从:
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) 我有以下方法来计算平均值:
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)
有什么建议?
可能重复:
如何管理CSS爆炸
我打算用一致的样式和一致的CSS方案构建我的网站.但是当我调整单个页面(特别是主搜索表单)时,样式已经失控.
我已经完成了一次破坏样式和几乎从头开始重建的过程,现在看起来是时候再次这样做了.我怎么能有效率呢?我正在寻找一种方法,而不是软件实用程序(虽然我愿意接受那些建议......除非他们花钱......).
补充说明: 我使用的是CSS框架,很难保持padding和margin协调.
补充说明2: 此帖子的初始回复是关于CSS的最佳做法.我们假设我已经尝试过遵循最佳实践(事实上,我做过).现在这是我正在寻找的清理程序.
添加了注释3: 截至6月14日,将此回复(我刚发现)与下面的帖子相结合可能是一个全面的答案.
关闭说明:
我知道我的问题太笼统了,因此我希望我没有发布它.(也许这就是为什么它得到了一次投票......我将永远不知道没有评论来解释原因.)另一方面,我得到了我需要的东西,所以我很高兴我发布了它.
我很惊讶我没有对我的答案进行投票 - 即使有其他人无价的投入,我认为它很好.
从我的观点来看,我的接受主要取决于答案的可用性 - 这一观点令人遗憾地无法消化一些更令人兴奋和全面的答案.
作为完全重复关闭
我只是尝试再次发布这个(主题,正文,标签),看看是否会建议帖子"如何管理CSS爆炸".有趣的是,它没有.我在refactoring该帖子中添加了标签.
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
我有一个接口,我想移动到另一种类型.有没有办法让Eclipse帮助我做出改变?同样的更改也可以应用于类以将其移动到另一个类中.
基本上,我正在寻找转换成员类型到顶级的反向.我希望它会成为Move,但它只提供包作为目标.
我已经下载了一个项目,它全部使用Tab,但我总是使用Space.有一个选项"编辑 - >高级 - > Untabify",但那时我必须逐个选择文件并为所有这些文件执行此操作,所以我想知道是否有一种方法可以将thzt应用于整个文件在项目中.我正在使用C#和VS2010 Pro.我也安装了Resharper,以防它有一些可以提供帮助的东西.
refactoring ×10
unit-testing ×2
c# ×1
css ×1
deep-linking ×1
deprecated ×1
eclipse ×1
java ×1
react-native ×1
recovery ×1
resharper ×1
ruby ×1