Принцип нисходящей реализации


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

В основе этого паттерна лежит самый простой способ сокрытия реализации: с помощью временных переменных.

Такой способ порождает длинные функции и всё, что им сопутствует.

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

Этот паттерн подразумевает высокую степень разделения ответственностей и предельно короткие функции.

Для перехода от восходящего паттерна к нисходящему применяются рефакторинги «замена временной переменной вызовом функции» и все его разновидности.