标签: refactoring

方法可以做成静态,但应该吗?

Resharper喜欢指出每个asp.net页面可以静态化的多个函数.如果我让它们静止,对我有帮助吗?我应该将它们设置为静态并将它们移动到实用程序类吗?

.net c# resharper refactoring static-methods

356
推荐指数
10
解决办法
6万
查看次数

如何在java项目中查找未使用/死代码

您使用什么工具在大型Java项目中查找未使用/死代码?我们的产品已经开发了几年,手动检测不再使用的代码变得非常困难.但是,我们尝试尽可能多地删除未使用的代码.

还赞赏对一般战略/技术(特定工具除外)的建议.

编辑:请注意,我们已经使用了代码覆盖率工具(Clover,IntelliJ),但这些都没有多大帮助.死代码仍然有单元测试,并显示为覆盖.我想一个理想的工具可以识别出具有很少其他代码的代码簇,从而允许docues手动检查.

java refactoring dead-code

300
推荐指数
11
解决办法
15万
查看次数

如何使用IntelliJ IDEA查找所有未使用的代码?

当我在.java文件中时,未使用的代码通常是灰色的或者有一个绿色下划线,说这个代码可能(可能是因为一些奇怪的JNI/Reflection极端情况)未被使用.但我有这个项目有数千个Java文件,我想找到这些可能未使用的代码的所有实例.我怎么能在IntelliJ IDEA中做到这一点?

java refactoring intellij-idea code-metrics code-inspection

281
推荐指数
2
解决办法
11万
查看次数

在C/C++中检测多余的#includes?

我经常发现文件的标题部分一直变得越来越大但它永远不会变小.在源文件的整个生命周期中,类可能已经移动并被重构,很可能有很多#includes不需要在那里再存在.将它们留在那里只会延长编译时间并增加不必要的编译依赖性.试图弄清楚哪些仍然需要可能是相当繁琐的.

是否有某种工具可以检测多余的#include指令并建议哪些可以安全删除?
lint可能这样做吗?

c c++ refactoring dependencies include

272
推荐指数
9
解决办法
9万
查看次数

查找并替换Android工作室

有没有办法在整个项目中找到并替换所有出现的单词(不只是使用重构 - >重命名的单个类),还可以在android studio或使用命令行脚本中维护大小写?

例如,供应商必须前往商家,供应商 - >商家,供应商 - >商家.我的老板要我改变供应商的所有实例,为我正在进行的项目提供商品.我已经做了大约一个小时,我知道我在浪费时间.让我知道任何时间保存建议.

refactoring android renaming android-studio

245
推荐指数
7
解决办法
20万
查看次数

查找未使用的代码

我必须重构一个大的C#应用​​程序,我发现了很多从未使用过的函数.如何检查未使用的代码,以便删除所有未使用的功能?

.net c# refactoring

206
推荐指数
5
解决办法
10万
查看次数

ReSharper有哪些替代方案?

我正在考虑购买ReSharper许可证,但ReSharper是否有任何可能的替代方案?与ReSharper相比,您如何评价这些?

它不一定是一个免费的替代品,但我只想知道同等产品有多好.

c# asp.net resharper refactoring

164
推荐指数
6
解决办法
14万
查看次数

是否有一个可用的C++重构工具?

有没有人知道一个功能齐全的C++重构工具,可以在大型代码库(大约100.000行)下可靠地工作?

在过去的几年里,我一次又一次地尝试了我能找到的东西:SlickEdit,Eclipse CDT.它们都没有用.

摘要:我花时间评估"Visual Assist X"以及"Refactor for C++".两者都有一些令人印象深刻的功能,但两者都远非完美.如果不进行手动修改,通常无法提取大量代码 - 因此无法获得回报.

"Visual Assist X"具有很好的功能,例如更完整的自动复合等.但它会导致如此多的闪烁并在某些点上减慢很多.

因此我认为答案是:"不,没有适合C++的生产就绪重构工具"

更新2015年3月 至于今天的hdoghmens回复,我尝试了Resharper for C++.他的链接 https://www.jetbrains.com/resharper/对C++没有任何说明.但我发现一年多前在这里公布的Resharper C++:

https://www.jetbrains.com/resharper/features/cpp.html

我用VC2010试用了一个20MB的代码库.

测试1:提​​取方法:导致Resharper异常.没有源代码更改.

测试2:使用不同来源的提取方法:正常工作

测试3:更改提取函数的签名:破解C++代码的结果:

bool myclass::do_work123(<unknown long Color>int& Filled*&, long, int&)
Run Code Online (Sandbox Code Playgroud)

也许这就是为什么C++没有列在主页上.

我认为这个问题的答案仍然是"不".

c++ refactoring

159
推荐指数
7
解决办法
5万
查看次数

.vimrc中有什么内容?

Vi和Vim允许非常棒的自定义,通常存储在.vimrc文件中.程序员的典型特征是语法高亮,智能缩进等.

你有什么其他的生产性编程技巧,隐藏在你的.vimrc中?

我最感兴趣的是重构,自动类和类似的生产力宏,特别是对于C#.

vim refactoring

157
推荐指数
15
解决办法
25万
查看次数

如何简化null安全的compareTo()实现?

我正在compareTo()为一个简单的类实现方法(为了能够使用Collections.sort()和Java平台提供的其他好东西):

public class Metadata implements Comparable<Metadata> {
    private String name;
    private String value;

// Imagine basic constructor and accessors here
// Irrelevant parts omitted
}
Run Code Online (Sandbox Code Playgroud)

我希望这些对象的自然顺序为:1)按名称排序; 2)如果名称相同则按值排序; 两种比较都应该不区分大小写.对于这两个字段,空值完全可以接受,因此compareTo在这些情况下不得中断.

脑海中出现的解决方案与以下几行相似(我在这里使用"保护条款",而其他人可能更喜欢单个返回点,但这不是重点):

// primarily by name, secondarily by value; null-safe; case-insensitive
public int compareTo(Metadata other) {
    if (this.name == null && other.name != null){
        return -1;
    }
    else if (this.name != null && other.name == null){
        return 1;
    }
    else if (this.name != null && …
Run Code Online (Sandbox Code Playgroud)

java comparison null refactoring compareto

147
推荐指数
7
解决办法
14万
查看次数