繁体   English   中英

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

[英]When is it a good use of time to refactor string literals?

我从一个项目开始,该项目大多数时候都将字符串写入代码中。 许多字符串可能仅在少数几个地方使用,但是某些字符串在许多页面中都是通用的。

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

要考虑的一件事是i18n 如果您(或您的混蛋)曾经想在墨西哥或法国(等等)出售您的产品,那么您将不胜感激这些字符串文字在整个代码库中都不会乱扔。

编辑:我意识到这并不能直接回答您的问题,所以我对其他一些答案投了赞成票:三分法则,等等。 我了解您在谈论现有的代码库,因此从一开始就讨论合并i18n的时间就为时已晚。 从一开始就养成习惯非常容易。

我喜欢在重构时应用三个规则。 如果发生3次或以上,则需要更新代码。

如果一个字符串在多个地方使用,请对其进行重构。 如果仅在一个地方使用,请不要理会它。

如果您重构了所有通用字符串,则可以更轻松地对其进行国际化/翻译。 如果它们全部位于属性文件中,或者与您的语言等效,则更加容易。

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

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

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

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

不,您最好保持原样。

这样做的长期利益是什么?

如果没有人触摸过该代码,则没有好处。

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

您可以自由地重构它们,让他们睡得更好。

可能已经有其他一些bug需要引起您的注意。 改正那些。

最后,如果您管理成功,则将“重构”添加到任务列表中,继续吧!!!

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

即使您不希望对应用程序使用18n,重构字符串也很有用,因为该字符串今天仅使用一次,明天可能会重复使用多次,并且如果经过硬编码,您可能不知道它,并且星状复制字符串遍布各处。

最好让熟睡的狗说谎。 是的,如果您需要更改使用了18次块的字符串,请继续并将其转换为常量。 如果发现自己在一个模块中工作,该模块具有可以常量化的字符串,则可以根据需要进行操作。 但是在整个应用程序中,将所有字符串更改为常量...应该在待办事项列表的最底部。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM