这是Fulcro rad的演示存储库。它包括一个共享的文件的共享源目录,该文件将是任何项目共有的,然后是具有特定文件的单独源目录,这些目录需要使用特定的后端技术(当前SQL和Datomic)。
重要的 | 登录名是[email protected] ,带有密码letmein 。 |
笔记 | 病原3受支持。有关使用该版本的版本,请参见pathom3分支。该分支将在P3被认为是生产准备就绪后立即合并。 |
RAD是FULCRO的一组库,您可以通过属性对数据进行建模。属性是对数据模型中事实的描述,该事实本身可以具有描述数据(ALA RDF)。 FULCRO组件也可以得到数据属性。注释组件和数据模型的组合会导致一些出色的协同作用,因为FULCRO本身已经具有UI组件参与您应用程序的全局数据模型。
结果是一个系统,可以利用一组属性来自动创建:
数据库架构
网络API
文档
UIS完全需要的东西
自动化其客户端数据的应用程序
形成和报告
联合数据模式,其中一群属性实际上可以生活在不同控制下的不同位置。
还有更多。
RAD包括我在任何新生产项目中都建议使用FULCRO推荐的功能。该演示是如何建立这样一个项目的很好的参考。但是,RAD正在迅速变化,因此请注意,此演示可能有些过时。这不是一个模板项目,而是通过属性设计数据模型的RAD方法,然后可以利用这些属性来生成许多样板代码,在开发的所有阶段都非常有用和强大。
即使是初学者也可以理解和修改该演示,也应该相对容易,我希望它可以激发您更多地了解Fulcro的更多信息。但是,如果您不了解Fulcro,那么您将很快遇到困难。
因此,初学者应首先通过开发人员指南甚至标准https://github.com/fulcrologic/fulcro-template学习核心FULCRO 。 RAD不会消除理解核心库的需求。 RAD只是一些利用Fulcro的宏和模式。
SQL版本有一些已知的错误。如果要使用RAD,请暂时使用数据组数据库适配器。
RAD的一般前端元素都无法由任何数据源提供动力。主要要求是存在能够支持EQL接口的FULCRO“远程”。构建一个遥控器,该遥控器使用从服务器上的SQL数据库到浏览器localstorage的任何内容。
您必须编译CLJ源以运行客户端。如果您想能够编辑它,只需启动Shadow-cljs手表:
$ yarn
$ shadow-cljs watch main如果没有yarn ,请改用npm install 。
演示中使用的数据组数据库是Datomic Local。它使用内存数据库,这使得写作易于运行的演示简单。要启动Datomic中的WebApp,请使用:
$ clj -A:dev:datomic
user= > (clojure.core/require ' development)
user=> (development/go)这将播种数据库并启动Web服务器。 development名称空间包括用于停止/启动和重新启动(使用代码加载)服务器端代码的帮助者。
示例代码应与大多数SQL数据库一起使用(并默认使用内存H2 DB)。数据源是在SQL源目录中的defaults.edn值中配置的。请参阅Hikaricp连接池文档。
SQL示例在src/sql源文件夹中具有自定义development名称空间,以及运行该服务器所需的组件。
您可以使用设置适当的类路径的DEP别名启动SQL的服务器端版本:
$ 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键在defaults.edn中配置。
您可以使用:asami deps别名运行:
$ clj -A:dev:asami
user= > (clojure.core/require ' development)
user=> (development/go) development/restart将停止服务器,重新加载源并启动服务器。
Rad一次使用几个不同的库。理想情况下,您可以查看所有这些源头并设置您的DEP,以便您一次从它们的来源中运行。您可能还需要在开发名称空间中更新开发空间中的set-refresh-dirs ,以指出CLJ中的其他源目录,以便您在此处进行适当的重新加载。
我正在做的非常积极的开发一次更改5个项目(Fulcro,Fulcro Rad,Fulcro Rad Datomic,Fulcro Rad SQL和此演示)。我不保证,就DEP文件中的版本而言,我会保持所有内容。我个人将以下内容设置为我的顶级~/.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中,您只需确保使用当前的Class Path运行CLJ REPL,并在“ Clojure Deps”选项卡中使用别名复选框和+按钮进行设置。
MIT许可证(MIT)版权(C),Fulcromologic,LLC
特此免费获得许可,免费授予任何获得此软件副本和相关文档文件(“软件”)的人,以无限制地处理软件,包括无限制的使用权,复制,复制,修改,合并,发布,分发,分发,分发,分配,sublicense和/或允许软件允许与以下条件相关的软件,以下是以下条件。
上述版权通知和此许可通知应包含在软件的所有副本或大量部分中。
该软件是“原样”提供的,没有任何形式的明示或暗示保证,包括但不限于适销性,特定目的的适用性和非侵权的保证。在任何情况下,作者或版权持有人均不应对任何索赔,损害赔偿或其他责任责任,无论是在合同,侵权的诉讼中还是其他索赔,与软件或使用或其他软件中的使用或其他交易有关。