Поддерживаемость кода можно косвенно представить как время, требуемое для понимания кода. Чем больше времени уходит на понимание того, что делает код, тем ниже его “поддерживаемость” (см. Две ценности ПО - поведение и структура, внутренняя оценка качества кода программистами).
В связи с этим возникает некоторая субъективность в оценке качества кода, потому что в команде “процедурных” программистов время на понимание императивного процедурного кода будет скорее всего меньше, чем на понимание объектно-ориентированного. Таким образом, для этой команды процедурный код лучше объектного. Более того, весьма вероятно, что в такой команде и время на написание прямолинейного процедурного кода будет меньше, и качество такого кода будет выше, чем попытки изобразить что-то в объектно-ориентированной парадигме.
- ЕТ
1. Рождение объекта
Объекты можно рассматривать как живые организмы, каждый со своей средой обитания (областью видимости).
1.1 Не используйте имена классов, оканчивающиеся на -er
/ -or
Суть в том, что классы, которым их клиенты явно указывают выполнить такую-то операцию, живут в “процедурном мире”, а не в объектно-ориентированном. По сути, для декларативного ООП характерны запросы на получение какого-то результата (в виде объекта), а не на выполнение операции. Тот факт, что результат получается в ходе операции, сокрыт в объекте, возвращающем результат. Поэтому рекомендуется называть классы в соответствии с получаемым результатом, а не с выполняемой операцией.
Более того, имена типа Manager
говорят о том, что управляемые сущности - это
простые структуры данных, а Manager
- это “умная” процедура, выполняющая
реальную работу. Это процедурный, а не ООП подход.