Перейти к содержанию

Строковые литералы не должны дублироваться

Дублированные строковые литералы усложняют чтение и рефакторинг кода, так как нужно быть уверенным, что исправлены все вхождения дублей.

Рекомендуется вынести дублирующиеся строки в отдельные переменные и использовать их.

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

Подозрительный код:

ПроверяемаяСтрока = "строковый литерал";
Если ПроверяемаяСтрока = "строковый литерал" Тогда
КонецЕсли;

Если ТипЗнч(Ключ) = Тип("Строка") Тогда
  Если ТипЗнч(Значение) = Тип("Строка") Тогда
КонецЕсли;

Исправленный код:

СтроковаяКонстанта = "строковый литерал";
Если ПроверяемаяСтрока = СтроковаяКонстанта Тогда
КонецЕсли;

ТипСтрока = Тип("Строка")
Если ТипЗнч(Ключ) = ТипСтрока Тогда
  Если ТипЗнч(Значение) = ТипСтрока Тогда
КонецЕсли;

См. также

Экранирование кода

// sonar:DuplicatedStringConstants:off
// sonar:DuplicatedStringConstants:on