October 23, 2022

Производительность приложений на Bubble. Заметки. Часть 6. Фильтрация.

Данная серия статей — это мои заметки по книге The Ultimate Guide to Bubble Performance. Тут изложено только то, что фиксировал я, т.к. посчитал это важным.

Приложение можно сделать производительнее, если понимать слабые и сильные стороны серверной и клиентской стороны.

Сервер:

  • Хранит большие объёмы информации
  • Имеет большую вычислительную мощность
  • Может быть расположен на большом расстоянии, поэтому требуется некоторое время для каждого запроса
  • Ограничивает приложение в использовании ёмкости, чтобы оно не использовало всю доступную.

Клиент:

  • Не такой мощный как сервер. Может обрабатывать ограниченное количество информации, прежде чем замедлится
  • Результаты немедленные, т.к. не нужно отправлять информацию на сервер и ждать её обработки. Вся информация хранится на локальном устройстве и обрабатывается на нём же, поэтому скорость обработки высокая.
  • Не имеет ограничений. Использует всю доступную вычислительную мощность, пока не обработает информацию
  • Новую информацию должен получать с сервера. Клиентское устройство не хранит постоянно всю информацию о приложении.

Фильтрация.

Как сделать приложение быстрее, используя фильтрацию на стороне клиента?

Об этом ниже. Сначала 2 примера на самопроверку.


Самопроверка: где выполняется поиск в примере ниже?

1. Поиск выполняется на сервере Bubble.

2. Мы ищем пользователей, принадлежащих к той же компании, что и текущий пользователь.

3. Просим отсортировать этот список по фамилии пользователя.


Самороверка: где выполняется фильтрация в следующем примере?

В этом примере все, что в красных скобках, происходит на стороне сервера, а все, что в синих скобках, происходит на стороне клиента:

1. Мы получаем список пользователей с сервера Bubble

2. Затем применяем к этому списку дополнительные фильтры (Advanced)

3. Указываем нашему текстовому элементу отображать только первые пять записей. Это означает, что весь список хранится в памяти устройства, но мы показываем только первые пять.

Фильтрация на стороне клиента подходит при:

  • Обработке списков, содержащих несколько сотен элементов
  • Использовании простых фильтров. Чем больше параметров добавляем в фильтр — тем медленнее работает
  • Использовании неконфиденциальных данных. Несмотря на то, что пользователь видит на экране только часть информации, фильтрация происходит на стороне клиента, а значит сервер отдаёт нам всю информацию. При желании можно её подсмотреть. Поэтому при работе с конфиденциальными данными нужно быть осторожным при выборе фильтрации (серверная/клиентская).

Избегайте фильтрации на стороне клиента для:

  • Больших наборов данных
  • Конфиденциальных данных
  • Сложной фильтрации. Если у вас много параметров, по которым вы обрабатываете данные, то лучше воспользоваться серверной фильтрацией, дабы не нагружать клиентское устройство.

Если статья была полезной для вас — ставьте реакцию ниже.

→ Подписывайтесь на мой канал в Телеграме Иван Некодит.

В канале рассказываю про:

  • Путь разработчика
  • Разработку на Nocode-инструментах.