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

TL; DR: Не угадайте, что принесет вам будущее.

Контекст

Аристотелевская классификация - большая проблема в информатике.
Мы склонны классифицировать и давать названия вещам до того, как соберем достаточно знаний и контекста.

Проблемы

  • Футурология
  • Плохой дизайн

Решения

  1. Дождитесь конкрементов
  2. Поздний рефакторинг

Образец кода

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

Правильно

Обнаружение

Абстрактный класс с одним подклассом - индикатор преждевременной классификации.

Теги

  • Плохой дизайн
  • Классификация

Вывод

При работе с классами мы называем абстракции, как только они появляются.

Наше правило - выбирать добрые имена после поведения.

Мы не должны называть наши абстракции, пока не назовем конкретные подклассы.

связи



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



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

Дональд Э. Кнут



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