これは、Fulcro Radのデモリポジトリです。これには、プロジェクトに共通するファイルの共有ソースディレクトリが含まれており、特定のバックエンドテクノロジー(現在はSQLおよびDatomic)を使用するために必要な特定のファイルを持つ個別のソースディレクトリが含まれます。
重要 | ログインは、パスワードletmeinを備えた[email protected]です。 |
注記 | Pathom 3がサポートされています。代わりにそのバージョンを使用するバージョンについては、 pathom3ブランチを参照してください。そのブランチは、P3が生産対応と見なされるとすぐにマージされます。 |
RADは、属性を介してデータをモデル化させるFulcroのライブラリのセットです。属性は、データモデルの事実の説明であり、それ自体が説明的なデータ(ALA RDF)を持つことができます。 Fulcroコンポーネントには、データ属性を与えることもできます。 Fulcro自体がUIコンポーネントがアプリケーションのグローバルデータモデルに参加しているため、注釈を付けたコンポーネントとデータモデルの組み合わせはいくつかの大きな相乗効果につながります。
結果は、属性のグループをレバレッジして自動的に作成できるシステムです。
データベーススキーマ
ネットワーキングAPI
ドキュメント
必要なものを正確に引くuis
クライアント側のデータを自動的に正規化するアプリケーション
フォームとレポートの生成
属性のクラスターが実際に異なる制御下で異なる場所に住むことができるフェデレーションデータモード。
そしてもっと。
RADには、Fulcroを使用した新しい生産プロジェクトでお勧めする多くの機能が含まれています。このデモは、このようなプロジェクトをセットアップする方法の良いリファレンスです。ただし、RADは急速に変化しているため、このデモがやや古くなっている可能性があることに注意してください。これはSE-SEごとにテンプレートプロジェクトではありませんが、属性を介してデータモデルを設計するRADアプローチは、開発のすべての段階で非常に有用で強力です。
デモは、初心者でさえ理解し、いじくり回すことでも比較的簡単である必要があります。フルクロ全般についてもっと学ぶように促すのに役立つことを願っています。ただし、フルクロを理解していない場合は、すぐに困難に遭遇します。
したがって、初心者は、開発者ガイドまたは標準のhttps://github.com/fulcrologic/fulcro-templateの例を介してCore Fulcroを学習することから始める必要があります。 Radは、コアライブラリを理解する必要性を排除しません。 Radは、フルクロを活用するマクロとパターンの一部です。
SQLバージョンにはいくつかの既知のバグがあります。 RADで再生したい場合は、今のところDatomicデータベースアダプターを使用してください。
NO RADの一般的なフロントエンド要素は、任意のデータソースを搭載できません。主な要件は、EQLインターフェイスをサポートできるフルクロ「リモート」が存在することです。サーバー上のSQLデータベースからブラウザLocalStorageまで、あらゆるものを使用するリモートを構築するのは簡単です。
クライアントを実行するには、CLJSソースをコンパイルする必要があります。編集できるようにしたい場合は、Shadow-Cljs Watchを開始してください。
$ yarn
$ shadow-cljs watch main yarnがない場合は、代わりにnpm installを使用してください。
デモで使用されているDatomicデータベースは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名スペースがあり、そのサーバーを実行するために必要なコンポーネントがあります。
適切なClassPathをセットアップするDEPSエイリアスを使用して、SQLのサーバー側バージョンを開始できます。
$ clj -A:dev:sql
user= > (clojure.core/require ' development)
user=> (development/go) XTDBコンポーネントの例のコードは、カスタムdevelopment.cljとともに、 src/xtdbフォルダーにあります。 XTDBノードは、 defaults.ednの:roterski.fulcro.rad.database-adapters.xtdb/databasesキーの下のマップで構成されています。
:xtdb DEPSエイリアスで実行できます。
$ clj -A:dev:xtdb
user= > (clojure.core/require ' development)
user=> (development/go) Asamiコンポーネントの例のコードは、カスタムdevelopment.cljとともに、 src/asamiフォルダーにあります。 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は、いくつかの異なるライブラリを一度に使用します。それらすべてのソースをチェックして、DEPSを設定して、それらのソースから一度に実行できることが理想的です。また、開発名スペースのset-refresh-dirsを更新して、CLJの追加のソースディレクトリを指すように、適切なリロードを取得することもできます。
私が行っている非常に活発な開発は、5つのプロジェクトに一度に変更を加えます(フルクロ、フルクロラッド、フルクロラッドデータミック、フルクロラッド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(またはコマンドライン)では、すべての人のためにローカルソースから作業できるようにします。私は毎日スナップショットをプッシュすることを忘れないようにしていますが、私が忘れて、あなたがいくつかの欠落しているシンボルエラーや物事が壊れているのを見た場合、それがほぼ確実な理由です。
シャドウと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では、現在のClassPathを使用してCLJ Replを実行し、Clojure Depsタブのエイリアスチェックボックスと+ボタンを使用して設定するだけです。
MITライセンス(MIT)Copyright(C)、Fulcrologic、LLC
このソフトウェアと関連するドキュメントファイル(「ソフトウェア」)のコピーを入手して、制限なしにソフトウェアを扱うために、このソフトウェアを制限する権利を含め、ソフトウェアのコピーをコピー、変更、公開、配布、販売する、ソフトウェアのコピーを許可する人を許可する人を許可することを含めて、許可が無料で許可されます。
上記の著作権通知とこの許可通知は、ソフトウェアのすべてのコピーまたはかなりの部分に含まれるものとします。
このソフトウェアは、商品性、特定の目的への適合性、および非侵害の保証を含むがこれらに限定されない、明示的または黙示的なものを保証することなく、「現状のまま」提供されます。いかなる場合でも、著者または著作権所有者は、契約、不法行為、またはその他の訴訟、ソフトウェアまたはソフトウェアの使用またはその他の取引に関連する、またはその他の契約、またはその他の請求、またはその他の責任について責任を負いません。