Закоулки мозга

Поддерживаемость кода можно косвенно представить как время, требуемое для понимания кода. Чем больше времени уходит на понимание того, что делает код, тем ниже его “поддерживаемость” (см. Две ценности ПО - поведение и структура, внутренняя оценка качества кода программистами).

В связи с этим возникает некоторая субъективность в оценке качества кода, потому что в команде “процедурных” программистов время на понимание императивного процедурного кода будет скорее всего меньше, чем на понимание объектно-ориентированного. Таким образом, для этой команды процедурный код лучше объектного. Более того, весьма вероятно, что в такой команде и время на написание прямолинейного процедурного кода будет меньше, и качество такого кода будет выше, чем попытки изобразить что-то в объектно-ориентированной парадигме.

  • ЕТ

1. Рождение объекта

Объекты можно рассматривать как живые организмы, каждый со своей средой обитания (областью видимости).

1.1 Не используйте имена классов, оканчивающиеся на -er / -or

Суть в том, что классы, которым их клиенты явно указывают выполнить такую-то операцию, живут в “процедурном мире”, а не в объектно-ориентированном. По сути, для декларативного ООП характерны запросы на получение какого-то результата (в виде объекта), а не на выполнение операции. Тот факт, что результат получается в ходе операции, сокрыт в объекте, возвращающем результат. Поэтому рекомендуется называть классы в соответствии с получаемым результатом, а не с выполняемой операцией.

Более того, имена типа Manager говорят о том, что управляемые сущности - это простые структуры данных, а Manager - это “умная” процедура, выполняющая реальную работу. Это процедурный, а не ООП подход.