我只是在寻找一些灵感.特别是在性能和安全性方面,命名约定很重要但不像"酷";)
即使您的规则仅适用于您的域/项目,但演示了规则的强大程度,请告知我们.
我使用C#,但我对任何语言的规则感兴趣.
PMD在Sun Security规则集中有一个名为ArrayIsStoredDirectly的规则:
接收数组的构造函数和方法应克隆对象并存储副本.这可以防止用户将来的更改影响内部功能.
这是他们的例子:
public class Foo {
private String [] x;
public void foo (String [] param) {
// Don't do this, make a copy of the array at least
this.x=param;
}
}
Run Code Online (Sandbox Code Playgroud)
我不认为我完全理解这条规则背后的原因.是因为传递的数组中的值可以在其他地方更改吗?传递Collection与传递数组有什么不同?
是否有一种快速方法可以在Eclipse中查找Java文件中所有已注释掉的代码?"搜索"中的任何选项,或者任何可以执行此操作的加载项?
它应该只能找到注释掉的代码,但不能找到普通的注释.
每当我用一种方法调用我的记录器时,例如
_logger.Debug("Connecting to database...");
Run Code Online (Sandbox Code Playgroud)
我收到警告:
CA1303 : Microsoft.Globalization:
Method 'Database.Connect()' passes a literal
string as parameter 'message' of a call to 'ILogger.Debug(string)'.
Retrieve the following string(s) from a resource table instead:
"Connecting to database...".
Run Code Online (Sandbox Code Playgroud)
有没有办法在每次使用函数时抑制此警告ILogger?我真的不想在我使用它的每种方法中压制它.
我正在使用Visual Studio 2013.我正在修改其他人留下的一些可怕的代码,它们几乎使用了全局变量,并尝试清理它,这样我就可以正确地封装每个函数,而不会造成影响.传入(或从中返回).
有没有办法轻松检查整个项目中是否有在其使用范围之外定义的变量?
我知道我可以点击一个变量,并SHIFT+F12会找到该变量的用法,但我想在整个项目中找到所有这些用法,因为问题真的很糟糕......它不只是一两个全局变量,我说几十个.试图了解这个程序的流程及其状态足以让你大量饮酒!
c# encapsulation code-analysis global-variables local-variables
在"普通"Visual Studio项目(.csproj)的属性中,可以说在Build上启用代码分析(以前称为FxCop).
自从我开始使用新的DNX项目(.xproj)后,我正在寻找类似的东西.我知道可能没有构建输出,所以旧的方法可能不适合这个,但我很确定Code Analysis/FxCop规则仍然适用.此外,应该有一些方法在新的"实际"项目文件(project.json)中注册自定义规则集(.ruleset)文件.
也许我会忽略一些基于Roslyn之类的更现代的东西?
code-analysis visual-studio visual-studio-2015 .net-core asp.net-core
我刚刚从Subversion检查了一个解决方案,ReSharper告诉我它有191个文件有错误.事实上,它构建完美.
它的大多数问题似乎是"未知符号",它不识别名称空间或类名.纵观这些错误,至少它似乎与哪些错误不一致.
既然ReSharper完全错了,有没有办法可以告诉它重新开始分析,希望这次能做到正确吗?
我正在使用Visual Studio 2008团队系统.我有C项目.我去了项目属性和代码分析部分.我想知道什么意思
`suppress results from generated code`
Run Code Online (Sandbox Code Playgroud)
当我设置是或否时,有人可以解释这个选项的作用吗?谢谢
我正在使用以下命令来测试我的perl代码:
perl -MB :: Lint :: StrictOO -MO = Lint,all,oo -M-circular :: require -M-indirect -Mwarnings :: method -Mwarnings :: unused -c $ file
在perl版本低于5.10的系统上,我也使用uninit.
我也使用Perl :: Critic和Perl :: Tidy,并根据自己的喜好设置了合适的rc文件.
这些模块在帮助我打破首次学习perl时学到的一些坏习惯方面做得非常出色.
当我陷入困境时,还有更多的模块或pragma会让我恢复直线和狭窄吗?
使用测试,并指出了Test ::*系列模块和一些好书.这些新信息让我重新考虑了有关测试和代码技能构建之间关系的一些假设.这些都受到赞赏,并且已经在研究和投入使用.
在我看来,这些是整体的两个独立部分.'perl -c',Perl :: Critic和Perl :: Tidy在编写代码和执行代码之前都有所帮助.Devel :: Cover,Devel :: NYTProf和测试在执行代码期间和之后发生.
良好的开发决定了迭代过程,因此测试将会运行,代码会反复开发,但我们仍然存在这种分离.
在我看来,答案的重点是代码的"执行期间和执行后".再次,非常感谢.我可以假设我的'写作和预执行'部分很好吗?至少,就像pragma,模块和实用程序一样.
我想从命令行运行VS 2015提供的代码分析工具,就像我能够生成FxCop报告一样,如下所示:
FxCopCmd.exe /console /project *Project* /out:*ReportFile*
Run Code Online (Sandbox Code Playgroud)
请注意,我不想使用FxCop工具,而是想启动代码分析工具来生成报告,类似于我选择时生成的报告:
分析 - >运行代码分析解决方案
知道如何实现这一点吗?
更新:
经过一些研究,我发现运行代码分析实际上执行位于的FxCopCmd.exeC:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Static Analysis Tools\FxCop\FxCopCmd.exe