Инструкции
Системные требования

Системные требования для пользователей продуктов на базе Q.Palette

Рассмотрим два вида требования:

  1. Железо, необходимое конечному пользователю для плавной работы с продуктами на базе Q.Palette.
  2. Требования, которым должен удовлетворять продукт на базе Q.Palette (должен есть не больше ресурсов, чем рекомендовано).

Заметим, что Q.Palette – это не продукт. Это платформа для построения продуктов на базе микрофронтендов.

Это значит две вещи:

  1. На потребление ОЗУ и процессора влияет не столько сама платформа, сколько продукты, построенные на ее базе.
  2. Нагрузка на ОЗУ и процессор для разных продуктов может отличаться. Это зависит от сложности и оптимизации:
    • самого продукта;
    • всех зависимых продуктов, загружаемых вместе с ним.

Поэтому однозначно ответить на вопрос о требованиях для конечного пользователя нельзя – если продукт не заботится о производительности, то каким бы ни было железо пользователя, его может не хватить для работы с этим продуктом.

Если говорить о требованиях, которым должен удовлетворять каждый продукт – то тут тоже есть препятствия. Представим, что:

  1. Продукт A удовлетворяет условным требованиям X.
  2. Продукт B тоже удовлетворяет X.
  3. Однако если загрузить два продукта вместе, то совокупности мы получим X + X, а не X.

Учитывая, что каждый продукт теоретически должен быть подключаемым (библиотечным), то следование жестким цифрам не имеет никакого смысла.

Правила гигиены при разработке продуктов

Для плавной работы интерфейсов нужно соблюдать элементарные правила гигиены при разработке продуктов:

  • Вовремя очищать неиспользуемую память.
  • Отписываться от ненужных событий.
  • Загружать только то, что нужно в данный момент.
  • Держать DOM компактным.
  • Не перегружать страницу анимациями.
  • Не делать лишних циклов рендеринга.
  • Выносить тяжелые вычисления в веб-воркеры.
  • Минимизировать количество сетевых запросов.
  • Делать отложенную загрузку ресурсов.
  • и т.д.

Это общие правила в мире фронтенд-разработки. Если их соблюдать, все будет хорошо.

Влияет ли платформа на производительность?

Есть места в платформе, где возможна оптимизация, мы над этим работает, но все же нельзя перекладывать ответственность целиком на платформу. Если вы заметили такую проблему, заведите обращение на команду Q.Palette, мы его рассмотрим.