1

我开始一个项目,其中大部分时间都将字符串写入代码中。许多字符串可能只在少数地方使用,但一些字符串在许多页面中都很常见。

将文字重构为常量是否可以很好地利用我的时间,因为该应用程序已经很好地建立并且运行良好?这样做的长期好处是什么?

4

8 回答 8

5

要考虑的一件常见事情是i18n。如果您(或您的笨蛋)想在墨西哥或法国(等)销售您的产品,您会很感激这些字符串文字不会在整个代码库中乱扔垃圾。

编辑:我意识到这并不能直接回答你的问题,所以我投票赞成其他一些答案:三规则等。我知道您在谈论现有的代码库,所以从一开始就谈论合并 i18n 有点晚了。当您从一开始就养成习惯时,这很容易做到。

于 2009-02-18T19:28:16.737 回答
3

我喜欢在重构时应用三法则。如果它发生 3 次或更多次,则需要更新代码。

于 2009-02-18T19:28:47.623 回答
1

如果一个字符串在多个地方使用,请重构它。如果只在一个地方使用,不要管它。

于 2009-02-18T19:27:21.123 回答
1

如果您重构了所有常用字符串,则可以更轻松地对它们进行国际化/翻译。如果它们都在属性文件中,或者任何你的语言等价物,那就更容易了。

于 2009-02-18T19:28:56.297 回答
1

只有当这个项目需要在未来得到支持时,这才是对时间的一种很好的利用。如果您将定期维护/扩展此系统;但是,这是个好主意。

1) 字符串文字存在很大程度的风险,因为通常只能在运行时检测到单个拼写错误。降低运行时错误的风险是一个重要的优势,因为它们可能会令人尴尬/沮丧。

2) 此外,如果它们需要更改,例如当它们用于引用另一个系统(如表名、服务器名等)时,当其他系统名称更改时,它们可能很难更新。集中它们,这是一个微不足道的问题。

于 2009-02-18T19:30:43.750 回答
1

将文字重构为常量是否可以很好地利用我的时间,因为该应用程序已经很好地建立并且运行良好?

不,你最好让它保持原样。

这样做的长期好处是什么?

如果没有人接触过该代码,则没有任何好处。

但是,您可以做的是避免添加新的文字。但我几乎会保持现状。

您可能可以在空闲时重构它们以睡得更好。

可能已经有一些其他错误需要您注意。改正那些。

最后,如果你设法将“重构”添加到你的任务列表中,请继续!!!

于 2009-02-18T19:35:00.450 回答
1

我同意 JMD,请记住,i18n 不仅仅是更改字符串(货币、UI 必须适应从右到左的语言等)

即使您不希望 18n 您的应用程序,重构您的字符串也会很有用,因为该字符串今天只使用一次,明天可能会重复使用几次,如果它是硬编码的,您可能不知道它并且开始在各处复制字符串。

于 2009-02-18T19:35:59.683 回答
0

最好让睡狗躺着。如果您需要更改使用了 18 次的字符串,是的,请继续在某处将其变为常量。如果你发现自己在一个模块中工作,该模块的字符串可以是常量化的,如果你愿意就去做。但是通过整个应用程序将所有字符串更改为常量......这应该在待办事项列表的最底部。

于 2009-02-18T19:35:37.123 回答