标签: code-analysis

PHP文件是否有静态代码分析器[如Lint]?

是否有PHP文件的静态代码分析器?二进制本身可以检查语法错误,但我正在寻找更多的东西,比如未使用的变量赋值,分配到的数组,而不是先被初始化,以及可能的代码样式警告.开源程序将是首选,但如果强烈建议,我们可能会说服公司支付费用.

php code-analysis static-analysis

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

C#有哪些静态分析工具?

哪些工具可用于针对C#代码进行静态分析?我知道FxCop和StyleCop.还有其他人吗?我之前遇到过NStatic,但是它一直处于开发阶段,看起来像是永远的 - 它看起来很漂亮,看起来很少见,所以如果它能看到光明的一天会很好.

沿着这些相同的路线(这主要是我对静态分析的兴趣),用于测试多线程问题(死锁,竞争条件等)代码的工具似乎也有点稀缺.刚出现了Typemock Racer,所以我会看着它.除此之外还有什么?

关于您使用的工具的现实意见表示赞赏.

c# code-analysis static-analysis

174
推荐指数
2
解决办法
15万
查看次数

集合<T>与List <T>您应该在接口上使用什么?

代码如下所示:

namespace Test
{
    public interface IMyClass
    {
        List<IMyClass> GetList();
    }

    public class MyClass : IMyClass
    {
        public List<IMyClass> GetList()
        {
            return new List<IMyClass>();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我运行代码分析时,我得到以下建议.

警告3 CA1002:Microsoft.Design:更改'IMyClass.GetList()'中的'List'以使用Collection,ReadOnlyCollection或KeyedCollection

我应该如何解决这个问题以及这里有什么好的做法?

.net c# collections code-analysis

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

如何修复PyDev"导入的未定义变量"错误?

我在Eclipse中使用PyDev创建了一个Python项目,PyDev不断为我的代码生成错误的错误.我有一个settings定义settings对象的模块.我在模块中导入它b并分配一个属性:

from settings import settings
settings.main = object()
Run Code Online (Sandbox Code Playgroud)

在我的一些代码中 - 但不是全部代码,如下所示:

from settings import settings
print settings.main 
Run Code Online (Sandbox Code Playgroud)

...在Eclipse代码错误窗格中生成"来自import:main的未定义变量"消息,即使代码运行没有问题.我怎样才能纠正这些?

python code-analysis pydev

134
推荐指数
5
解决办法
11万
查看次数

"#noqa"在Python评论中意味着什么?

在搜索Python项目时,我发现了几行注释# noqa.

import sys
sys.path.append(r'C:\dev')
import some_module   # noqa
Run Code Online (Sandbox Code Playgroud)

noqaPython的意思是什么?它只针对Python吗?

python comments code-analysis terminology pep8

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

CA2202,如何解决这种情况

任何人都可以告诉我如何从以下代码中删除所有CA2202警告?

public static byte[] Encrypt(string data, byte[] key, byte[] iv)
{
    using(MemoryStream memoryStream = new MemoryStream())
    {
        using (DESCryptoServiceProvider cryptograph = new DESCryptoServiceProvider())
        {
            using (CryptoStream cryptoStream = new CryptoStream(memoryStream, cryptograph.CreateEncryptor(key, iv), CryptoStreamMode.Write))
            {
                using(StreamWriter streamWriter = new StreamWriter(cryptoStream))
                {
                    streamWriter.Write(data);
                }
            }
        }
        return memoryStream.ToArray();
    }
}
Run Code Online (Sandbox Code Playgroud)

警告7 CA2202:Microsoft.Usage:对象'cryptoStream'可以在方法'CryptoServices.Encrypt(string,byte [],byte [])'中多次处理.为避免生成System.ObjectDisposedException,不应在对象上多次调用Dispose:Lines:34

警告8 CA2202:Microsoft.Usage:对象'memoryStream'可以在方法'CryptoServices.Encrypt(string,byte [],byte [])'中多次处理.为避免生成System.ObjectDisposedException,不应在对象上多次调用Dispose:Lines:34,37

您需要Visual Studio代码分析才能看到这些警告(这些不是c#编译器警告).

.net c# code-analysis fxcop

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

Python中的Integer Cache有什么用?

深入研究Python的源代码后,我发现它维护了一个PyInt_Objects 数组,范围从int(-5)到int(256)(@src/Objects/intobject.c)

一个小实验证明了这一点:

>>> a = 1
>>> b = 1
>>> a is b
True
>>> a = 257
>>> b = 257
>>> a is b
False
Run Code Online (Sandbox Code Playgroud)

但是如果我在py文件中一起运行这些代码(或者用分号连接它们),结果会有所不同:

>>> a = 257; b = 257; a is b
True
Run Code Online (Sandbox Code Playgroud)

我很好奇为什么它们仍然是同一个对象,所以我深入研究语法树和编译器,我想出了一个下面列出的调用层次结构:

PyRun_FileExFlags() 
    mod = PyParser_ASTFromFile() 
        node *n = PyParser_ParseFileFlagsEx() //source to cst
            parsetoke() 
                ps = PyParser_New() 
                for (;;)
                    PyTokenizer_Get() 
                    PyParser_AddToken(ps, ...)
        mod = PyAST_FromNode(n, ...)  //cst to ast
    run_mod(mod, ...)
        co = PyAST_Compile(mod, ...) //ast to CFG …
Run Code Online (Sandbox Code Playgroud)

python caching code-analysis literals python-internals

74
推荐指数
1
解决办法
6755
查看次数

Visual Studio代码分析与StyleCop + FxCop

我在Visual Studio的项目中使用了以前的StyleCop + FxCop.但现在我正在测试Visual Studio代码分析工具,它更容易集成到MSBuild中,我发现这个工具分析了FxCop和StyleCop的一些规则.

这个工具是FxCop和StyleCop的完全替代品还是只是实现了一些规则?

c# code-analysis fxcop stylecop visual-studio-2008

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

可视化代码流的工具(C/C++)

您是否有任何可用的工具来简化理解C/C++代码的任务?我们刚刚继承了其他人编写的大量软件,我们需要快速掌握它.有关可能简化此任务的工具的任何建议吗?

c c++ code-analysis

70
推荐指数
5
解决办法
6万
查看次数

代码分析窗口在哪里消失了?

在Visual Studio 2013中,我使用"代码分析"窗口向开发和管理团队提供报告.

Visual Studio 2013中的

在Visual Studio 2015 Enterprise RTM中,这些错误已返回到错误窗口,我不再只能查看单个项目的CA问题,或按类型过滤它们.

有没有办法将代码分析窗口带回来?

code-analysis roslyn visual-studio-2015

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