Однако вместо прямого использования этих библиотек команда разработала собственный класс RequestManager, который инкапсулирует всю логику работы с API. Этот случай наглядно демонстрирует, почему глобальные состояния становятся источником сложно отлавливаемых багов. Без очистки состояния через перезагрузку страницы каждая следующая операция выполняется в контексте «загрязненного» предыдущими действиями состояния. При создании новой заметки глобальное состояние мутировало определенным образом. Все работало отлично, пока пользователь не пытался создать вторую заметку…