我不知道这对社区是否有用,因为它可能是我的情况所独有的.我正在和一位高级程序员一起工作,他在他的代码中有这种特殊的习惯,在使用它们之前将所有字符串变成常量.我只是不明白为什么.这对我没有任何意义.99%的时间,我们没有从转换中获得任何抽象或表达能力,因为它是这样做的:
URL_CONVERTER = "url_converter"
URL_TYPE_LONG = "url_type_long"
URL_TYPE_SHORT = "url_type_short"
URL_TYPE_ARRAY = [URL_TYPE_LONG, URL_TYPE_SHORT]
for urltype in URL_TYPE_ARRAY:
outside_class.validate(urltype)
Run Code Online (Sandbox Code Playgroud)
就像那样.通常,常量名称几乎总是字符串的内容,大写,并且这些常量很少被引用多次.也许在运行时期间,这样创建的常量中只有不到5%被引用两次或更多次.
这是一些我不明白的编程技巧吗?还是只是一个坏习惯?其他程序员开始模仿这种(可能是坏的)形式,我想知道在盲目跟随之前是否有理由让我这么做.
谢谢!
编辑:更新了示例.另外,我理解每个人的观点,并且会补充一点,这是一个相当小的商店,最多其他两个人会看到任何人的代码,更别说工作了,这些都是我们正在构建的非常简单的一次性,而不是复杂的工人或任何事.我理解为什么这在大型项目中是一种很好的实践,但在我们的工作环境中,它会为一项非常简单的任务带来太多的开销.
它有助于保持代码一致.例如,如果您在客户端和服务器中都使用URL_TYPE_LONG,并且由于某种原因需要更改其字符串值,则只需更改一行.并且您不会冒失去更改代码中的一个实例的风险,或者更改代码中的一个字符串,而这些字符串只是具有相同的值.
即使这些常数现在仅被引用一次,我们还能预见未来......
我认为这也是因为当你试图(A)保持数据和代码分开时,(当恐龙漫游地球时),(B)你担心你分配了多少个字符串.
小智 5
以下是一些很好的实践场景:
您有一个很长的字符串,将在很多地方使用。因此,您将其放入(可能更短)变量名中,以便您可以轻松使用它。这可以防止代码行变得过长/重复。
(有点类似于#1)你有一个很长的刺,无法适应某条线而不将其发送到屏幕之外。因此,您将字符串放入变量中以保持行简洁。
您想要保存一个字符串并稍后对其进行更改(添加/删除字符)。只有变量才能为您提供此功能。
您希望能够通过仅更改一个变量的值来更改使用同一字符串的多行。这比必须遍历许多行来查找字符串的出现要容易得多。它还可以防止您可能遗漏一些内容,从而避免在代码中引入错误。
基本上,答案是要明智地对待它。问问自己:将字符串变成变量会节省输入吗?会提高效率吗?它会让您的代码更易于使用和/或维护吗?如果您对其中任何一个问题的回答为“是”,那么您应该这样做。
| 归档时间: |
|
| 查看次数: |
127 次 |
| 最近记录: |