Skip to content

Философия Reactive Engine

В мире современной фронтенд-разработки UI-фреймворки взяли на себя слишком много ролей. Они управляют не только отображением, но и тем, как живут, обрабатываются и передаются наши данные.

@pravosleva/reactive-engine создан из убеждения, что бизнес-логика приложения должна быть суверенной. Она не должна зависеть от циклов рендеринга React, хуков Vue или архитектуры Svelte.

Три принципа проектирования

1. UI — это просто тонкая обертка (Framework Agnostic)

Ваш код авторизации, корзины покупок или работы с сокетами должен запускаться и тестироваться в обычном терминале через Jest/Vitest без эмуляции браузера.

  • Как это помогает: Если завтра ваша компания решит перейти с React на Vue или Solid, вы перепишете только компоненты интерфейса. Вся бизнес-логика останется нетронутой.

2. Принцип минимальной осведомленности

Компонент интерфейса должен знать о состоянии ровно столько, сколько ему нужно для вывода на экран.

  • Если кнопке нужна строка Юзер: Иван, она не должна перерисовываться, когда у объекта юзера меняется массив permissions.
  • Атомарные сигналы гарантируют, что обновление графа реактивности происходит на уровне точечных мутаций, минуя тяжелые алгоритмы сравнения виртуального дерева (Virtual DOM Virtual-diffing).

3. Предсказуемость вместо магии

Мы отказались от неявных прокси-объектов, которые магически глубоко отслеживают любые изменения. В Reactive Engine каждое действие разработчика явно:

  • Вы явно создаете источник данных (signal).
  • Вы явно объявляете производную зависимость (computed).
  • Вы защищены от цикличных обновлений, потому что автоматический пакетный сборщик (Batching) не позволит запустить рендер посередине цепочки изменений.

Для кого этот движок?

  • Для авторов сложных интерфейсов: Интерактивные карты, дашборды с графиками, аудио/видео плееры, где стандартный стейт вызывает критические просадки FPS.
  • Для долгоживущих Enterprise-проектов: Где логика пишется на годы, а UI-тренды меняются каждые пару лет.
  • Для перфекционистов производительности: Для тех, кто устал бороться с лишними ререндерами и бесконечными useCallback / useMemo.