TL; DR: Это плохая практика - использовать глобальную переменную для предотвращения ненужного выполнения кода, и если да, то каковы альтернативы?
У меня есть приложение Electron, которое читает поток данных в реальном времени из другого приложения и выводит некоторые его элементы на экран.
Существует два типа полученных данных: данные в реальном времени (телеметрия) о том, что происходит в данный момент, и дополнительные данные c, которые обновляются каждые несколько секунд (sessionInfo).
Первый При получении пакета sessionInfo мне нужно расположить и определить размер некоторых элементов пользовательского интерфейса в соответствии с некоторыми данными в нем. Эти данные определенно не изменятся в ходе использования приложения, поэтому я не хочу, чтобы вычисления, основанные на них, выполнялись более одного раза *. Мне нужно прослушивать все пакеты sessionInfo, есть и другие вещи, которые я делаю с ними при получении, именно эта конкретная c часть данных должна рассматриваться только один раз.
Учитывая вышесказанное, является ли это сценарием, в котором было бы целесообразно использовать глобальную переменную для хранения этой информации (или даже просто флаг, чтобы сказать, что эта информация была обработана) и использовать ее для препятствовать выполнению кода несколько раз? Все мои чтения показывают, что глобальные переменные никогда не были хорошей идеей, но, если не допустить повторного выполнения этого кода, я не уверен, какие у меня есть альтернативы.
* Я признаю, что разрешение этого, вероятно, не будет иметь никакого практического значения для моего приложения, но это для меня опыт обучения, а также создание чего-то полезного, поэтому я хотел бы понять «правильный» подход, а не просто выискивать что-то неэффективное вместе и делать это работает.