이것은 Fulcro Rad의 데모 저장소입니다. 여기에는 모든 프로젝트에 공통적 인 파일의 공유 소스 디렉토리가 포함되어 있으며 특정 백엔드 기술 (현재 SQL 및 Datomic)과 함께 작동하는 데 필요한 특정 파일이있는 별도의 소스 디렉토리가 포함됩니다.
중요한 | 로그인은 [email protected] letmein . |
메모 | Pathom 3이 지원됩니다. 대신 해당 버전을 사용하는 버전의 pathom3 브랜치를 참조하십시오. P3은 생산 준비가 된 것으로 간주 되 자마자 해당 지점이 병합됩니다. |
RAD는 속성을 통해 데이터를 모델링하는 Fulcro의 라이브러리 세트입니다. 속성은 데이터 모델의 사실에 대한 설명으로, 그 자체로는 자비로운 데이터 (ALA RDF)를 가질 수 있습니다. Fulcro 구성 요소에도 데이터 속성이 제공 될 수 있습니다. Fulcro 자체는 이미 UI 구성 요소가 응용 프로그램의 글로벌 데이터 모델에 참여하고 있기 때문에 주석 구성 요소와 데이터 모델의 조합은 약간의 시너지 효과로 이어집니다.
결과는 속성 그룹을 활용하여 자동으로 작성할 수있는 시스템입니다.
데이터베이스 스키마
네트워킹 API
선적 서류 비치
필요한 것을 정확하게 끌어 당기는 uis
클라이언트 측 데이터를 자동화하는 응용 프로그램
형식 및 보고서 생성
속성 클러스터가 실제로 다른 제어하에 이질적인 위치에 살 수있는 연합 데이터 모드.
그리고 훨씬 더.
RAD에는 Fulcro를 사용하는 새로운 생산 프로젝트에서 권장 할 여러 가지 기능이 포함되어 있습니다. 이 데모는 그러한 프로젝트를 설정하는 방법에 대한 좋은 참조입니다. 그러나 RAD는 빠르게 변화하고 있으므로이 데모는 다소 구식 일 수 있음 을 조심하십시오. 이는 템플릿 프로젝트 Per-Se가 아니지만 속성을 통해 데이터 모델을 설계하는 RAD 접근 방식은 많은 보일러 플레이트 코드를 생성하기 위해 활용할 수있는 모든 개발 단계에서 매우 유용하고 강력합니다.
데모는 초보자조차도 이해하고 땜질하기가 비교적 쉬워야하며, Fulcro에 대해 더 많이 배우도록 영감을주기를 바랍니다. 그러나 Fulcro를 이해하지 못하면 어려움이 매우 빨라질 것입니다.
따라서 초보자는 개발자 안내서의 예 또는 표준 https://github.com/fulcrologic/fulcro-template의 예를 통해 Core Fulcro를 학습해야합니다 . RAD는 핵심 라이브러리를 이해해야 할 필요성을 제거 하지 않습니다 . RAD는 단순히 Fulcro를 활용하는 일부 매크로 및 패턴입니다.
SQL 버전에는 알려진 버그가 있습니다. RAD와 함께 플레이하려면 지금은 Datomic Database 어댑터를 사용하십시오.
RAD의 일반적인 프론트 엔드 요소는 모든 데이터 소스에 의해 전원을 공급할 수 없습니다. 주요 요구 사항은 EQL 인터페이스를 지원할 수있는 Fulcro "원격"이 존재한다는 것입니다. 서버의 SQL 데이터베이스에서 Browser LocalStorage에 이르기까지 모든 것을 사용하는 리모컨을 구축하는 것은 사소한 일입니다.
클라이언트를 실행하려면 CLJS 소스를 컴파일해야합니다. 편집 할 수 있으려면 Shadow-Cljs Watch를 시작하십시오.
$ yarn
$ shadow-cljs watch main yarn 없는 경우 대신 npm install 사용하십시오.
데모에 사용 된 데이터 믹 데이터베이스는 데이터 믹 로컬입니다. 메모리 인 데이터베이스를 사용하여 실행하기 쉬운 데모를 간단하게 작성합니다. Datomic에서 WebApp을 시작하려면 다음을 사용합니다.
$ clj -A:dev:datomic
user= > (clojure.core/require ' development)
user=> (development/go) 데이터베이스를 시드하고 웹 서버를 시작합니다. development 네임 스페이스에는 서버 측 코드를 중지/시작 및 재시작 (코드로로드)하기위한 도우미가 포함되어 있습니다.
예제 코드는 대부분의 SQL 데이터베이스 (Memory H2 DB 사용에 대한 기본값)에서 작동해야합니다. 데이터 소스는 SQL 소스 디렉토리의 defaults.edn 구성 파일에 구성됩니다. Hikaricp Connection Pool 문서를 참조하십시오.
SQL 예제에는 src/sql 소스 폴더에 사용자 정의 development 네임 스페이스가 있으며 해당 서버를 실행하는 데 필요한 구성 요소가 있습니다.
적절한 클래스 경로를 설정하는 DEPS 별칭을 사용하여 SQL의 서버 측 버전을 시작할 수 있습니다.
$ clj -A:dev:sql
user= > (clojure.core/require ' development)
user=> (development/go) XTDB 구성 요소의 예제 코드는 사용자 정의 development.clj 과 함께 src/xtdb 폴더에 있습니다. XTDB 노드는 :roterski.fulcro.rad.database-adapters.xtdb/databases defaults.edn 의 키에서 맵에 의해 구성됩니다.
다음과 같이 실행할 수 있습니다 :xtdb deps alias :
$ 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 in defaults.edn 에서 맵으로 구성됩니다.
:asami DEPS 별칭으로 실행할 수 있습니다.
$ clj -A:dev:asami
user= > (clojure.core/require ' development)
user=> (development/go) development/restart 서버를 중지하고 소스를 다시로드하고 서버를 시작합니다.
RAD는 한 번에 여러 가지 라이브러리를 사용합니다. 모든 것의 소스를 확인하고 DEP를 설정하여 한 번에 소스에서 실행할 수 있도록하기가 이상적입니다. CLJ의 추가 소스 디렉토리를 가리키기 위해 개발 네임 스페이스의 set-refresh-dirs 업데이트하여 올바르게 다시로드 할 수도 있습니다.
내가하고있는 매우 활발한 개발은 한 번에 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 Repl을 실행하고 Clojure Deps 탭에서 Alias Checkbox 및 + 버튼을 사용하여 설정해야합니다.
MIT 라이센스 (MIT) 저작권 (C), Fulcrologic, LLC
이에 따라이 소프트웨어 및 관련 문서 파일 ( "소프트웨어")의 사본을 얻는 사람에게는 허가가 부여됩니다. 소프트웨어의 사용, 복사, 수정, 합병, 배포, 배포, 숭고 및/또는 소프트웨어의 사본을 판매 할 권한을 포함하여 제한없이 소프트웨어를 처리 할 수 있도록 소프트웨어를 제공 할 권한이 없습니다.
위의 저작권 통지 및이 권한 통지는 소프트웨어의 모든 사본 또는 실질적인 부분에 포함되어야합니다.
이 소프트웨어는 상업성, 특정 목적에 대한 적합성 및 비 침해에 대한 보증을 포함하여 명시 적 또는 묵시적 보증없이 "그대로"제공됩니다. 어떠한 경우에도 저자 또는 저작권 보유자는 계약, 불법 행위 또는 기타, 소프트웨어 또는 소프트웨어의 사용 또는 기타 거래에서 발생하는 계약, 불법 행위 또는 기타의 행동에 관계없이 청구, 손해 또는 기타 책임에 대해 책임을지지 않습니다.