|
|
1
10
|
|
|
2
12
比较以下各项:
具有
哪个更直接? |
|
|
3
5
那绝对是一种代码味道。 其目的可能是“增加代码的可读性”,但在我看来,这实际上降低了代码的可读性。 |
|
|
4
5
有些人认为程序中的任何原始数字都是“幻数”。我见过一些编码标准,它们基本上说你不能只把一个整数写进一个程序,它必须是一个常量。 |
|
|
5
3
可能有点味道,但肯定比0=0和a='a好。在第一种情况下,它们定义逻辑常量,即一些抽象概念(字符串相等)和具体的值实现。 在您的示例中,您定义的是文字常量——变量本身表示值。如果是这种情况,我会认为枚举是首选的,因为它们很少是奇异值。 |
|
|
6
3
这确实是个糟糕的编码。
我说常量应该只在需要的地方使用,在以后可能发生变化的地方。例如,我有很多“配置”选项,比如
此外,对于幻数,不应包括零。 我有点奇怪,但我觉得这个信念很奇怪,因为我会说这样的话会有很大的发展。
|
|
7
2
|
|
|
8
2
我认为有时人们盲目地遵循“编码标准” 这意味着“不要使用硬编码的值,将它们定义为常量,以便在需要更新代码时更容易管理代码”——这对于以下内容是足够公平的:
但对以下情况没有意义:
因为
每次我看到这个代码,我都需要搜索
相反,如果我看到:
我跳过步骤1(搜索
你想把这个换成
使用
我仍然会检查您是否根据规范正确定义了这些值。
如果规范定义了
所以,这取决于您何时特别需要访问数组中的第一个元素
|
|
|
9
1
我要找代码气味。如果需要这些类型的常量,请将它们放入枚举中:
(不过我怀疑
编辑:
阿尔索
|
|
|
10
1
我不知道我是否会称它们为气味,但它们似乎是多余的。尽管默认索引实际上是有用的。 重点是 避免使用幻数 零并不是真正的魔法。 |
|
|
11
1
这是你办公室里的代码还是你下载的代码? 如果是在办公室里,我认为如果人们随意地在周围放置常量,这是管理层的问题。在全球范围内,不应该有任何常数,除非每个人都对这些常数的用途有明确的概念或共识。 在C中,理想情况下,您希望创建一个类,该类保存所有其他类全局使用的常量。例如,
然后在后面的课程中,比如:
至少我是这么看的。这样,每个人都可以理解这些常量是什么,而不必阅读任何其他内容。这样可以减少混乱。 |
|
|
12
1
一般来说,使用常数有四个原因:
对于您的特定示例,下面是我如何判断每个示例:
所以,我想说,不,这些并不比
|
|
|
13
0
如果零表示除零以外的其他值(在本例中,字符串_等于),那么这是不可思议的。为它创建一个常量是可以接受的,并且使代码更可读。 创建一个称为零的常量是毫无意义的,而且浪费了手指的能量! |
|
|
14
0
闻起来有点异味,但我可以看到这样的情况,特别是如果你的程序员一直在从一种语言切换到另一种语言。 例如,Matlab是一个索引,所以我可以想象有人厌倦了每当一个错误切换到语言,并在C++和MATLAB程序中定义Debug Type索引来抽象差异。不一定很优雅,但如果这就是需要的… |
|
|
15
0
好吧,你要质疑这个气味年轻的代码战士。然而,这些命名常量是从比Visual Studio早得多的编码实践中派生出来的。它们可能是多余的,但你可能做得比理解公约的起源还要糟糕。想想美国航空航天局的电脑,很久以前… |
|
|
16
0
在跨平台的情况下,您可能会看到类似的情况,在这种情况下,您将使用具有适合平台的常量集的文件。但可能并没有这些实际的例子。这看起来像是一个COBOL编码人员试图让他的C看起来更像英语(对COBOL编码人员来说没有冒犯的意思)。 |
|
|
17
0
使用常量来表示抽象值是可以的,但用您自己的语言表示构造则是另一回事。
您应该遵循编码标准的假设是有意义的。(也就是说,编码标准在一个组织内是假定正确的。)当假定不满足时,盲目地遵循它是没有意义的。 因此,我同意早期的海报,一些气味常数可能是由于遵循编码标准(“无魔力数字”)到字母无例外。这就是问题所在。 |
|
|
metrallador10 · 哪种代码更好?效率与代码可读性 2 年前 |
|
|
Justin Xu · 使用return if语句进行重构验证 3 年前 |
|
|
Cino · 如何以体面的方式处理Python异常? 3 年前 |
|
|
SAI BENDE · 如何在多个html文件中使用单个导航栏 3 年前 |
|
|
fstab · 对正常控制流程使用例外情况是一种不鼓励还是不鼓励的做法? 12 年前 |
|
|
SwampYeti · 在CSS中拉伸小背景图像 13 年前 |