如同硬编码文字是否可以接受?,但我在这里特别想到“神奇的字符串”。
在一个大型项目中,我们有一个配置选项表,如下所示:
Name Value
---- -----
FOO_ENABLED Y
BAR_ENABLED N
...
(数百个)。
常见的做法是调用通用函数来测试选项,如下所示:
if (config_options.value('FOO_ENABLED') == 'Y') ...
(当然,可能需要在系统代码的许多地方检查相同的选项。)
添加新选项时,我正在考虑添加一个函数来隐藏“魔术字符串”,如下所示:
if (config_options.foo_enabled()) ...
然而,同事们认为我太过分了,并反对这样做,他们更喜欢硬编码,因为:
- 这就是我们通常做的
- 调试代码时可以更轻松地查看发生了什么
问题是,我能明白他们的观点!实际上,我们永远不会出于任何原因重命名选项,因此我能想到的函数的唯一优点是编译器会捕获任何拼写错误,例如 fo_enabled(),但不会捕获“FO_ENABLED”。
你怎么认为?我是否错过了任何其他优点/缺点?
如果我在代码中使用一次字符串,我通常不会担心将其设置为常量。
如果我在代码中使用一个字符串两次,我会consider使其成为常数。
如果我在代码中使用一个字符串三次,我几乎肯定会将其设为常量。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)