Ini adalah repositori demo untuk fulcro rad. Ini mencakup direktori sumber yang dibagikan dari file yang akan umum untuk proyek apa pun, dan kemudian memisahkan direktori sumber yang memiliki file spesifik yang diperlukan untuk bekerja dengan teknologi back-end tertentu (saat ini SQL dan Datomic).
Penting | Login adalah [email protected] dengan kata sandi letmein . |
Catatan | Pathom 3 didukung. Lihat cabang pathom3 untuk versi yang menggunakan versi itu sebagai gantinya. Cabang itu akan digabungkan segera setelah P3 dianggap siap produksi. |
RAD adalah satu set pustaka untuk Fulcro yang membuat Anda memodelkan data Anda melalui atribut . Atribut adalah deskripsi fakta dalam model data Anda, yang dengan sendirinya dapat memiliki data descritive (ALA RDF). Komponen Fulcro juga dapat diberikan atribut data. Kombinasi komponen anotasi dan model data mengarah pada beberapa sinergi yang hebat, karena Fulcro sendiri sudah memiliki komponen UI yang berpartisipasi dalam model data global aplikasi Anda.
Hasilnya adalah sistem di mana sekelompok atribut dapat dimanfaatkan untuk secara otomatis membuat:
Skema Basis Data
API Jaringan
Dokumentasi
Uis yang menarik persis apa yang mereka butuhkan
Aplikasi yang menormalkan data sisi klien mereka
Pembuatan form dan laporan
Mode data federasi, di mana sekelompok atribut sebenarnya dapat hidup di lokasi yang berbeda di bawah kendali yang berbeda.
dan banyak lagi.
RAD mencakup sejumlah fitur yang akan saya rekomendasikan dalam proyek produksi baru menggunakan Fulcro. Demo ini adalah referensi yang baik untuk cara mengatur proyek semacam itu; Namun, RAD berubah dengan cepat, jadi berhati -hatilah bahwa demo ini mungkin agak ketinggalan zaman. Ini bukan proyek templat per-se, tetapi pendekatan RAD merancang model data Anda melalui atribut yang kemudian dapat dimanfaatkan untuk menghasilkan banyak kode boilerplate Anda cukup berguna dan kuat dalam semua tahap pengembangan.
Demo harus relatif mudah bagi seorang pemula untuk memahami dan mengutak -atik, dan saya harap ini berfungsi untuk menginspirasi Anda untuk mempelajari lebih lanjut tentang Fulcro secara umum; Namun, jika Anda tidak mengerti Fulcro, maka Anda akan dengan cepat mengalami kesulitan.
Oleh karena itu, pemula harus mulai dengan mempelajari Core Fulcro melalui contoh-contoh dari panduan pengembang atau bahkan standar https://github.com/fulcrologic/fulcro-template. RAD tidak menghilangkan kebutuhan untuk memahami perpustakaan inti. RAD hanyalah beberapa makro dan pola yang memanfaatkan Fulcro.
Versi SQL memiliki beberapa bug yang dikenal. Jika Anda ingin bermain dengan RAD, gunakan adaptor database Datomic untuk saat ini.
Tidak ada elemen front-end umum RAD yang dapat ditenagai oleh sumber data apa pun. Persyaratan utama adalah bahwa ada "jarak jauh" fulcro yang mampu mendukung antarmuka EQL. Adalah sepele untuk membangun remote yang menggunakan apa pun dari database SQL di server ke browser localstorage.
Anda harus mengkompilasi sumber CLJS untuk menjalankan klien. Jika Anda ingin dapat mengeditnya, mulai saja tontonan Shadow-Cljs:
$ yarn
$ shadow-cljs watch main Jika Anda tidak memiliki yarn , gunakan npm install sebagai gantinya.
Basis data datomik yang digunakan dalam demo adalah datomic lokal. Ini menggunakan database dalam memori, yang menjadikan penulisan demo yang mudah dijalankan. Untuk memulai Webapp di Datomic, gunakan:
$ clj -A:dev:datomic
user= > (clojure.core/require ' development)
user=> (development/go) Ini akan menyemai database dan memulai server web. development namespace termasuk pembantu untuk menghentikan/memulai dan memulai kembali (dengan kode memuat ulang) kode sisi server.
Kode contoh harus berfungsi dengan sebagian besar database SQL (dan default untuk menggunakan H2 DB dalam memori). Sumber data dikonfigurasi dalam file konfigurasi defaults.edn di direktori sumber SQL. Lihat dokumentasi Pool Koneksi Hikaricp.
Contoh SQL memiliki namespace development khusus di folder sumber src/sql , bersama dengan komponen yang diperlukan untuk menjalankan server itu.
Anda dapat memulai versi sisi server untuk SQL menggunakan alias DEP yang mengatur classpath yang tepat:
$ clj -A:dev:sql
user= > (clojure.core/require ' development)
user=> (development/go) Kode contoh untuk komponen XTDB ada di folder src/xtdb , bersama dengan development.clj khusus.clj. Node xtdb dikonfigurasi oleh peta di bawah :roterski.fulcro.rad.database-adapters.xtdb/databases di defaults.edn .
Anda dapat menjalankannya dengan :xtdb deps alias:
$ clj -A:dev:xtdb
user= > (clojure.core/require ' development)
user=> (development/go) Kode contoh untuk komponen Asami ada di folder src/asami , bersama dengan development.clj khusus.clj. Asami dikonfigurasi oleh peta di bawah ::cz.holyjak.rad.database-adapters.asami/databases di defaults.edn .
Anda dapat menjalankannya dengan :asami deps alias:
$ clj -A:dev:asami
user= > (clojure.core/require ' development)
user=> (development/go) development/restart akan menghentikan server, memuat ulang sumber, dan memulai server.
RAD menggunakan beberapa perpustakaan yang berbeda sekaligus. Sangat ideal bahwa Anda memeriksa sumber semua itu dan mengatur DEP Anda sehingga Anda dapat lari dari sumber semuanya sekaligus. Anda mungkin juga ingin memperbarui set-refresh-dirs di pengembangan namespace untuk menunjuk pada direktori sumber tambahan di CLJ sehingga Anda mendapatkan muat ulang yang tepat di sana.
Pengembangan yang sangat aktif yang saya lakukan membuat perubahan menjadi 5 proyek sekaligus (Fulcro, Fulcro Rad, Fulcro Rad Datomic, Fulcro Rad SQL, dan demo ini). Saya tidak menjamin saya akan menjaga semuanya tetap selaras sejauh versi dalam file DEPS. Saya secara pribadi mengatur yang berikut di tingkat atas ~/.clojure/deps.edn saya:
{: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]}}}}}Sehingga di IntelliJ (atau di baris perintah) saya dapat bekerja dari sumber -sumber lokal untuk mereka semua. Saya mencoba mengingat untuk mendorong snapshot setiap hari, tetapi jika saya lupa dan Anda melihat beberapa kesalahan simbol yang hilang atau hal -hal rusak, itu hampir pasti mengapa.
Menjalankan Shadow dan CLJ akan terlihat seperti ini dari baris perintah:
# in one terminal
$ shadow-cljs -A:f3-dev:rad-dev watch main
# in another terminal
$ clj -A:dev:f3-dev:rad-dev:datomic Di IntelliJ, Anda hanya akan memastikan untuk menjalankan CLJ REPL dengan ClassPath saat ini, dan menggunakan kotak centang alias dan + tombol di tab Clojure Deps untuk mengaturnya.
Lisensi MIT (MIT) Hak Cipta (C), Fulcrologic, LLC
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
Pemberitahuan hak cipta di atas dan pemberitahuan izin ini harus dimasukkan dalam semua salinan atau bagian substansial dari perangkat lunak.
Perangkat lunak ini disediakan "sebagaimana adanya", tanpa jaminan apa pun, tersurat maupun tersirat, termasuk tetapi tidak terbatas pada jaminan dapat diperjualbelikan, kebugaran untuk tujuan tertentu dan nonpringement. Dalam hal apa pun penulis atau pemegang hak cipta tidak akan bertanggung jawab atas klaim, kerusakan atau tanggung jawab lainnya, baik dalam tindakan kontrak, gugatan atau sebaliknya, timbul dari, di luar atau sehubungan dengan perangkat lunak atau penggunaan atau transaksi lain dalam perangkat lunak.