Константы должны быть вместе, чтобы их было легко найти

TL;DR: не определяйте слишком много несвязанных констант в одном классе. Не складывайте хлам в кучу.

Проблемы

  • Плохая сплоченность
  • Высокое сцепление
  • Магические числа
  • Нарушение принципа единой ответственности

Решения

  1. Разбейте содержимое, следуя обязанностям реального мира, используя MAPPER.

Контекст

Это особый случай Божественного объекта, ограниченного только постоянными определениями.

Репозиторий может быть классом, файлом или JSON.

Образец кода

Неправильный

public static class GlobalConstants
{
    public const int MaxPlayers = 10;
    public const string DefaultLanguage = "en-US";
    public const double Pi = 3.14159; 
}

Верно

public static class MaxPlayersConstants
{
    public const int MaxPlayers = 10;    
}

public static class DefaultLanguageConstants
{
    public const string DefaultLanguage = "en-US";
}

public static class MathConstants
{
    public const double Pi = 3.14159;
}

Обнаружение

[X] Полуавтоматический

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

Теги

  • Связь

Заключение

Определение правильных обязанностей — одна из наших основных задач при разработке программного обеспечения.

связи







Больше информации

"Середина"

Отказ от ответственности

Code Smells — это мое мнение.

Кредиты

Фото Aaron Burden на Unsplash

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

Мартин Фаулер



Эта статья является частью серии CodeSmell.