bslls:MagicNumber¶
Магические числа (MagicNumber)¶
- Тип: Дефект кода
- Важность: Незначительный
- Включена по умолчанию: Да
- Теги:
badpractice
Описание диагностики¶
Магические числа - это любое число в вашем коде, которое не сразу становится очевидным без погружения в контекст.
Примеры¶
Плохо
Хорошо
Функция ПопадаетВИнтервал(ДлительностьВСекундах)
МинутВЧасе = 60;
СекундВМинуте = 60;
СекундВЧасе = СекундВМинуте * МинутВЧасе;
ЧасовВИнтервале = 10;
Возврат Длительность < ЧасовВИнтервале * СекундВЧасе;
КонецФункции
Исключения¶
Магические числа, используемые в структурах и соответствиях, не считаются ошибками, так как они используются в качестве ключей или значений в структурах данных, где контекст понятен:
// Операция Вставить структуры - нет ошибки
Структура = Новый Структура;
Структура.Вставить("МояПеременная", 20); // Нет ошибки
Структура.Вставить("ДругаяПеременная", 42); // Нет ошибки
// Конструктор структуры - нет ошибки
Структура2 = Новый Структура("Поле1, Поле2", 5, 15); // Нет ошибки
// Прямое присваивание свойству структуры - нет ошибки
СтруктураСПолями = Новый Структура("МояПеременная, ДругоеПоле");
СтруктураСПолями.МояПеременная = 20; // Нет ошибки
СтруктураСПолями.ДругоеПоле = 50; // Нет ошибки
// Фиксированная структура - нет ошибки
ФиксированнаяСтруктура = Новый ФиксированнаяСтруктура("Значение", 200); // Нет ошибки
// Соответствие - нет ошибки (как ключ, так и значение)
Соответствие = Новый Соответствие;
Соответствие.Вставить("Код", 123); // Нет ошибки
Соответствие.Вставить(1980, "Олимпиада в Москве"); // Нет ошибки
Соответствие стандартам¶
Нет подтверждённых связей со стандартами.
Источник диагностики¶
- Исходная статья
- Ревизия:
f4616cda8a216789ee40529ed857e614b9e2ea25 - Лицензия:
LGPL-3.0-or-later