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

Магические числа не должны использоваться

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

Использование магических чисел может быть очевидным и понятным в тот момент, когда вы пишете данный участок кода, но они менее очевидны в момент отладки. Поэтому магические числа должны быть объяснены первоначальным присваиванием переменной с понятным именем. -1, 0 и 1 не считаются магическими числами.

Пример кода, нарушающий стандарт:

Процедура МояПроцедура()
    Если СтрДлина(Имя) > 150 Тогда        // Нарушение. 150 - магическое число
        Имя = ОбрезатьИмя(Имя);
    КонецЕсли;
КонецПроцедуры

Удовлетворяющее решение:

Процедура МояПроцедура()
    МаксимальнаяДлинаНаименованияВМетаданных = 150;
    Если СтрДлина(Имя) > МаксимальнаяДлинаНаименованияВМетаданных Тогда
        Имя = ОбрезатьИмя(Имя);
    КонецЕсли;
КонецПроцедуры

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

// sonar:MagicNumber:off
// sonar:MagicNumber:on