Большинство приложений имеют логику для которой они были созданы. Эта логика сама по себе может быть очень сложной и основанной на реактивных принципах, мы называем ее бизнес-логикой.
Для того чтобы пользователь мог воспользоваться описанной выше логикой, необходимо создать пользовательский интерфейс и реализовать логику для него; мы называем это логикой UI.
Самый простой способ разобраться, что есть что — это запомнить, с какими задачами к вам приходит менеджер проекта или как выглядят задачи продукта. Там нет описания того, как должны работать кнопки, выпадающие списки и поля формы внутри или какой API следует использовать. Есть только описание того, как пользователь взаимодействует с приложением. Пользователи не заботятся о том, какие технологии и фреймворки используются под капотом — это дело разработчиков решать, какие инструменты использовать для достижения требуемого качества.
В большинстве случаев команда разработки продукта не думает в терминах компонентов пользовательского интерфейса; она продумывает сценарии поведения пользователей. Что еще более важно для разработчиков, то, как работают фреймворки, такие как React, Angular или Vue, часто не позволяет описать бизнес-логику так, как описала ее команда разработки продукта. Эти фреймворки разработаны совершенно по-разному и имеют разные принципы работы, тогда как бизнес-логика всегда основана на одних и тех же принципах:
- пользователи могут взаимодействовать с приложением через интерфейс
- они могут видеть изменения на странице
- они могут заметить, как приложение взаимодействует с внешним миром
Effector предлагает возможность описать бизнес-логику на том же языке, на котором общается команда разработки продукта, используя базовые примитивы: Событие (Event), Хранилище (Store), Эффект (Effect) соответственно. В то же время логика пользовательского интерфейса остается ответственностью фреймворка. Пусть каждый фреймворк решает свою задачу настолько эффективно, насколько это возможно.
Документация на английском языке - самая актуальная, поскольку её пишет и обновляет команда effector. Перевод документации на другие языки осуществляется сообществом по мере наличия сил и желания.
Помните, что переведенные статьи могут быть неактуальными, поэтому для получения наиболее точной и актуальной информации рекомендуем использовать оригинальную англоязычную версию документации.