Это, наверное, отличная идея!
Я не согласен с разделением длинных линейных последовательностей действий на отдельные функции исключительно для уменьшения средней длины функции в вашей кодовой базе:
function step1(){
// ...
step2(zarb, foo, biz);
}
function step2(zarb, foo, biz){
// ...
step3(zarb, foo, biz, gleep);
}
function step3(zarb, foo, biz, gleep){
// ...
}
Теперь вы на самом деле добавили строки исходного текста и уменьшить общую читаемость значительно. Особенно, если вы сейчас передаете много параметров между каждой функцией, чтобы отслеживать состояние. Хлоп!
Однако , если вам удалось извлечь одну или несколько строк в чистую функцию, которая служит единственной ясной цели ( даже если вызывается только один раз ), то вы улучшили читабельность:
function foo(){
f = getFrambulation();
g = deglorbFramb(f);
r = reglorbulate(g);
}
Это, вероятно, будет нелегко в реальных ситуациях, но части чистой функциональности часто можно выявить, если вы думаете об этом достаточно долго.
Вы будете знать, что находитесь на правильном пути, когда у вас есть функции с хорошими именами глаголов и когда ваша родительская функция вызывает их, и все это практически читается как абзац прозы.
Затем, когда вы вернетесь через несколько недель, чтобы добавить больше функциональности, и обнаружите, что действительно можете повторно использовать одну из этих функций, тогда, о, восторженная радость! Какой чудесный лучезарный восторг!