什么时候很好地利用时间来重构字符串文字?

时间:2009-02-18 19:24:00

标签: string refactoring internationalization constants literals

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

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

8 个答案:

答案 0 :(得分:5)

需要考虑的一个常见问题是i18n。如果您(或您的muckity-mucks)想要在墨西哥或法国(等)销售您的产品,那么您将会欣赏在整个代码库中使用而不是的字符串文字。

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

答案 1 :(得分:3)

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

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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

答案 4 :(得分:1)

只有在未来需要支持这个项目时才能充分利用时间。如果您将定期维护/扩展该系统;但是,这是一个好主意。

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

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

答案 5 :(得分:1)

  

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

不,你最好离开它。

  

这样做有什么长期利益?

如果没有人接触过该代码,那么好处就是没有。

但是,您可以做的是避免添加新的文字。但我几乎会以现有的方式离开。

你可以自由地重构它们以便更好地睡觉。

可能还有其他一些需要您注意的错误。修改那些。

最后,如果您管理的是在任务列表中添加“重构”,请继续!!!

答案 6 :(得分:1)

我同意JMD,请记住,i18n比更改字符串更多(货币,UI必须采用从右到左的语言等)

即使你不希望18n你的应用程序,重构你的字符串是有用的,因为今天使用的字符串只有一次,明天可能会重复使用几次,如果硬编码,你可能不知道它和星星复制的字符串到处都是。

答案 7 :(得分:0)

最好让睡觉的狗撒谎。如果你需要更改一个使用了十八次的块的字符串,是的,继续把它变成一个常数。如果您发现自己在一个具有可以恒定的字符串的模块中工作,那么如果您愿意,请执行此操作。但是通过整个应用程序将所有字符串更改为常量...应该在待办事项列表的最底部。