问题标签 [code-analysis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
34 回答
7051 浏览

unit-testing - 为什么代码质量讨论会引起强烈反响?

我喜欢我的代码井井有条,即正确格式化、可读、设计、测试、检查错误等。事实上,我对此很狂热。(也许甚至比狂热还多……)但根据我的经验,帮助代码质量的行动几乎没有实施。(我所说的代码质量是指您每天生成的代码的质量。软件质量与开发过程等的整个主题要广泛得多,而不是这个问题的范围。)

代码质量似乎并不受欢迎。根据我的经验,一些例子包括

  • 可能每个 Java 开发人员都知道 JUnit,几乎所有语言都实现了 xUnit 框架,但在我所知道的所有公司中,只有极少数适当的单元测试存在(如果有的话)。我知道由于技术限制或紧迫的最后期限,并不总是可以编写单元测试,但在我看到的情况下,单元测试本来是一种选择。如果开发人员想为他/她的新代码编写一些测试,他/她可以这样做。我的结论是开发人员不想编写测试。

  • 静态代码分析经常在小型项目中使用,但并没有真正用于强制编码约定或在企业项目中发现可能的错误。通常,甚至像潜在的空指针访问这样的编译器警告也会被忽略。

  • 会议发言人和杂志会谈论很多关于 EJB3.1、OSGI、Cloud 和其他新技术,但很少谈论新的测试技术或工具、新的静态代码分析方法(例如 SAT 求解)、有助于保持更高质量的开发过程、如何一些令人讨厌的遗留代码被测试了,......(我没有参加很多会议,对于敏捷主题的会议来说,它可能看起来不同,因为单元测试和 CI 等在那里具有更高的价值。)

那么为什么代码质量如此不受欢迎/被认为很无聊?

编辑:
感谢您的回答。其中大多数涉及单元测试(并已在相关问题中进行了讨论)。但是还有很多其他的东西可以用来保持高代码质量(参见相关问题)。即使您无法使用单元测试,您也可以使用每日构建,在您的 IDE 或开发过程中添加一些静态代码分析,尝试结对编程或强制审查关键代码。

0 投票
4 回答
1480 浏览

vb.net - VB.Net CA1822

我运行了代码分析并收到以下消息:

警告 5 CA1822:Microsoft.Performance:从未使用过“MainForm.CheckFileIfFileIsInUse(String)”的“this”参数(或 Visual Basic 中的“Me”)。将成员标记为静态(或在 Visual Basic 中为 Shared)或在方法主体或至少一个属性访问器中使用“this”/“Me”(如果适用)。D:\WORK\Update\Update\MainForm.vb

我不确定我是否理解它。这是它所指的行:

这是说它从未使用过,但在下一行我有这个:

所以我知道它正在被使用。我在两个地方有同样的信息,我不明白为什么它说它从未使用过。

帮助一个困惑的新手找到自己的路:P

像往常一样感谢 Eroc

0 投票
3 回答
952 浏览

java - Static Analysis tool to detect Internationalization issues

Are there any tools (free/commercial) that can audit an application for internationalization? (or localization-readiness, if you prefer)

Primarily interested in:

Mulitlingual Implementation tests

Date Implementation tests

Numeric Implementation tests

javascript-validation tests

Cheers.

0 投票
3 回答
694 浏览

visual-studio-2008 - 在没有安装介质的情况下在 Visual Studio 2008 Team System 2008 SP1 中安装代码分析?

VSTS2008 SP1可以在没有原安装介质的情况下安装代码分析吗?我可以下载单独的软件包来激活它吗?我已经安装了 FxCop 1.36,但它并没有自动激活项目属性上的选项卡。

我通过转到添加/删除程序、从列表中选择团队系统并选择卸载/更改来检查是否安装了代码分析。然后我可以在树视图中看到代码分析复选框未选中。我没有安装介质的副本,我想尝试解决这个问题,而不是等待几天才能拿到磁盘。

谢谢

0 投票
1 回答
452 浏览

c# - 可序列化的类和名称重构

在我当前的项目中,我使用 FxCop 来处理各种代码分析警告。对于命名规则,我可以选择更改名称以匹配规则,或者决定保留我当前的拼写并取消警告。关于标记为 的类或属性[Serializable],我对名称更改的后果很感兴趣。特别是,与现有序列化数据的向后兼容性将如何受到影响?

0 投票
2 回答
552 浏览

.net - 退出疼痛区 - NDepend

我刚刚通过 NDepend 运行我的一个项目,报告将我的程序集放在痛苦区域的角落。我只是想知道这是否是我应该担心的事情。

疼痛区的真正含义是什么?这不是说有很多耦合,事情不能很容易改变。

我最近删除了很多接口并密封了很多类,因为我不希望用户扩展 API(仅在某些地方)。它是 com 对象的 .NET 包装器,因此用户不需要扩展任何东西。

有什么好方法可以让我走出痛苦的境地?

谢谢

0 投票
2 回答
144 浏览

language-agnostic - 可视化编译器警告

我正在寻找一种通过注释或以其他方式显示导致报告的行来可视化编译器警告和备注的方法。

这很像 NetBeans 或 Eclipse 等现代 IDE,但我想一次从多个编译器(和其他静态代码分析工具)获取输出,并创建一个注释以获得更好的概览。

基本原理是我们已经看到一些问题完全没有被 Visual Studio 2005 检测到,但使用专有的 ARM 编译器可以准确检测到,反之亦然。交叉引用警告可能会更好地定位问题,但完全手动这样做是不可行的。

你听说过这样的工具吗?像 Eclipse 这样的开源 IDE 是否可以扩展为一次使用多个编译器,或者已经完成了?

0 投票
6 回答
8548 浏览

c - C 的静态代码分析器

您使用哪种静态代码分析器(如果有)?我一直在为 Python 使用 PyLint,我对它非常满意,现在我需要类似的 C 代码。

对于正常的日常使用,您必须抑制多少输出?

0 投票
2 回答
1744 浏览

perl - RATS 以外的 Perl 代码安全扫描器?(必须是_STATIC_)

除了RATS之外,还有其他 Perl 安全扫描器吗?

可能还有任何仅STATIC的perl 代码图形引擎,它能够跟踪数据流或其他受污染的输入?

0 投票
2 回答
1679 浏览

tfs - 自定义代码分析 TFS 签入策略

有什么方法可以创建自定义TFS签入策略,该策略可以跳过正在签入的代码中的每个节点,以符合我们定义的代码标准?