зачем ломать функции, если вы не
собираюсь повторно использовать разные
части?
Для наглядности, для удобства тестирования.
В обратном порядке: если у вас есть функция из двух частей, и она сломана, вы не знаете, какая часть сломана. Если вы сломали (и протестировали) детали, вы узнаете, какая из них сломана (или что они обе; это могут быть некоторые из самых сложных ошибок, которые нужно выяснить без очень маленьких тестов очень маленьких функций). Это становится более верным, когда вы начинаете говорить не о функциях из двух частей, а о функциях из двадцати или пятидесяти частей.
Что касается ясности, вы сказали, что для вас труднее следовать коду, его сложнее понять, с большим количеством классов и методов. Многие из нас считают, что все наоборот. Крошечная функция проста для понимания. Если он хорошо назван, его использование другой функцией также легко понять - и легче понять, чем если бы он был встроенным. Абстракция имеет решающее значение для хорошей разработки программного обеспечения; научись любить это.