Это демонстрационное хранилище для Fulcro Rad. Он включает в себя общий справочный каталог файлов, которые были бы общими для любого проекта, а затем разделяют исходные каталоги, которые имеют определенные файлы, которые потребуются для работы с конкретными движными технологиями (в настоящее время SQL и Datomic).
Важный | Вход в систему [email protected] с паролем letmein . |
Примечание | Патон 3 поддерживается. Посмотрите на ветвь pathom3 для версии, которая использует эту версию вместо этого. Этот филиал будет объединен, как только P3 будет считаться готовым к производству. |
RAD - это набор библиотек для Fulcro, в которых вы смоделируете свои данные с помощью атрибутов . Атрибут - это описание факта в вашей модели данных, которое сама может иметь описательные данные (ALA RDF). Компоненты Fulcro также могут быть даны атрибуты данных. Комбинация аннотирующих компонентов и модели данных приводит к некоторому великому синергии, поскольку в самом Fulcro уже участвует компоненты пользовательского интерфейса в глобальной модели данных вашего приложения.
Результатом является система, в которой группа атрибутов может быть использована для автоматического создания:
Схема базы данных
Сетевые API
Документация
UI, которые тянут именно то, что им нужно
Приложения, которые автоматически нормализуют свои данные на стороне клиента
Форма и генерация отчетов
Федеративные режимы данных, где кластер атрибутов может фактически жить в разрозненных местах под другим контролем.
И гораздо больше.
RAD включает в себя ряд функций, которые я бы порекомендовал в любом новом производственном проекте с использованием Fulcro. Эта демонстрация является хорошей ссылкой на то, как настроить такой проект; Тем не менее, RAD быстро меняется, поэтому остерегайтесь того, что эта демонстрация может быть в некоторой степени устаревшей. Это не шаблонный проект Per-SE, но подход RAD для проектирования вашей модели данных с помощью атрибутов, которые затем можно использовать для создания большого количества вашего кода котлера, является весьма полезным и мощным на всех этапах разработки.
Демонстрация должна быть относительно легкой для новичка, чтобы понять и возиться, и я надеюсь, что она служит для того, чтобы вдохновить вас узнать больше о Фулкро в целом; Однако, если вы не понимаете Fulcro, то вы очень быстро столкнетесь с трудностями.
Поэтому начинающие должны начать с обучения ядра Fulcro с помощью примеров из Руководства разработчика или даже стандартного https://github.com/fulcrologic/fulcro-template. RAD не устраняет необходимость понимания основной библиотеки. RAD - это просто некоторые макросы и паттерны, которые используют Fulcro.
В версии SQL есть некоторые известные ошибки. Если вы хотите поиграть с RAD, пока используйте адаптер базы данных датомической базы.
Нет общих фронтальных элементов RAD не могли бы питаться от любого источника данных. Основное требование состоит в том, что существует «удаленная» Fulcro, который способен поддерживать интерфейс EQL. Тривиально создать удаленное управление, которое использует что -либо из базы данных SQL на сервере до браузера LocalStorage.
Вы должны составить источник CLJS для запуска клиента. Если вы хотите иметь возможность отредактировать его, просто запустите часы Shadow-Cljs:
$ yarn
$ shadow-cljs watch main Если у вас нет yarn , вместо этого используйте npm install .
Датомическая база данных, используемая в демонстрации, является Datomic Local. Он использует базу данных в памяти, которая делает написание простым демоверсией простых в управлении. Чтобы запустить веб -приложение в Datomic, используйте:
$ clj -A:dev:datomic
user= > (clojure.core/require ' development)
user=> (development/go) Это засеет базу данных и запустит веб -сервер. Пространство имен development включает в себя помощников для остановки/запуска и перезапуска (с перезагрузкой кода) код на стороне сервера.
Пример кода должен работать с большинством баз данных SQL (и по умолчанию с использованием H2 DB в памяти). Источник данных настроен в файле конфигурации defaults.edn в каталоге SQL Source. Смотрите документацию пула соединений Hikaricp.
Пример SQL имеет пользовательское пространство имен development в папке src/sql Source, а также компоненты, необходимые для запуска этого сервера.
Вы можете запустить версию на стороне сервера для SQL, используя псевдонимы DEPS, которые настраивают правильную трассу класса:
$ clj -A:dev:sql
user= > (clojure.core/require ' development)
user=> (development/go) Пример кода для компонентов XTDB находится в папке src/xtdb , наряду с пользовательской development.clj . Узлы XTDB настроены на карту под :roterski.fulcro.rad.database-adapters.xtdb/databases Ключ в defaults.edn .
Вы можете запустить его с псевдонимом :xtdb DEPS:
$ clj -A:dev:xtdb
user= > (clojure.core/require ' development)
user=> (development/go) Пример кода для компонентов Asami находится в папке src/asami , а также на пользовательской development.clj . Asami настроена на карту в соответствии с ::cz.holyjak.rad.database-adapters.asami/databases Key в defaults.edn .
Вы можете запустить его с помощью псевдоним :asami Deps:
$ clj -A:dev:asami
user= > (clojure.core/require ' development)
user=> (development/go) development/restart остановит сервер, перезагрузить источник и запустить сервер.
Рад использует несколько разных библиотек одновременно. Идеально, чтобы вы проверили источник всех их и настроили свои DEP, чтобы вы могли запустить из источника их всех сразу. Вы также можете обновить set-refresh-dirs в пространстве имен разработчиков, чтобы указать на эти дополнительные исходные каталоги в CLJ, чтобы вы получили правильную перезагрузку.
Очень активная разработка, которую я делаю, вносит изменения в 5 проектов одновременно (Fulcro, Fulcro Rad, Fulcro Rad Datomic, Fulcro Rad SQL и эта демонстрация). Я не гарантирую, что буду хранить все в синхронизации в отношении версий в файле DEPS. Я лично установил следующее в своем верхнем уровне ~/.clojure/deps.edn :
{:aliases {:f3-dev {:override-deps {com.fulcrologic/fulcro {:local/root "/Users/tonykay/fulcrologic/fulcro"
:exclusions [com.taoensso/sente]}}}
:rad-dev {:override-deps {com.fulcrologic/fulcro-rad {:local/root "/Users/username/fulcrologic/fulcro-rad"}
com.fulcrologic/fulcro-rad-sql {:local/root "/Users/username/fulcrologic/fulcro-rad-sql"}
com.fulcrologic/fulcro-rad-semantic-ui {:local/root "/Users/username/fulcrologic/fulcro-rad-semantic-ui"}
com.fulcrologic/fulcro-rad-datomic {:local/root "/Users/username/fulcrologic/fulcro-rad-datomic"
:exclusions [com.datomic/datomic-free]}}}}}Так что в Intellij (или в командной строке) я могу работать из местных источников для всех из них. Я стараюсь помнить, чтобы ежедневно толкать снимки, но если я забуду, и вы увидите, как не хватает ошибка символа или вещи сломаны, это почти наверняка, почему.
Запуск Shadow и CLJ выглядел бы так из командной строки:
# in one terminal
$ shadow-cljs -A:f3-dev:rad-dev watch main
# in another terminal
$ clj -A:dev:f3-dev:rad-dev:datomic В Intellij вы просто позаботитесь о запустите повторную работу CLJ с ClassPath и использовали флажки псевдонима и кнопку + на вкладке Clojure Deps, чтобы настроить его.
Лицензия MIT (MIT) Copyright (C), Fulcrologic, LLC
Настоящим дается разрешение, бесплатно, любому лицу, получающему копию этого программного обеспечения и связанные с ними файлы документации («Программное обеспечение»), чтобы иметь дело в программном обеспечении без ограничений, включая, без ограничения, права на использование, копирование, изменение, объединение, публикацию, распределение, сублиценность и/или продавать копии программного обеспечения и разрешения лиц, на которые программное обеспечение подходит для того, чтобы поступить так, чтобы поступить на следующие условия: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: на следующие условия: к следующим условиям: на следующие условия: на следующие условия.
Вышеуказанное уведомление об авторском праве и это уведомление о разрешении должно быть включено во все копии или существенные части программного обеспечения.
Программное обеспечение предоставляется «как есть», без гарантии любого рода, явного или подразумеваемого, включая, помимо прочего, гарантии товарной пригодности, пригодности для определенной цели и несоответствия. Ни в коем случае авторы или владельцы авторских прав не будут нести ответственность за любые претензии, убытки или другую ответственность, будь то в действии контракта, деликт или иным образом, возникающие из или в связи с программным обеспечением или использованием или другими сделками в программном обеспечении.