我开始一个项目,其中大部分时间都将字符串写入代码中。许多字符串可能只在少数地方使用,但一些字符串在许多页面中都很常见。
将文字重构为常量是否可以很好地利用我的时间,因为该应用程序已经很好地建立并且运行良好?这样做的长期好处是什么?
我开始一个项目,其中大部分时间都将字符串写入代码中。许多字符串可能只在少数地方使用,但一些字符串在许多页面中都很常见。
将文字重构为常量是否可以很好地利用我的时间,因为该应用程序已经很好地建立并且运行良好?这样做的长期好处是什么?
要考虑的一件常见事情是i18n。如果您(或您的笨蛋)想在墨西哥或法国(等)销售您的产品,您会很感激这些字符串文字不会在整个代码库中乱扔垃圾。
编辑:我意识到这并不能直接回答你的问题,所以我投票赞成其他一些答案:三规则等。我知道您在谈论现有的代码库,所以从一开始就谈论合并 i18n 有点晚了。当您从一开始就养成习惯时,这很容易做到。
我喜欢在重构时应用三法则。如果它发生 3 次或更多次,则需要更新代码。
如果一个字符串在多个地方使用,请重构它。如果只在一个地方使用,不要管它。
如果您重构了所有常用字符串,则可以更轻松地对它们进行国际化/翻译。如果它们都在属性文件中,或者任何你的语言等价物,那就更容易了。
只有当这个项目需要在未来得到支持时,这才是对时间的一种很好的利用。如果您将定期维护/扩展此系统;但是,这是个好主意。
1) 字符串文字存在很大程度的风险,因为通常只能在运行时检测到单个拼写错误。降低运行时错误的风险是一个重要的优势,因为它们可能会令人尴尬/沮丧。
2) 此外,如果它们需要更改,例如当它们用于引用另一个系统(如表名、服务器名等)时,当其他系统名称更改时,它们可能很难更新。集中它们,这是一个微不足道的问题。
将文字重构为常量是否可以很好地利用我的时间,因为该应用程序已经很好地建立并且运行良好?
不,你最好让它保持原样。
这样做的长期好处是什么?
如果没有人接触过该代码,则没有任何好处。
但是,您可以做的是避免添加新的文字。但我几乎会保持现状。
您可能可以在空闲时重构它们以睡得更好。
可能已经有一些其他错误需要您注意。改正那些。
最后,如果你设法将“重构”添加到你的任务列表中,请继续!!!
我同意 JMD,请记住,i18n 不仅仅是更改字符串(货币、UI 必须适应从右到左的语言等)
即使您不希望 18n 您的应用程序,重构您的字符串也会很有用,因为该字符串今天只使用一次,明天可能会重复使用几次,如果它是硬编码的,您可能不知道它并且开始在各处复制字符串。
最好让睡狗躺着。如果您需要更改使用了 18 次的字符串,是的,请继续在某处将其变为常量。如果你发现自己在一个模块中工作,该模块的字符串可以是常量化的,如果你愿意就去做。但是通过整个应用程序将所有字符串更改为常量......这应该在待办事项列表的最底部。