Чем длиннее метод, тем больше в нём выполняется действий, которые переплетаются между собой. Результат вычислений одного куска метода подаётся на вход другого куска. Самостоятельные действия вплетены друг в друга — становится не просто непонятно, где каждое действие начинается и где заканчивается, а и вообще, как отделить одно действие от другого. Возникают адски вложенные друг в друга циклы и условия. Появляются жирные SQL-запросы, которые тяжело отлаживать.
В длинном методе исполнение кода может пойти по многим путям из-за изобилия циклов и ветвлений. Невозможно держать все пути в памяти одновременно при анализе алгоритма. Каждый путь зависит от массы условий, которые хаотично разбросаны по всему методу.
Отладка длинных методов — это всегда ад: баги появляются из ниоткуда и с трудом поддаются даже отлову, не то что исправлению.
Единственный разумный выход: писать методы минимальной длины. Когда метод содержит несколько простых операций, его логика кристально ясна, а верификация не представляет трудностей. Однако, метод должен быть осмысленным, а не просто произвольно нарезанным из исходной простыни.
Что дальше
- Цикломатическая сложность
- Выделение функции
- Длина функции
- Название функции