STARTPOINT_DEV Telegram 111
Оптимизация хранения данных с помощью битовой маски в JavaScript

Битовые маски - это специальный инструмент в программировании, который позволяет использовать отдельные биты числа для хранения множественных булевых значений. Это особенно удобно, когда нужно оптимизировать память и получать быстрый доступ к данным.

Представьте, что у вас есть интерфейс, в котором у пользователя доступны различные флаги для конфигурации (например, показывать кнопку с новым функционалом или дать доступ к новой странице). Такое может понадобиться, когда вы разрабатываете большую фичу и хотите держать её код в основной ветке, но при этом не готовы открывать фичу всем пользователям, пока не протестируете.

Мы можем хранить данные об активных флагах в cookie, для того чтобы иметь к ним доступ во время SSR (server side rendering). Но максимальный объем хранимой информации в cookie сильно ограничен, а флагов может быть большое количество. Поэтому, вместо использования нескольких переменных, мы можем хранить все эти флаги в одном числе.


const NEW_BUTTON_FLAG = 1; // 0001
const NEW_PAGE_FLAG = 2; // 0010
const NEW_FORM_FLAG = 4; // 0100
const NEW_API_FLAG = 8; // 1000

let userFlags = 0;

// Включаем нужные флаги
userFlags = userFlags | NEW_FORM_FLAG | NEW_BUTTON_FLAG; // 0101

// Проверяем, активен ли флаг у пользователя
const showNewForm = (userFlags & NEW_FORM_FLAG) !== 0; // true
const showPageForm = (userFlags & NEW_PAGE_FLAG) !== 0; // false

// Убираем флаг
userFlags &= ~NEW_BUTTON_FLAG;
console.log(userFlags.toString(2)); // 100


С помощью побитовых операций (|, & и ~) мы можем добавлять, удалять, а также проверять флаги.
1👍1



tgoop.com/startpoint_dev/111
Create:
Last Update:

Оптимизация хранения данных с помощью битовой маски в JavaScript

Битовые маски - это специальный инструмент в программировании, который позволяет использовать отдельные биты числа для хранения множественных булевых значений. Это особенно удобно, когда нужно оптимизировать память и получать быстрый доступ к данным.

Представьте, что у вас есть интерфейс, в котором у пользователя доступны различные флаги для конфигурации (например, показывать кнопку с новым функционалом или дать доступ к новой странице). Такое может понадобиться, когда вы разрабатываете большую фичу и хотите держать её код в основной ветке, но при этом не готовы открывать фичу всем пользователям, пока не протестируете.

Мы можем хранить данные об активных флагах в cookie, для того чтобы иметь к ним доступ во время SSR (server side rendering). Но максимальный объем хранимой информации в cookie сильно ограничен, а флагов может быть большое количество. Поэтому, вместо использования нескольких переменных, мы можем хранить все эти флаги в одном числе.


const NEW_BUTTON_FLAG = 1; // 0001
const NEW_PAGE_FLAG = 2; // 0010
const NEW_FORM_FLAG = 4; // 0100
const NEW_API_FLAG = 8; // 1000

let userFlags = 0;

// Включаем нужные флаги
userFlags = userFlags | NEW_FORM_FLAG | NEW_BUTTON_FLAG; // 0101

// Проверяем, активен ли флаг у пользователя
const showNewForm = (userFlags & NEW_FORM_FLAG) !== 0; // true
const showPageForm = (userFlags & NEW_PAGE_FLAG) !== 0; // false

// Убираем флаг
userFlags &= ~NEW_BUTTON_FLAG;
console.log(userFlags.toString(2)); // 100


С помощью побитовых операций (|, & и ~) мы можем добавлять, удалять, а также проверять флаги.

BY Настя Котова // Frontend & Node.js


Share with your friend now:
tgoop.com/startpoint_dev/111

View MORE
Open in Telegram


Telegram News

Date: |

In the “Bear Market Screaming Therapy Group” on Telegram, members are only allowed to post voice notes of themselves screaming. Anything else will result in an instant ban from the group, which currently has about 75 members. But a Telegram statement also said: "Any requests related to political censorship or limiting human rights such as the rights to free speech or assembly are not and will not be considered." ZDNET RECOMMENDS Members can post their voice notes of themselves screaming. Interestingly, the group doesn’t allow to post anything else which might lead to an instant ban. As of now, there are more than 330 members in the group. Some Telegram Channels content management tips
from us


Telegram Настя Котова // Frontend & Node.js
FROM American