Стек. Каркас. Разговор.

  1. Декларативные приложения
  2. Генеративные приложения
  3. Структура приложения
  4. Библиотеки данных и взаимодействия (текущие)
  5. Хост-библиотеки

Библиотеки данных в [meta] являются важным уровнем унификации всего стека. Цель этого уровня — сделать все максимально функциональным. Например, FeatherScript — отличный пример библиотеки данных, он берет обычные функции, предоставляемые перьями.js, и преобразует их в функции ClojureScript.

Он также отвечает за очистку типов данных, используемых на более низких уровнях. Это означает, что [мета] фреймворк работает только с данными ClojureScript. Взаимодействие с объектами/типами JavaScript разрушает абстракцию между приложением, его языком и хостом. Если вы не собираетесь напрямую взаимодействовать с хостом, ваше приложение должно ограничивать себя только данными ClojureScript.

Библиотеки Interop используются для внешнего взаимодействия внутри экосистемы JavaScript. Часто [мета] использует для этого уровня пакеты CLJSJS, которые обеспечивают доступ к библиотекам и внешним модулям.

Эти слои используются вместе, чтобы абстрагировать [мета] фреймворк от внешних систем и сохранить логику приложения внутри ClojureScript.

Вы можете попробовать [meta] и ознакомиться с README на GitHub.