1

Я начинаю с проекта, в котором строки чаще всего записываются в код. Многие строки могут использоваться только в нескольких местах, но некоторые строки распространены на многих страницах.Когда это хорошее время использовать для рефакторинговых литералов?

Хорошо ли использовать мое время для рефакторинга литералов в константы, поскольку приложение довольно хорошо установлено и работает хорошо? Каковы были бы долгосрочные выгоды для этого?

ответ

1

Только если этот проект нуждается в поддержке в будущем, это хорошее использование времени. Если вы будете регулярно поддерживать/расширять эту систему; однако это отличная идея.

1) Существует большая степень риска, связанного со строковыми литералами, поскольку одно орфографическое обращение обычно может быть обнаружено только во время выполнения. Сниженный риск ошибок времени выполнения является серьезным преимуществом, поскольку они могут быть смущающими/расстраивающими.

2) Также, если они когда-либо должны быть изменены, например, когда они используются для ссылки на другую систему (например, имена таблиц, имена серверов и т. Д.), Их может быть очень сложно обновить при изменении этих других системных имен. Централизовать их, и это тривиальный вопрос.

+1

Я принял этот ответ, поскольку он дал причины, почему это было бы полезно для рефакторинга. Приложение, о котором я упоминал в моем вопросе, не нуждается в международной поддержке (о чем я не упоминал в моем вопросе), но это также хорошая причина, а также правило 3. –

1

Если строка используется в нескольких местах, реорганизовать ее. Если он используется только в одном месте, оставьте его в покое.

5

Общим предметом рассмотрения является i18n. Если вы (или ваши muckity-mucks) когда-либо захотите продать свой продукт в Мексике или Франции (и т. Д.), Вы поймете, что эти строковые литералы не завалены всей базой кода.

EDIT: Я понимаю, что это прямо не отвечает на ваш вопрос, поэтому я голосую за некоторые другие ответы: правило три и т. П. Я понимаю, что вы говорите о существующей базе кода, поэтому немного поздно говорить о включении i18n с самого начала. Это так легко сделать, когда вы привыкли с самого начала.

3

Мне нравится применять правило три при реорганизации. Если это происходит три или более раз, то код необходимо обновить.

1

Если вы отредактировали все свои обычные строки, это облегчает интернационализацию/перевод их. Это еще проще, если все они находятся в файлах свойств или независимо от вашего эквивалента языка.

1

Хорошо ли использовать мое время для рефакторинга литералов в константы, поскольку приложение довольно хорошо установлено и работает хорошо?

Нет, вам лучше оставить его таким, как оно есть.

Каковы будут долгосрочные выгоды для этого?

Если никто никогда не прикасается к этому коду, выгоды не имеют.

Что вы можете сделать, однако, избегать добавления новых литералов. Но я бы почти оставил их такими, какие они есть.

Возможно, вы могли бы реорганизовать их в своем свободном для сна лучше.

Возможно, есть еще некоторые ошибки, которые требуют вашего внимания. Исправьте их.

Наконец, если вам удастся добавить «рефакторинг» в список задач, вперед!

0

Лучше всего спящих собак. Если вам нужно изменить строку, в которой использовались восемнадцать-кусковые времена, да, продолжайте и превратите ее в постоянную. Если вы обнаружите, что работаете в модуле с строкой, которая может быть константной, сделайте это, если вам так хочется. Но через все приложение меняет все строки на константы ... это должно быть на самом дне списка дел.

1

Я согласен с JMD, просто имейте в виду, что есть больше, чем i18n изменения строк (валюты, пользовательский интерфейс должен быть adpated направо-налево языков и т.д.)

Даже если вы не желание В вашей заявке было бы полезно реорганизовать ваши строки, поскольку эта строка, которая используется сегодня только один раз, может быть повторно использована несколько раз несколько раз, и если она жестко запрограммирована, вы можете не знать об этом и воспроизводить звездочку по всему месту.

Смежные вопросы