কম্পিউটার টিউটোরিয়াল

সেরা রুবি জেম বাছাই: একটি প্র্যাক্টিক্যাল, বিশ্বস্ত গাইড

রুবিতে কিছু করতে চাইলে, সেটার জন্য জেম থাকা সম্ভব। বরং, এক দर्जন জেম থাকা সম্ভব। কিছুই এলিগ্যান্ট, ফিচারফুল, এবং ভালো মেইনটেইনড, আর কিছু লেখক একবার যে ইউজ কেসে পড়েছিল সেটা সমাধান করার জন্য। জেম বাছার অপশন অনেক, তাই সঠিকটি কীভাবে বাছাবেন? এই চয়েস গুরুত্বপূর্ণ - প্রজেক্টে জেম অ্যাড করার পর পছন্দ না হলে, ফেরত যাওয়া পেইনফুল।

আঙ্কড়াবিজ্ঞান

সমস্যা সমাধানের জন্য লাইব্রেরি দরকার হলে, আমি Ruby Toolbox দিয়ে শুরু করি। Ruby Toolbox একটা চমৎকার উপায় সব জেম ক্যাটাগরি-ওয়াইজ (যেমন "Subscription Management") পাওয়ার, সাথেই:

  • কতজন ব্যবহার করছে?

    পপুলার জেম সাধারণত ভালো কারণেই পপুলার। এবং সাহায্য পাওয়া সহজ হয় যখন ইন্টারনেটে সবাই একই জেম ব্যবহার করে।

  • কত недаয় / কত ঘন ঘন আপডেট হয়?

    জেম কনসিস্টেন্টলি আপডেট হয় নাকি রেইলস ৩.২ কম্প্যাটিবিলিটি আপগ্রেড এখনো পুল রিকোয়েস্ট কিউতে পড়ে আছে? লাস্ট রিলিজ যদি বছরها আগে হয়, তবে স্কিপ করাই ভালো - আপনার অ্যাপের সাথে কম্প্যাটিবল নাও হতে পারে।

Ruby Toolbox-এ পাওয়া জেমগুলো উপরের দুটি ক্রাইটেরিয়া দিয়ে ফিল্টার করলে, আপনার কাছে এক্টিভলি কনসিডার করা জেমের লিস্ট থাকবে। Ruby Toolbox সোর্স, ডকুমেন্টেশন, ওয়েবসাইট, এবং বাগ ট্র্যাকারের লিংকও দেয়, যা পরের ধাপে লাগবে।

কোড এবং ডকুমেন্টেশন

  • জেমটি ভালো ডকুমেন্টেড কিনা?

    ওয়েবসাইট চেক করুন। ডকুমেন্টেশন ভালো? RDoc আছে? আপনার প্রয়োজনীয় উত্তর পাওয়া যাবে কিনা?

  • এটা ভালো টেস্টেড কিনা?

    টেস্ট দেখুন। test/ বা spec/ ডিরেক্টরি আছে কিনা? test_truth ছাড়া আরো টেস্ট আছে কিনা? লেখক জানতে পারবে কিনা যদি রিগ্রেশন ঘটে?

  • ইস্যু এবং পুল রিকোয়েস্ট দেখুন

    বাগ দ্রুত ফিক্স হয় কিনা? বাগ ও পুল রিকোয়েস্টে ডিসকাশন হয় এবং ফিক্স হয় কিনা? অথবা সেগুলো বসে আছে?

  • গুগল, StackOverflow, Reddit-এ জেমের নাম সার্চ করুন

    লোকেরা কী বলে? কোন জেম রিকমেন্ড করা হচ্ছে, কোন ডিসকরেজ করা হচ্ছে?

  • GitHub-এ জেমের কয়েকটা ক্লাস সার্চ করুন

    রিয়েল-ওয়ার্ল্ড অ্যাপে সেগুলো কীভাবে ব্যবহার হচ্ছে? সহজ লাগছে কিনা? অথবা অন্যান্য ডেভেলপার জেমের সমস্যায় হ্যাক করতে বাধ্য হচ্ছে?

এই পয়েন্টে আপনার চয়েস নেছে ডাউন হয়ে যাবে কয়েকটা ক্যান্ডিডেটে।

টাচি-ফিলি জিনিসগুলো

এই ক্রাইটেরিয়া গুলো একটু সাবজেক্টিভ, তাই আপনার প্রজেক্টের জন্য সঠিক জেম খুঁজতে হবে। কিন্তু এগুলো মিস করলে পরে পشیমাপ করবেন।

  • ডকুমেন্টেশনের উদাহরণ দেখে, লাইব্রেরি কি Ruby-ish ফিল হয়?

    রুবি ইডিয়ম ব্যবহার করে কিনা? অথবা জাভা বা PHP লিখতে লাগছে? API র‍্যাপারগুলোতে এটা অবিশ্বাস্যভাবে কমন।

  • এটা ছোট ছোট পার্ট দিয়ে বানানো যেগুলো ভালোভাবে কাজ করে কিনা?

    লেখক যে অবজেক্টগুলো দিয়েছে সেগুলো ব্যবহার করে লেখক যা চিন্তা করিনি সেটা বানাতে পারবেন কিনা? কারণ আপনি সম্ভবত চাইবেন।

  • জেমটি আপনার প্রজেক্টে ইতিমধ্যে আছে অন্য কোনো জেম দ্বারা ব্যবহার করা হয়েছে কিনা?

    বোনাস, আপনি ইন্টিগ্রেশন টাইম বাঁচালেন, এবং বান্ডলারের সাথে ভার্সনিংয়ে লড়াই করতে হবে না।

  • জেম আপনার অ্যাপ সম্পর্কে অনুমান করে কিনা? আপনার অ্যাপ সেটা ফিট করে কিনা, এবং সবসময় ফিট করবে কিনা?

    কিছু জেম, যেমন ActiveResource, সার্ভারের API সম্পর্কে অনুমান করে। অন্যদের মতো ResourceController, কন্ট্রোলার কী করবে সেটা অনুমান করে। অনুমানকারী জেম আপনাকে অনেক দ্রুত এবং কোড সিম্পল করে দেয় - যতক্ষণ অনুমানগুলো দাঁড়ায়। যদি অনুমানগুলো আপনার অ্যাপের সাথে ইনকম্প্যাটিবল হয়, তবে দিন দিন মンキ প্যাচিং, ডিবাগিং, এবং শেষে জেম টিয়ার আউট করতে হবে।

উফ, এত বেশি!

হ্যাঁ, প্রজেক্টের জন্য সেরা জেম বাছার অনেক ক্রাইটেরিয়া আছে। আপনি সাধারণত সব গিয়ে যাবেন না। অধিকাংশ সময়, Ruby Toolbox-এ গিয়ে সবচেয়ে পপুলার জেম বাছায়ই চলে।

তবে কিছু জেম আপনার অ্যাপের কোর পার্ট হয়ে যায়। HTTP লাইব্রেরি, ডেটাবেস লাইব্রেরি, বা যেকোনো জেম যা কন্ট্রোলার ক্লিন করার обещание দেয়। এবং এই জেমগুলো ক্লিন, ভালো মেইনটেইনড, ভালো ডকুমেন্টেড, এবং আপনার মেনタル মডেলের সাথে ফিট করে কিনা সেটা নিশ্চিত করার জন্য এক্সট্রা টাইম দাওয়া ওরথ।

এই সব ক্রাইটেরিয়া আমি একটি Google Spreadsheet-এ রেখেছি, যাতে অসংখ্য সাদৃশ্য জেম থেকে বাছাতে গেলে আপনি সহজে তুলনা করতে পারেন। এখান থেকে নিতে পারেন।

  1. আপনার পরবর্তী প্রজেক্টের জন্য রয়াল্টি-ফ্রি মিউজিক ডাউনলোড করার ৪টি সেরা ওয়েবসাইট

  2. ওয়ার্ডপ্রেসের সেরা প্লাগইন বেছে নেওয়ার পূর্ণাঙ্গ গাইড

  3. টাইম কমপ্লেক্সিটি আয়ত্ত করুন: রুবি ডেভেলপারদের জন্য ব্যাপক গাইড

  4. সেরা অ্যাপেল ওয়াচ অ্যাপস: ফিটনেস, প্রোডাক্টিভিটি ও আরও অনেক কিছু বাড়ান