Контекст: мне нужно объяснить «составные методы» группе со смешанным опытом.
Думаю, я впервые услышал об этом, когда читал «Лучшие практики Smalltalk» Бека. Лично у меня не было слишком много проблем с написанием таких методов - однако в местной пустыне кода я видел довольно много случаев, когда из-за отсутствия составных методов создавались неразборчивые BLOB-объекты ... и я был в меньшинстве. Итак, я провожу их через CleanCode - и этот снова всплыл.
Предпосылка довольно проста.
«Функции должны быть короткими, выполните одно вещь хорошо и иметь имя, раскрывающее намерение. Каждый шаг в тело метода должно быть в тот же уровень абстракции. "
То, что я борюсь с проверкой на" тот же уровень абстракции "... а именно ... простите за каламбур, немного абстрактным для начинающих.
Мое текущее объяснение было бы похоже на SICP «принятие желаемого за действительное» (представьте себе идеальный набор шагов, а затем беспокойтесь о реализации / воплощении этого в жизнь »).
Есть ли у кого-нибудь лучший набор правил / кислотный тест для оценки ваших решений при написании составных методов?