عن المشروع
JUI هو إطار عمل Java خفيف لإنشاء تطبيقات ويب تفاعلية بمساحة تطبيق صغيرة عمدًا. توجد واجهة API الأساسية تحت `it.jui.framework` وتتبع نموذجًا بسيطًا: نفّذ `JuiApp`، واستقبل `UIContext`، واوصف التطبيق باستخدام استدعاءات Java مختصرة مثل `ui.title(...)` و`ui.textInput(...)` و`ui.button(...)` و`ui.table(...)` و`ui.map(...)`. ثم يتولى JUI معالجة HTTP وعرض المتصفح وحالة الجلسة.
يطبّق التطبيق الأدنى `JuiApp` ويعيد تعريف `run(UIContext ui)`، مستدعيًا دوال مثل `ui.title(...)` و`ui.text(...)`. يمكن للتطبيقات التفاعلية قراءة المدخلات مثل `ui.textInput(...)` و`ui.slider(...)`، والتفاعل مع `ui.button(...)`، الذي يستخدم دلالات أحداث لمرة واحدة: تقييم النقرة يكون `true` للعرض الناتج عن تلك النقرة ثم يُستهلك. تُفتح حالة الودجات بشكل حتمي من تسمية الودجة في واجهة API الحالية.
تُهرّب واجهات API النصية HTML افتراضيًا، بينما يجب أن يكون HTML الخام صريحًا عبر `ui.html(...)`. تدعم واجهة سطر أوامر إنشاء ملف مصدر من القالب الأساسي (`init`)، وتشغيله (`run`)، ومراقبته (`watch`). يترجم JUI مصدر التطبيق باستخدام JDK الحالي ويقدمه عبر خادم HTTP مدمج.
ينظم المشروع في وحدات: `jui-core` هو التنفيذ الحالي وواجهة API الأساسية، بينما `jui-core-old` هو تنفيذ قديم محتفظ به لأغراض تاريخية/مرجعية فقط. قد تحتوي وحدات أخرى وشيفرة playground على أمثلة قديمة ولا ينبغي اعتبارها المصدر الموثوق لواجهة API.
من أهداف التصميم طويلة المدى المعلنة جعل JUI مناسبًا بشكل خاص لتوليد الشيفرة بواسطة نماذج LLM محلية صغيرة، مع تفضيل رموز مصدر قليلة، وسياق إطار عمل ضئيل، وواجهات API حتمية. ويوصف مبدأ التصميم بأنه "أقل عدد من الرموز من نية المستخدم إلى تطبيق قيد التشغيل". من المتوقع أن تفضّل الأعمال المستقبلية البدائيات التطبيقية عالية الكثافة الدلالية، ونموذج/IR تطبيقي مضغوط ومتحقق منه، وبيانات وصفية لواجهة API مولدة آليًا لسياق LLM، وتغليفًا/نشرًا حتميًا.
يُبنى المشروع باستخدام `mvn test`؛ ويجب أن تنتهي مجموعة اختبارات الوحدة العادية تلقائيًا، وتبقى الاختبارات اليدوية التي تشغّل خادمًا حاجبًا معطلة عن دورة حياة اختبارات الوحدة في Maven. JUI مرخص بموجب Apache License 2.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.