প্রকল্প সম্পর্কে
গুয়াবা (Guava) হলো গুগলের তৈরি কোর জাভা লাইব্রেরির একটি সেট। এতে মাল্টিম্যাপ ও মাল্টিসেটের মতো নতুন কালেকশন টাইপ, অমার্জনযোগ্য কালেকশন, একটা গ্রাফ লাইব্রেরি এবং কনকাররেন্সি, I/O, হ্যাশিং, প্রিমিটিভস, স্ট্রিং এবং আরও অনেক কিছুর জন্য ইউটিলিটি রয়েছে। README-এ বলা হয়েছে যে গুগলের বেশিরভাগ জাভা প্রজেক্টে এবং অন্যান্য অনেক কোম্পানিতে এটি ব্যাপকভাবে ব্যবহৃত হয়।
গুয়াবা দুই ধরনে আসে। JRE ফ্লেভারের জন্য JDK 1.8 বা তার উচ্চতর সংস্করণ প্রয়োজন। অ্যান্ড্রয়েড সমর্থনের জন্য একটি অ্যান্ড্রয়েড ফ্লেভারও উপলব্ধ, যার সোর্স রিপোজিটরির android ডিরেক্টরিতে রয়েছে।
বিল্ডে গুয়াবা যোগ করা: Maven-এর group ID হলো com.google.guava এবং artifact ID হলো guava। দুই ফ্লেভার Maven-এর version ফিল্ডে 33.7.1-jre অথবা 33.7.1-android হিসেবে উল্লেখ করা হয়। README-এ Maven ও Gradle নির্ভরতা সংক্রান্ত snippets দেওয়া আছে, Gradle-তে api versus implementation ব্যবহারের সময় নির্দেশনা সহ।
master শাখা থেকে তৈরি স্ন্যাপশটগুলো Maven ব্যবহার করে 999.0.0-HEAD-jre-SNAPSHOT অথবা অ্যান্ড্রয়েড ফ্লেভারের জন্য 999.0.0-HEAD-android-SNAPSHOT ভার্সনে পাওয়া যায়। স্ন্যাপশট API Javadoc এবং API diffs-ও উপলব্ধ। Javadoc পাওয়া যায় guava.dev/api ঠিকানায়, এবং কোনো নির্দিষ্ট ক্লাস খুলতে guava.dev-এর সাথে ক্লাসের নাম যোগ করতে হয়।
শেখার সম্পদগুলোর মধ্যে রয়েছে ব্যবহারকারীদের গাইড, গুয়াবা এ্যাক্সপ্লেইন্ড (Guava Explained), এবং অন্যান্য সাহায্যকারী লিংকের সমষ্টি। প্রজেক্টটি তার GitHub প্রজেক্ট, ইস্যু ট্র্যাকার, StackOverflow ট্যাগ, এবং guava-announce ও guava-discuss গুগল গ্রুপগুলোর লিংক দেয়।
README-তে গুরুত্বপূর্ণ সতর্কতাগুলো তালিকাভুক্ত করা হয়েছে। @Beta অ্যানোটেশন দিয়ে চিহ্নিত API-রা পরিবর্তনশীল এবং যেকোনো সময় পরিমার্জিত বা অপসারিত হতে পারে; লাইব্রেরি লেখকদের পরামর্শ দেওয়া হয় বীটা API না ব্যবহার করার, যদি না তারা তাদের পুনর্বিতরণ করেন, এবং একটি গুয়াবা বীটা চেকার (Guava Beta Checker) ব্যবহারের প্রস্তাব দেওয়া হয়েছে। @Beta ছাড়া API-গুলো স্বল্পমেয়াদে বৈচ্চিত্যিক-রূপে সামঞ্জস্যপূর্ণ থাকবে বলে উল্লেখ করা হয়েছে, এবং @Deprecated API-গুলোও ততক্ষণ পর্যন্ত থাকবে যতক্ষণ না তা @Beta হয়। গুয়াবার রানটাইমে লিঙ্কেজের জন্য একটি মাত্র নির্ভরতা, com.google.guava:failureaccess:1.0.3, প্রয়োজন; এছাড়া কিছু শুধুমাত্র অ্যানোটেশন-মাত্র নির্ভরতা রয়েছে। সংরক্ষিত আকার (serialized forms) সব অবজেক্টের ক্ষেত্রে পরিবর্তনযোগ্য, যদি না অন্যথা উল্লেখ থাকে; তাই ভবিষ্যতের কোনো সংস্করণ এগুলো পড়তে পারবে—এমন ধরে সংরক্ষণ করা উচিত নয়। এই ক্লাসগুলো শত্রুতাচ্ছল্য ব্যবহারকারীর বিরুদ্ধে সুরক্ষিতভাবে ডিজাইন করা নয় এবং বিশ্বস্ত ও অবিশ্বস্ত কোডের মধ্যে যোগাযোগের জন্য ব্যবহার করা উচিত নয়। মূলধারার ফ্লেভারের জন্য, লাইব্রেরিগুলো লিনাক্স ও উইন্ডোজ-এ OpenJDK-এর বিভিন্ন সংস্করণ ব্যবহার করে পরীক্ষা করা হয়, এবং কিছু বৈশিষ্ট্য, বিশেষত com.google.common.io-এর মধ্যে, অ-লিনাক্স পরিবেশে সঠিকভাবে কাজ নাও করতে পারে। অ্যান্ড্রয়েড ফ্লেভারের জন্য ইউনিট টেস্টগুলোর মধ্যে API লেভেল 24 (নগাট)-এও চলে।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.