Здравствуйте!
опытные и эффективные программисты на javascript, поделитесь своим опытом.
У меня код определен в нескольких модулях javascript:
есть clientApi.js, в котором определены функции, использующие axios для взаимодействия с сервером,
есть store,js, в котором определены мутации, действия и состояние vuex, и который вызывает функции из clientApi.js,
есть vue-компоненты, которые имеют свои собственные методы, вызывающие действия vuex.
при работе кода получается цепочка вызовов: компонент -> store.js -> clientApi.js.
каждый модуль импортирует код используемого модуля.
как мне в консоли google chrome отдельно подергать методы каждого модуля? у меня они почему то оказываются неопределенными (в консоли), хотя код исправно работает и если втыкать debugger; в каждую отдельную функцию, то в этом прерывании я могу видеть все переменные.
в общем проблема вот в чем: пока не напишешь код всей цепочки - невозможно проверить и отладить каждую отдельную функцию, а такой подход оказывается долгим и непродуктивным.
как ведут разработку опытные, эффективные javascript (front-end) программисты?
что делать мне, чтобы программировать клиента эффективно? нужно привыкнуть (натренироваться) быстро делать цепочки кода или все такие есть какой-то способ разработки на javascript по кусочкам: написал, отладил (еще бы unit-test сделать)?
P.S. я программирую на c# довольно давно и использую следующий подход: разрабатываю функционал, пишу юнит тесты, в процессе разработки многократно запускаю юнит-тесты в отладке, смотрю как работает код, вношу изменения и т.д. затем перехожу к другому компоненту и т.д, потом объединяю компоненты, пишу интеграционные тесты, запускаю, проверяю и получается, что каждый кусочек и система в целом работает и остается стабильной. можно ли (и если можно, то как) использовать такой-же подход в javascript?
я программирую на c# довольно давно и использую следующий подход: разрабатываю функционал, пишу юнит тесты, в процессе разработки многократно запускаю юнит-тесты в отладке
В консоли - никак, если не исхитряться. код, после окончания работы сборщиков, полностью инкапсулируется.
Вы можете, на время разработки, добавлять эти методы в объект window, если очень хочется дергать эти функции вручную из консоли (потом не забудьте удалить)
file - development_test.js
import * as api from './api/clientApi.js';
window.api = api;
Этот тестовый файл просто импортите в корень проекта, получаете возможность дергать window.api[api_method] из консоли.
Ну а вообще - юнит тесты удобнее всего писать на части системы
Я разрабатываю тоже модульно, но пишу на чистом JS.
Использую для рекурсивной "склейки" HTML/JS/CSS либу функцию includeHTML. <div data-src="js/module123.js"></div>
Или тоже, но с помощью JS: includeHTML('js/module123.js');
есть, вроде бы возможность запускать функции js в среде nodejs, и как-то прикрутить к этому делу отладчик, видимо буду копать в этом направлении, если вам знакомы такие подходы, поделитесь, пожалуйста.