标签: refactoring

在Eclipse中重命名包

在Eclipse的"Package Explorer"中,假设我有一个这样的包列表:

  • com.dog
  • com.cat
  • com.frog

如果我想将包结构的"com"部分重命名为"animal",那么我可以选择每个包(上面)并执行重构>重命名.

如果我有许多以"com"开头的软件包,那么这个过程可能需要一段时间.是否有一种简单的方法来重命名"com"包名称,而无需在Package Explorer中单独重命名每个包?或者在重命名之前从构建路径中删除这些包?

我试着去"导航器"窗格,它在树形结构中显示文件夹,但我没有给予重命名功能.

java eclipse refactoring

31
推荐指数
2
解决办法
5万
查看次数

重构20K行库的技巧

我已经给马里奥的答案赢得了100分的奖励,但是如果我看到新的好答案,我可能会开始第二个100分的奖励.这就是为什么我要保持这个问题的开放并且不会选择最终的答案,尽管将奖金授予马里奥.

这可能看起来像一个简单的问题(研究代码和重构),但我希望那些有更多经验的人可以给我一些可靠的建议.

该库是一个开源的20,000行库,它们都在一个文件中,我自己也没有写过.代码看起来写得很糟糕,单个文件甚至是一个更大的问题,因为它至少每次我想要进行更改时都会冻结eclipse半分钟,这也是我认为重构这个库的重要原因之一小班.

因此,除了阅读代码并试图理解它之外,在重构像这样的库时,是否存在常见的(或不常见的)提示?你有什么建议让我的生活更轻松一点?

感谢大家的意见.

php oop refactoring open-source

31
推荐指数
8
解决办法
1723
查看次数

在C#中将字节转换为GB?

我正在重构一些旧代码并遇到以下代码行将字节转换为GB.

decimal GB = KB / 1024 / 1024 / 1024;
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来重构下面的代码?

更新

我的意思是说千兆字节的字节数.我提供了错误的信息.

c# refactoring

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

关于使用Ropevim的任何指示?它是一个可用的库吗?

Rope是Python的重构库,RopeVim是一个调用Rope的Vim插件.

使用RopeVim的想法对我来说似乎很棒,有没有关于RopeVim"入门"的文档?

我遵循了以下文档:https://bitbucket.org/agr/ropevim/src/tip/README.txt

我想我正在寻找:

  • 看看这篇博文/文章/链接,这一切都有意义.
  • 替代建议,如"忘记RopeVim",它不能很好地工作或说"使用此而不是ropevim".

python vim refactoring rope

30
推荐指数
2
解决办法
7604
查看次数

Android Studio重构>提取>样式已禁用

我试图使用重构选项在android studio 0.8.9中提取样式.但由于某种原因,它似乎被禁用了.我试过清理和重建项目以防万一,甚至重新启动Android Studio,但似乎没有启用提取样式选项.

如果其他人遇到同样的问题或有办法解决这个问题,请告诉我吗?截图图片: 截图

refactoring android android-studio

30
推荐指数
1
解决办法
4057
查看次数

在Vim中重构C/C++(例如Eclipse中的方法提取)

Vim中是否有任何插件或内置方法可以对C或C++代码进行重构,比如Eclipse中的重构工具?

我特别热衷于Eclipse中的提取方法重构工具,它将从新方法中确定参数,并且通常还会猜测要用作返回值的变量.

c eclipse vim refactoring vim-plugin

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

Xcode中是否有一个关键组合来实现协议?

在Visual Studio中,如果我定义一个类来实现一个接口,例如

class MyObject : ISerializable {}
Run Code Online (Sandbox Code Playgroud)

我可以右键单击ISerializable,从上下文菜单中选择" 实现接口 ",并查看我的类定义中出现的相应方法.

class MyObject : ISerializable {
    #region ISerializable Members
    public void GetObjectData(SerializationInfo info, 
                StreamingContext context)
    {
        throw new NotImplementedException();
    }
    #endregion
}
Run Code Online (Sandbox Code Playgroud)

在Mac上的Xcode中有什么类似的功能吗?我希望能够以这种方式自动实现协议.也许使用生成的可选方法但注释掉了.

xcode refactoring code-generation objective-c

28
推荐指数
3
解决办法
2万
查看次数

重构和并发开发分支

假设您的软件现有版本有几个维护分支.一些开发人员正在对维护分支进行直接更改,并定期合并到主干中.现在,在主干代码行中进行了广泛的重构,计划即将发布主要版本.但是这使得维护分支基本上与主干中的代码不兼容,因为它们可能依赖于不再存在的代码.

你如何在实践中处理这种情况?

svn version-control refactoring branch

28
推荐指数
1
解决办法
2010
查看次数

为什么使用decimal(int [])构造函数?

我保持了C#桌面应用程序,在Windows 7上,使用Visual Studio 2013和某处有以下行,试图创建一个0.01十进制值的代码,使用十进制(的Int32 [])构造函数:

decimal d = new decimal(new int[] { 1, 0, 0, 131072 });
Run Code Online (Sandbox Code Playgroud)

第一个问题是,它与以下不同吗?

decimal d = 0.01M;
Run Code Online (Sandbox Code Playgroud)

如果没有什么不同,开发人员为什么会遇到这样编码的麻烦?

我需要更改此行以创建动态值.就像是:

decimal d = (decimal) (1 / Math.Pow(10, digitNumber));
Run Code Online (Sandbox Code Playgroud)

我会以这种方式引起一些不受欢迎的行为吗?

.net c# refactoring decimal

28
推荐指数
2
解决办法
2152
查看次数

程序类型已存在:android.support.v4.os.ResultReceiver $ MyResultReceiver

我正在重构一个使用androidx的应用程序.我一直在努力摆脱所有不支持它的库.我以为我已经删除了所有使用支持库的库,但看起来仍然有一些东西正在导入它.我现在得到错误:

AGPBI: {"kind":"error","text":"Program type already present: android.support.v4.os.ResultReceiver$MyResultReceiver","sources":[{}],"tool":"D8"} java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: /Users/name/myproject/app/build/intermediates/transforms/dexBuilder/debug/532, /Users/name/myproject/app/build/intermediates/transforms/dexBuilder/debug/0.jar, /Users/name/myproject/app/build/intermediates/transforms/dexBuilder/debug/1.jar,

...

/Users/name/myproject/app/build/intermediates/transforms/dexBuilder/debug/530.jar, /Users/name/myproject/app/build/intermediates/transforms/dexBuilder/debug/531.jar Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes. Program type already present: android.support.v4.os.ResultReceiver$MyResultReceiver at sun.reflect.GeneratedConstructorAccessor377.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:593) at java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:677) ... at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55) at java.lang.Thread.run(Thread.java:745) Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes. Program type already present: android.support.v4.os.ResultReceiver$MyResultReceiver at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1431) at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) at …

refactoring android androidx

27
推荐指数
3
解决办法
3万
查看次数