[英]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.