প্রকল্প সম্পর্কে
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(...)`-এর মাধ্যমে স্পষ্ট হতে হবে। একটি CLI ক্যানোনিকাল টেমপ্লেট থেকে একটি সোর্স ফাইল তৈরি (`init`), এটি চালানো (`run`) এবং এটি পর্যবেক্ষণ (`watch`) সমর্থন করে। JUI বর্তমান JDK ব্যবহার করে অ্যাপ্লিকেশন সোর্স কম্পাইল করে এবং একটি বিল্ট-ইন HTTP সার্ভারের মাধ্যমে এটি পরিবেশন করে।
প্রকল্পটি মডিউলগুলিতে সংগঠিত: `jui-core` হল বর্তমান বাস্তবায়ন এবং ক্যানোনিকাল API, যখন `jui-core-old` হল একটি লিগ্যাসি বাস্তবায়ন যা শুধুমাত্র ঐতিহাসিক/রেফারেন্স উদ্দেশ্যে রাখা হয়েছে। অন্যান্য মডিউল এবং প্লেগ্রাউন্ড কোডে এখনও লিগ্যাসি উদাহরণ থাকতে পারে এবং এগুলিকে API-এর সোর্স অফ ট্রুথ হিসাবে বিবেচনা করা উচিত নয়।
একটি বিবৃত দীর্ঘমেয়াদী ডিজাইন লক্ষ্য হল JUI-কে ছোট স্থানীয় LLM-এর দ্বারা কোড জেনারেশনের জন্য বিশেষভাবে উপযুক্ত করা, যা কয়েকটি সোর্স টোকেন, সামান্য ফ্রেমওয়ার্ক কনটেক্সট এবং নির্ধারক API পছন্দ করে। ডিজাইন নীতিটি "ব্যবহারকারীর ইচ্ছা থেকে চলমান অ্যাপ্লিকেশন পর্যন্ত ন্যূনতম টোকেন" হিসাবে বর্ণনা করা হয়েছে। ভবিষ্যতের কাজ উচ্চ-সেমান্টিক-ঘনত্বের অ্যাপ্লিকেশন প্রিমিটিভ, একটি কমপ্যাক্ট বৈধ অ্যাপ্লিকেশন মডেল/IR, LLM কনটেক্সটের জন্য মেশিন-জেনারেটেড API মেটাডেটা এবং নির্ধারক প্যাকেজিং/ডিপ্লয়মেন্টের পক্ষে হবে বলে আশা করা হচ্ছে।
প্রকল্পটি `mvn test` দিয়ে বিল্ড হয়; সাধারণ ইউনিট-টেস্ট স্যুটটি স্বয়ংক্রিয়ভাবে শেষ হতে হবে, এবং একটি ব্লকিং সার্ভার শুরু করে এমন ম্যানুয়াল টেস্টগুলি Maven ইউনিট-টেস্ট লাইফসাইকেল থেকে অক্ষম রাখা হয়। JUI Apache License 2.0-এর অধীনে লাইসেন্সপ্রাপ্ত।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.