Наверное, каждый разработчик когда-нибудь коснется этой темы. Здесь вы найдете список цитат, чтобы составить свое мнение, желательно от известных инженеров-программистов.
Со своей стороны, все, что я могу сказать, это: всякий раз, когда я читаю исходный код и думаю: «Вау 😲! Это лучшее, что я когда-либо читал в своей жизни». Одной из причин было идеальное сочетание самообъясняющих имен функций и идеальной длины функций.

TL;DR — Какой длины должна быть функция?

Очень маленький. Около 10-20 строк кода.

Делает ли функция только одну вещь и делает ли она это хорошо?

Мартин Фаулер

Разделение между намерением и реализацией
Если вам нужно потратить усилия на просмотр фрагмента кода, чтобы понять, что он делает, вам следует извлечь его в function и назовите функцию после этого «что». Таким образом, когда вы читаете это снова, цель функции сразу бросается в глаза, и большую часть времени вам не нужно будет заботиться о том, как функция выполняет свою цель, которая является телом функции.

Как только я принял этот принцип, у меня появилась привычка писать очень маленькие функции — обычно длиной всего в несколько строк. Любая функция, состоящая из более чем полудюжины строк кода, начинает пахнуть для меня, и для меня нет ничего необычного в том, что функции состоят из одной строки кода.
[…]
Оптимизирующие компиляторы часто работают лучше с более короткими функциями, которые легче кэшировать.

martinfowler.com/bliki/FunctionLength

Stackoverflow — Рекс М

Дело не в строках кода. Как говорят Стив Макконнелл и Боб Мартин (два довольно хороших справочника по лучшим практикам кодирования), метод должен делать одну и только одну вещь. Сколько бы строк кода ни потребовалось для этого, важно, сколько строк у него должно быть. Если эту одну вещь можно разбить на более мелкие, у каждой из них должен быть свой метод.

Хорошие подсказки, что ваш метод делает больше, чем одну вещь:

Более одного уровня отступа в методе (указывает на слишком много логических ветвей, чтобы выполнять только одно действие)

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

Просто назвать несколько. Боб Мартин также советует держать его на уровне 10. Лично я обычно стараюсь снимать на 10. Если он начинает приближаться к 20, это мысленный сигнал, чтобы уделить больше внимания этому методу.

stackoverflow.com/questions/611304/сколько-строк-кода-должна-быть-метод-функции-процедуры

Правило 30

Боб Мартин в Чистом коде доводит до крайности идею о том, что если маленькое — это хорошо, то меньшее должно быть лучше:

[...]
Как и функции, согласно Clean Code, классы также должны быть меньше, чем маленькие. Некоторые люди считают, что 200 строк — это хорошее ограничение для класса, а не метод
[…]
Поиск подобных руководств привел меня к Правилу 30 в Рефакторинге больших программ. Проекты» Мартина Липперта и Стивена Рука:

dzone.com/articles/rule-30-when-method-class-or

Боб Мартин

Функция должна иметь нулевой или один уровень отступа. В большинстве случаев следует избегать вложенных if и while. Более того, тело оператора if или while должно состоять из одной или двух строк. Как правило, тело оператора if или while должно состоять не более чем из одного вызова функции.

Тело блока try также должно быть вызовом функции; и слово try должно быть первым словом в функции.

[…]

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

[...]

Недостаточно, чтобы программа работала. Программа также должна быть хорошо написана. Как программист, вы должны гордиться своей работой и никогда не оставлять беспорядок под капотом. Помните, продукт, который работает, но имеет плохую внутреннюю структуру, это плохой продукт.

web.archive.org/web/20120413071103/http://blog.objectmentor.com/articles/2007/10/29/какая-большая-должна-быть-функция