Что такое кислотный тест на «тот же уровень абстракции» при написании составных функций / методов?

Контекст: мне нужно объяснить «составные методы» группе со смешанным опытом.

Думаю, я впервые услышал об этом, когда читал «Лучшие практики Smalltalk» Бека. Лично у меня не было слишком много проблем с написанием таких методов - однако в местной пустыне кода я видел довольно много случаев, когда из-за отсутствия составных методов создавались неразборчивые BLOB-объекты ... и я был в меньшинстве. Итак, я провожу их через CleanCode - и этот снова всплыл.

Предпосылка довольно проста.

«Функции должны быть короткими, выполните одно вещь хорошо и иметь имя, раскрывающее намерение. Каждый шаг в тело метода должно быть в тот же уровень абстракции. "

То, что я борюсь с проверкой на" тот же уровень абстракции "... а именно ... простите за каламбур, немного абстрактным для начинающих.

Мое текущее объяснение было бы похоже на SICP «принятие желаемого за действительное» (представьте себе идеальный набор шагов, а затем беспокойтесь о реализации / воплощении этого в жизнь »).

Есть ли у кого-нибудь лучший набор правил / кислотный тест для оценки ваших решений при написании составных методов?

6
задан Gishu 9 June 2011 в 10:05
поделиться