আপনার যদি রুবিতে কিছু করা দরকার তবে এটির জন্য একটি রত্ন সম্ভবত বিদ্যমান। আচ্ছা, এর জন্য এক ডজন রত্ন সম্ভবত বিদ্যমান। তাদের মধ্যে কিছু মার্জিত, বৈশিষ্ট্যপূর্ণ, এবং ভালভাবে রক্ষণাবেক্ষণ করা হয়েছে, এবং অন্যগুলি একটি ব্যবহার কেস সমাধান করার জন্য লিখিত হয়েছিল যে লেখক একবারে দৌড়েছিলেন। আপনার কাছে বেছে নেওয়ার জন্য প্রচুর রত্ন রয়েছে, তাই আপনি কীভাবে সঠিকটি চয়ন করবেন৷ ? এই পছন্দটি গুরুত্বপূর্ণ - যখন আপনি আপনার প্রকল্পে একটি রত্ন যোগ করার জন্য অনুশোচনা করছেন, তখন এটি পরিবর্তন করা বেদনাদায়ক৷
পরিসংখ্যান
যখন আমার একটি সমস্যা সমাধানের জন্য একটি লাইব্রেরির প্রয়োজন হয়, আমি রুবি টুলবক্স দিয়ে শুরু করি। রুবি টুলবক্স হল একটি শ্রেনীর সমস্ত রত্নগুলির একটি তালিকা পাওয়ার একটি দুর্দান্ত উপায় (যেমন "সাবস্ক্রিপশন ম্যানেজমেন্ট"), সহ:
-
কতজন লোক এটি ব্যবহার করে?
জনপ্রিয় রত্ন সাধারণত একটি কারণে আরো জনপ্রিয় হয়. এবং ইন্টারনেটে অন্য সবাই একই রত্ন ব্যবহার করলে সাহায্য পাওয়া অনেক সহজ হবে।
-
কত সম্প্রতি / প্রায়ই এটি আপডেট করা হয়?
রত্নটি কি ধারাবাহিক আপডেট পায়, নাকি সেই রেল 3.2 সামঞ্জস্যের আপগ্রেডটি এখনও পুল অনুরোধের সারিতে বসে আছে? যদি শেষ রিলিজটি কয়েক বছর আগে হয়, তাহলে আপনি এটি এড়িয়ে যেতে চাইতে পারেন - এটি সম্ভবত আপনার অ্যাপের সাথে সামঞ্জস্যপূর্ণ হবে না, যাইহোক।
রুবি টুলবক্সে আপনি যে রত্নগুলি খুঁজে পান, সেই প্রথম দুটি মানদণ্ড দ্বারা ফিল্টার করা, আপনার কাছে সক্রিয়ভাবে বিবেচনা করছেন এমন রত্নগুলির একটি তালিকা থাকা উচিত৷ রুবি টুলবক্স আপনাকে উৎস, ডকুমেন্টেশন, ওয়েবসাইট এবং বাগ ট্র্যাকারের লিঙ্কও দেয়, যা আপনার পরবর্তী প্রয়োজন হবে।
কোড এবং ডকুমেন্টেশন
-
রত্নটি কি ভালভাবে নথিভুক্ত?৷
ওয়েবসাইট চেক করুন, এটি একটি আছে. ডকুমেন্টেশন ভাল? এটা কি RDoc আছে? আপনি যখন তাদের প্রয়োজন তখন আপনার প্রয়োজনীয় উত্তরগুলি খুঁজে পেতে সক্ষম হবেন?
-
এটি কি ভালোভাবে পরীক্ষিত?
পরীক্ষাগুলো দেখে নিন। এটা কি এমনকি আছে একটি
test/
অথবাspec/
ডিরেক্টরি? এটার কিtest_truth
এর বাইরে কোনো পরীক্ষা আছে ? লেখক কি জানতে পারবেন যে তারা রিগ্রেশন সৃষ্টি করে? -
সমস্যাগুলি দেখুন এবং অনুরোধগুলি টানুন৷
বাগ দ্রুত সংশোধন করা হয়? বাগ এবং টান অনুরোধের উপর আলোচনা আছে, এবং তারা সংশোধন করা হয়? নাকি তারা সেখানে বসে থাকে?
-
Google, StackOverflow, এবং reddit এ রত্নটির নাম অনুসন্ধান করুন
মানুষ এটা সম্পর্কে কি বলেন? কোন রত্ন সুপারিশ করা হয়, এবং কোনগুলি নিরুৎসাহিত করা হয়?
-
মণি দ্বারা প্রদত্ত কয়েকটি ক্লাসের জন্য GitHub অনুসন্ধান করুন
কিভাবে তারা বাস্তব বিশ্বের অ্যাপ্লিকেশন ব্যবহার করা হয়? তারা ব্যবহার করা সহজ বলে মনে হচ্ছে? অথবা অন্য ডেভেলপারদের কি রত্নটির সমস্যাগুলি হ্যাক করতে হবে?
এই মুহুর্তে আপনার পছন্দটি কিছু অবশিষ্ট প্রার্থীদের কাছে সংকুচিত করা উচিত।
স্পর্শী-ফিলি জিনিস
এই মানদণ্ডগুলি একটু বিষয়ভিত্তিক, তাই আপনাকে আপনার প্রকল্পের জন্য সঠিক রত্নটি খুঁজে বের করতে হবে . কিন্তু আপনি যদি এগুলি মিস করেন তবে আপনি পরে অনুশোচনা করবেন৷
-
ডকুমেন্টেশনের উদাহরণের উপর ভিত্তি করে, লাইব্রেরি কি রুবি-ইশ অনুভব করে?
এটা কি রুবি ইডিয়ম ব্যবহার করে? অথবা আপনি কি মনে করেন আপনি আসলে জাভা বা পিএইচপি লিখছেন? এটি অবিশ্বাস্যভাবে প্রায়শই API র্যাপারগুলিতে ঘটে।
-
এটি কি ছোট অংশ দিয়ে তৈরি করা হয়েছে যা একসাথে ভাল কাজ করে?
আপনি কি লেখকের দেওয়া জিনিসগুলিকে এমন জিনিসগুলি তৈরি করতে ব্যবহার করতে পারেন যা লেখক কখনও ভাবেননি? কারণ আপনি সম্ভবত চাইবেন।
-
মণিটি কি ইতিমধ্যেই আপনার প্রকল্পে থাকা অন্য রত্ন দ্বারা ব্যবহৃত হয়েছে?
বোনাস, আপনি এইমাত্র নিজের কিছু ইন্টিগ্রেশন সময় বাঁচিয়েছেন, এবং আপনি জানেন যে আপনাকে সংস্করণ করার জন্য বান্ডলারের সাথে লড়াই করতে হবে না।
-
মণি কি আপনার অ্যাপ সম্পর্কে অনুমান করে? আপনার অ্যাপ কি সেই অনুমানগুলির সাথে মানানসই, এবং এটি কি সর্বদা তাদের সাথে খাপ খাবে?৷
কিছু রত্ন, যেমন ActiveResource, তারা যে সার্ভারের সাথে কথা বলে তার API সম্পর্কে অনুমান করে। অন্যরা, যেমন রিসোর্স কন্ট্রোলার, আপনার নিয়ামক কী করবে সে সম্পর্কে অনুমান করে। যে রত্নগুলি অনুমান করে সেগুলি আপনাকে অনেক দ্রুত এবং আপনার কোডকে আরও সহজ করে তুলতে পারে–যদিও সেই অনুমানগুলি ধরে থাকে . যদি এই অনুমানগুলি আপনার অ্যাপের সাথে সামঞ্জস্যপূর্ণ না হয়, তবে, আপনি নিজেকে বানর প্যাচিং, ডিবাগিং এবং শেষ পর্যন্ত কেবল রত্নটি ছিঁড়ে দিন কাটাতে দেখতে পাবেন।
ওহ, এটা অনেক।
হ্যাঁ, আপনার প্রকল্পের জন্য সেরা রত্ন বাছাই করতে আপনি ব্যবহার করতে পারেন এমন এক টন মানদণ্ড রয়েছে। এবং আপনাকে সাধারণত সেগুলির মধ্য দিয়ে যেতে হবে না৷৷ বেশিরভাগ সময়, আপনি রুবি টুলবক্সে ছুটতে পারেন এবং সবচেয়ে জনপ্রিয় রত্নটি বেছে নিতে পারেন।
কিন্তু কিছু রত্ন আছে যেগুলো আপনার অ্যাপের মূল অংশ হয়ে উঠেছে। এইচটিটিপি লাইব্রেরি, ডাটাবেস লাইব্রেরি বা আপনার কন্ট্রোলারকে পরিষ্কার করার প্রতিশ্রুতি দেয় এমন কিছুর মতো জিনিস। এবং এইগুলি নিশ্চিত করার জন্য অতিরিক্ত সময় নেওয়া মূল্যবান রত্নগুলি পরিষ্কার, ভালভাবে রক্ষণাবেক্ষণ করা, ভালভাবে নথিভুক্ত এবং আপনার মানসিক মডেলের সাথে মানানসই হয় কিভাবে সেগুলি উচিত কাজ।
আমি একটি Google স্প্রেডশীটে এই সমস্ত মানদণ্ড রেখেছি , তাই যখন আপনাকে আপাতদৃষ্টিতে অনুরূপ রত্নগুলির একটি অপ্রতিরোধ্য সংখ্যক থেকে বাছাই করতে হবে, আপনি সহজেই তাদের তুলনা করতে পারেন। আপনি এটি এখানে নিতে পারেন।