Поток является очень модульной структурой для создания приложений на стороне сервера в Clojure с использованием архитектуры, управляемой данными.
Он схож по сферу арачны и основан на интегранте. Duct создает приложения вокруг неизменной конфигурации, которая действует как структурный план. Конфигурацией можно манипулировать и запрашивать для создания сложного поведения.
Смотрите: обновление.md.
Чтобы создать новый проект Duct с Leiningen:
lein new duct < your project name >Это создаст минимальный проект воздуховода. Вы можете расширить это, добавив подсказки профиля, чтобы добавить дополнительную функциональность.
+api добавляет промежуточное программное обеспечение API и обработчики+ataraxy добавляет маршрутизатор атараксии+cljs добавляет в компиляцию Clojurescript и горячую загрузку+example добавляет обработчик примера+heroku добавляет конфигурацию для развертывания в Heroku+postgres добавляет зависимость PostgreSQL и компонент базы данных+site добавляет промежуточное программное обеспечение сайта, любимый, веб -джары и многое другое+sqlite добавляет зависимость SQLite и компонент базы данныхНапример:
lein new duct foobar +site +example Как и во всех шаблонах Leiningen, Duct создаст новый каталог с тем же именем, что и ваш проект. Для получения информации о том, как запустить и создать свой проект, см. Файл проекта README.md .
Структура приложения определяется интегрантной картой конфигурации.
В разработке Duct использует перезагруженный рабочий процесс Стюарта Сьерры.
В производстве воздуховоды следуют двенадцатифакторной методологии приложения.
Местное государство предпочтительнее глобального государства.
Пространства имен должны группировать функции по назначению, а не слоем.
Протоколы следует использовать для обертывания внешних API.
Воздуховоды добавляет слой абстракции поверх интегранта. В интегранте карта конфигурации инициируется в карту работает.
┌────────┐ ┌────────┐
│ config ├──>│ system │
└────────┘ └────────┘
В воздуховоде конфигурация инициируется дважды. Конфигурация сначала инициируется в промежуточную конфигурацию, которая, в свою очередь, инициируется в систему:
┌────────┐ ┌──────────────┐ ┌────────┐
│ config ├──>│ intermediate ├──>│ system │
└────────┘ └──────────────┘ └────────┘
Точно так же, как функции высшего порядка позволяют нам абстрагировать общие шаблоны кода, многослойные конфигурации DUCT позволяют нам абстрагировать общие шаблоны конфигурации.
Ожидается, что клавиши в конфигурации воздуховода будут инициировать функции, которые преобразуют карту конфигурации. Существует два широких типа: профили , которые объединяют их значение в конфигурацию, и модули , которые обеспечивают более сложные манипуляции.
Проекты воздуховодов структурированы, как показано ниже. Файлы, помеченные * *, остаются вне контроля версий.
Copyright © 2021 Джеймс Ривз
Распределено по лицензии MIT.