Resharper喜欢指出每个asp.net页面可以静态化的多个函数.如果我让它们静止,对我有帮助吗?我应该将它们设置为静态并将它们移动到实用程序类吗?
您使用什么工具在大型Java项目中查找未使用/死代码?我们的产品已经开发了几年,手动检测不再使用的代码变得非常困难.但是,我们尝试尽可能多地删除未使用的代码.
还赞赏对一般战略/技术(特定工具除外)的建议.
编辑:请注意,我们已经使用了代码覆盖率工具(Clover,IntelliJ),但这些都没有多大帮助.死代码仍然有单元测试,并显示为覆盖.我想一个理想的工具可以识别出具有很少其他代码的代码簇,从而允许docues手动检查.
当我在.java文件中时,未使用的代码通常是灰色的或者有一个绿色下划线,说这个代码可能(可能是因为一些奇怪的JNI/Reflection极端情况)未被使用.但我有这个项目有数千个Java文件,我想找到这些可能未使用的代码的所有实例.我怎么能在IntelliJ IDEA中做到这一点?
我经常发现文件的标题部分一直变得越来越大但它永远不会变小.在源文件的整个生命周期中,类可能已经移动并被重构,很可能有很多#includes不需要在那里再存在.将它们留在那里只会延长编译时间并增加不必要的编译依赖性.试图弄清楚哪些仍然需要可能是相当繁琐的.
是否有某种工具可以检测多余的#include指令并建议哪些可以安全删除?
lint可能这样做吗?
有没有办法在整个项目中找到并替换所有出现的单词(不只是使用重构 - >重命名的单个类),还可以在android studio或使用命令行脚本中维护大小写?
例如,供应商必须前往商家,供应商 - >商家,供应商 - >商家.我的老板要我改变供应商的所有实例,为我正在进行的项目提供商品.我已经做了大约一个小时,我知道我在浪费时间.让我知道任何时间保存建议.
我必须重构一个大的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++没有列在主页上.
我认为这个问题的答案仍然是"不".
Vi和Vim允许非常棒的自定义,通常存储在.vimrc文件中.程序员的典型特征是语法高亮,智能缩进等.
你有什么其他的生产性编程技巧,隐藏在你的.vimrc中?
我最感兴趣的是重构,自动类和类似的生产力宏,特别是对于C#.
我正在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) refactoring ×10
c# ×3
java ×3
.net ×2
c++ ×2
resharper ×2
android ×1
asp.net ×1
c ×1
code-metrics ×1
compareto ×1
comparison ×1
dead-code ×1
dependencies ×1
include ×1
null ×1
renaming ×1
vim ×1