هذا هو مستودع تجريبي لفولكرو راد. ويتضمن دليل مصدر مشترك للملفات التي من شأنها أن تكون شائعة في أي مشروع ، ثم فصل أدلة المصدر التي لديها ملفات محددة ستكون مطلوبة للعمل مع تقنيات خلفية محددة (حاليًا SQL و DatoMic).
مهم | تسجيل الدخول هو [email protected] مع كلمة المرور letmein . |
ملحوظة | يتم دعم PARTOM 3. راجع فرع pathom3 للحصول على إصدار يستخدم هذا الإصدار بدلاً من ذلك. سيتم دمج هذا الفرع بمجرد اعتبار P3 جاهزًا للإنتاج. |
RAD هي مجموعة من المكتبات لـ Fulcro التي جعلت تصوير بياناتك عبر السمات . السمة هي وصف للحقيقة في نموذج البيانات الخاص بك ، والتي يمكن أن تحتوي على بيانات descritive (ALA RDF). يمكن أيضًا إعطاء مكونات فولكرو سمات بيانات. يؤدي الجمع بين مكونات التعليقات ونموذج البيانات إلى بعض التآزر الرائع ، لأن Fulcro نفسها لديها بالفعل مكونات واجهة المستخدم في نموذج البيانات العالمي للتطبيق.
والنتيجة هي نظام يمكن الاستفادة من مجموعة من السمات لإنشاء: تلقائيًا:
مخطط قاعدة البيانات
واجهات برمجة التطبيقات الشبكات
الوثائق
UIS التي تسحب بالضبط ما يحتاجونه
التطبيقات التي تلجأ إلى بيانات من جانب العميل لها
توليد النموذج والتقرير
أوضاع البيانات الموحدة ، حيث يمكن أن تعيش مجموعة من السمات بالفعل في مواقع متباينة تحت سيطرة مختلفة.
وأكثر من ذلك بكثير.
يتضمن RAD عددًا من الميزات التي أوصي بها في أي مشروع إنتاج جديد باستخدام Fulcro. هذا العرض التوضيحي هو مرجع جيد لكيفية إعداد مثل هذا المشروع ؛ ومع ذلك ، يتغير RAD بسرعة ، لذا احذر من أن هذا العرض التوضيحي قد يكون قديمًا إلى حد ما. هذا ليس مشروع قالب لكل SS ، ولكن نهج RAD لتصميم نموذج البيانات الخاص بك عبر السمات التي يمكن الاستفادة منها بعد ذلك لإنشاء الكثير من رمز الغلاية الخاص بك هو مفيد وقوي للغاية في جميع مراحل التطوير.
يجب أن يكون العرض التوضيحي سهلاً نسبيًا حتى لفهم المبتدئين والعبور معه ، وآمل أن يخدمك على معرفة المزيد عن فولكرو بشكل عام ؛ ومع ذلك ، إذا لم تفهم فولكرو ، فستواجه صعوبات بسرعة كبيرة.
لذلك يجب أن يبدأ المبتدئون من خلال تعلم Core Fulcro عبر أمثلة من دليل المطور أو حتى https://github.com/fulcrologic/fulcro-template. لا يلغي RAD الحاجة إلى فهم المكتبة الأساسية. RAD هي ببساطة بعض وحدات الماكرو والأنماط التي تستفيد من فولكرو.
نسخة SQL لديها بعض الأخطاء المعروفة. إذا كنت ترغب في اللعب مع RAD ، فاستخدم محول قاعدة بيانات DATOMIC في الوقت الحالي.
لا يمكن تشغيل العناصر العامة للواجهة الأمامية من RAD بواسطة أي مصدر بيانات. المطلب الرئيسي هو وجود "عن بُعد" Fulcro وهو قادر على دعم واجهة EQL. من التافهة إنشاء جهاز تحكم عن بعد يستخدم أي شيء من قاعدة بيانات SQL على خادم إلى Browser LocalStorage.
يجب عليك تجميع مصدر CLJS لتشغيل العميل. إذا كنت تريد أن تكون قادرًا على تحريره ، فما عليك سوى بدء مشاهدة Shadow-Cljs:
$ yarn
$ shadow-cljs watch main إذا لم يكن لديك yarn ، فاستخدم npm install بدلاً من ذلك.
قاعدة بيانات datomic المستخدمة في العرض التوضيحي هي datomic المحلية. يستخدم قاعدة بيانات في الذاكرة ، مما يجعل كتابة عرض تجريبي سهل الجري. لبدء webapp في datomic ، استخدم:
$ clj -A:dev:datomic
user= > (clojure.core/require ' development)
user=> (development/go) سيؤدي ذلك إلى إرفاق قاعدة البيانات وبدء خادم الويب. تتضمن مساحة اسم development مساعدين لإيقاف/بدء وإعادة تشغيل (مع إعادة تحميل التعليمات البرمجية) رمز جانب الخادم.
يجب أن يعمل رمز المثال مع معظم قواعد بيانات SQL (والافتراضيات لاستخدام H2 DB في الذاكرة). تم تكوين مصدر البيانات في ملف التكوين defaults.edn في دليل مصدر SQL. انظر وثائق مجموعة اتصال Hikaricp.
يحتوي مثال SQL على مساحة اسم development مخصصة في مجلد src/sql Source ، إلى جانب المكونات اللازمة لتشغيل هذا الخادم.
يمكنك بدء تشغيل الإصدار من جانب الخادم لـ SQL باستخدام الأسماء المستعارة DEPS التي تقوم بإعداد ClassPath المناسب:
$ 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 key في 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 العديد من المكتبات المختلفة في وقت واحد. من المثالي أن تحقق من مصدر كل هؤلاء وإعداد ديبك حتى تتمكن من الجري من مصدرها جميعًا مرة واحدة. قد ترغب أيضًا في تحديث 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 (أو في سطر الأوامر) يمكنني العمل من مصادر محلية لهم جميعًا. أحاول أن أتذكر دفع لقطات يوميًا ، ولكن إذا نسيت وترى بعض الأخطاء المفقودة في الرمز أو أن الأشياء مكسورة ، فهذا بالتأكيد هو السبب.
سيبدو تشغيل الظل و 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 مع ClassPath الحالي ، واستخدام مربعات الاختيار الاسم المستعار وزر + في علامة التبويب DEPS Clojure لإعدادها.
ترخيص معهد ماساتشوستس للتكنولوجيا (MIT) حقوق الطبع والنشر (C) ، Fulcrologic ، LLC
يتم منح الإذن بموجب هذا ، مجانًا ، لأي شخص يحصل على نسخة من هذا البرنامج وملفات الوثائق المرتبطة به ("البرنامج") ، للتعامل في البرنامج دون تقييد ، بما في ذلك على سبيل المثال لا الحصر حقوق استخدام الأشخاص ونسخها ودمجها ودمجها وتوزيعها وتوزيعها على ما يلي:
يجب إدراج إشعار حقوق الطبع والنشر أعلاه وإشعار الإذن هذا في جميع النسخ أو الأجزاء الكبيرة من البرنامج.
يتم توفير البرنامج "كما هو" ، دون أي ضمان من أي نوع ، صريح أو ضمني ، بما في ذلك على سبيل المثال لا الحصر ضمانات القابلية للتسويق واللياقة لغرض معين وعدم الانفجار. لا يجوز بأي حال من الأحوال أن يكون المؤلفون أو حاملي حقوق الطبع والنشر مسؤولاً عن أي مطالبة أو أضرار أو مسؤولية أخرى ، سواء في إجراء عقد أو ضرر أو غير ذلك ، ناشئة عن أو خارج البرنامج أو الاستخدام أو غيرها من المعاملات في البرنامج.