что-то путаю?
Боюсь, ты поосто усложняешь
В каком смысле?
Что значит отдельная задача?
Я про эвентлуп. Скрипт - задача, промис - задача, вызванная функция, вроде бы, тоже. Или нет?
Вызванная функция создает новый контекст исполнения в эвентлуп, но не нужно называть ее задачей, под которыми обычно понимаются промисы и разные таймеры
Микро или макро, но задача есть задача. А насчет функции - неважно сколько функций ты вызовешь, там все идет как одно "действие" пока стек не освободится
Это понятно, я задумался на тем будут ли 5 подряд вызванных функций 5-ю задачами подряд в стеке или окажется, что это будет одна небольшая задача по выполнению этих 5-и функций.
Ок, спасибо, это я и хотел выяснить.
5 задач будет, поэтому на скролл не советуют нагруженные функции делать т.к. они стек забивают
И поэтому же лучше развивать скрипт на функции, а не писать всё в одной?
Не поэтому но лучше разбивать
Нет, просто не вешать нагруженные функции, разбивание тут не причем
А почему лучше развивать? Какова причина? Ну кроме читабельности конечно.
Разделение ответственности и переиспользование. Типа тебе могут нужны быть данные но твоя функция А вообще может не знать как функция Б их дает, чтобы при надобности ты мог что-то в функции Б поменять но функция А продолжала получать только то, что ей надо. Например ты использовал локальное хранилище, чтобы доставать данные, а потом решил перейти на другое типа index DB. Функции А может быть все равно какое хранилище - ей только данные оттуда нужны. Ну и читаемость конечно же. Разобрать кашу кода нормально можно обычно только в момент написания его. Через месяц если откроешь то самому уже будет сложно ориентироваться что где и откуда.
Понял, спасибо.
Ну и тесты под простые функции проще пишутся, а значит меньше риск ошибки при написании тестов, так как поведение функции более предсказуемо. В целом выходит что писанины больше, но в долгосрочной перспективе проще
Обсуждают сегодня