अगर आपको रूबी में कुछ करने की ज़रूरत है, तो इसके लिए एक मणि शायद मौजूद है। खैर, इसके लिए एक दर्जन रत्न शायद मौजूद हैं। उनमें से कुछ सुरुचिपूर्ण, विशिष्ट और सुव्यवस्थित हैं, और अन्य को एक उपयोग के मामले को हल करने के लिए लिखा गया था जिसे लेखक उस समय में चला गया था। आपके पास चुनने के लिए बहुत सारे रत्न हैं, तो आप सही वाले . को कैसे चुनते हैं ? यह विकल्प महत्वपूर्ण है - जब तक आपको अपने प्रोजेक्ट में एक रत्न जोड़ने का पछतावा होता है, तब तक वापस बदलना दर्दनाक होता है।
आंकड़े
जब मुझे किसी समस्या का समाधान करने के लिए पुस्तकालय की आवश्यकता होती है, तो मैं रूबी टूलबॉक्स से शुरू करता हूं। रूबी टूलबॉक्स एक श्रेणी में सभी रत्नों की सूची प्राप्त करने का एक शानदार तरीका है (जैसे "सदस्यता प्रबंधन"), साथ ही:
-
कितने लोग इसका उपयोग करते हैं?
लोकप्रिय रत्न आमतौर पर किसी कारण से अधिक लोकप्रिय होते हैं। और अगर इंटरनेट पर हर कोई एक ही रत्न का उपयोग कर रहा है तो सहायता प्राप्त करना बहुत आसान हो जाएगा।
-
इसे हाल ही में/कितनी बार अपडेट किया गया है?
क्या मणि को लगातार अपडेट मिलता है, या यह है कि रेल 3.2 संगतता अपग्रेड अभी भी पुल अनुरोध कतार में बैठा है? अगर पिछली रिलीज़ सालों पहले थी, तो हो सकता है कि आप इसे छोड़ना चाहें - वैसे भी यह शायद आपके ऐप के साथ संगत नहीं होगा।
रूबी टूलबॉक्स पर मिलने वाले रत्नों के साथ, उन पहले दो मानदंडों द्वारा फ़िल्टर किए गए, आपके पास उन रत्नों की एक सूची होनी चाहिए जिन पर आप सक्रिय रूप से विचार कर रहे हैं। रूबी टूलबॉक्स आपको स्रोत, दस्तावेज़ीकरण, वेबसाइट और बग ट्रैकर के लिंक भी देता है, जिसकी आपको आगे आवश्यकता होगी।
कोड और दस्तावेज़ीकरण
-
क्या रत्न अच्छी तरह से प्रलेखित है?
वेबसाइट देखें, अगर उसमें एक है। क्या दस्तावेज़ीकरण अच्छा है? क्या इसमें आरडीओसी है? जब आपको उनकी आवश्यकता हो, तो क्या आप उन उत्तरों को ढूंढ पाएंगे जिनकी आपको आवश्यकता है?
-
क्या इसका अच्छी तरह से परीक्षण किया गया है?
परीक्षणों पर एक नज़र डालें। क्या यह भी है एक
test/
याspec/
निर्देशिका? क्या इसकाtest_truth
. के अलावा कोई परीक्षण है? ? क्या लेखक को पता चलेगा कि क्या वे प्रतिगमन का कारण बनते हैं? -
समस्याओं को देखें और अनुरोध प्राप्त करें
क्या कीड़े जल्दी ठीक हो जाते हैं? क्या बग और पुल अनुरोधों पर चर्चा है, और क्या वे ठीक हो जाते हैं? या क्या वे बस ऐसे ही बैठे रहते हैं?
-
Google, StackOverflow, और reddit पर रत्न का नाम खोजें
लोग इसके बारे में क्या कहते हैं? किन रत्नों की सिफारिश की जाती है, और किन रत्नों को हतोत्साहित किया जाता है?
-
मणि द्वारा प्रदान की गई कुछ कक्षाओं के लिए GitHub खोजें
वास्तविक दुनिया के ऐप्स में उनका उपयोग कैसे किया जाता है? क्या वे उपयोग में आसान लगते हैं? या क्या अन्य डेवलपर्स को मणि में समस्याओं को हल करना है?
इस बिंदु पर आपको अपनी पसंद को कुछ शेष उम्मीदवारों तक सीमित कर देना चाहिए।
द टची-फीली स्टफ
ये मानदंड थोड़े व्यक्तिपरक हैं, यही वजह है कि आपको अपनी परियोजना . के लिए सही रत्न ढूंढना होगा . लेकिन अगर आप इन पर ध्यान नहीं देते हैं, तो आपको बाद में पछताना पड़ेगा।
-
दस्तावेज़ीकरण में उदाहरणों के आधार पर, क्या पुस्तकालय रूबी-ईश महसूस करता है?
क्या यह रूबी मुहावरों का उपयोग करता है? या क्या आपको ऐसा लगता है कि आप वास्तव में Java या PHP लिख रहे हैं? यह एपीआई रैपर के लिए अविश्वसनीय रूप से अक्सर होता है।
-
क्या यह छोटे भागों से बना है जो एक साथ अच्छी तरह से काम करते हैं?
क्या आप उन वस्तुओं का उपयोग कर सकते हैं जो लेखक ने आपको उन चीजों को बनाने के लिए दी हैं जिनके बारे में लेखक ने कभी सोचा भी नहीं था? क्योंकि आप शायद करना चाहेंगे।
-
क्या आपके प्रोजेक्ट में पहले से मौजूद किसी अन्य रत्न द्वारा पहले से ही रत्न का उपयोग किया जा रहा है?
बोनस, आपने अभी अपने आप को कुछ एकीकरण समय बचाया है, और आप जानते हैं कि आपको संस्करण को लेकर बंडलर के साथ संघर्ष नहीं करना पड़ेगा।
-
क्या रत्न आपके ऐप्लिकेशन के बारे में अनुमान लगाता है? क्या आपका ऐप उन धारणाओं पर फिट बैठता है, और क्या यह हमेशा उन पर फिट बैठता है?
कुछ रत्न, जैसे ActiveResource, उस सर्वर के एपीआई के बारे में धारणा बनाते हैं जिससे वे बात करते हैं। संसाधन नियंत्रक जैसे अन्य, आपके नियंत्रक क्या करेंगे, इसके बारे में धारणाएं बनाते हैं। अनुमान लगाने वाले रत्न आपको बहुत तेज़ और आपके कोड को बहुत आसान बना सकते हैं-जबकि वे धारणाएं सही हैं . यदि वे धारणाएं आपके ऐप के साथ असंगत हो जाती हैं, हालांकि, आप अपने आप को मंकी पैचिंग, डिबगिंग, और अंततः केवल रत्न को बाहर निकालने में व्यतीत करते हुए पाएंगे।
वाह, बस इतना ही।
हां, आपके प्रोजेक्ट के लिए सबसे अच्छा रत्न चुनने के लिए आप कई मापदंड का उपयोग कर सकते हैं। और आपको आमतौर पर उन सभी से नहीं गुजरना पड़ेगा। अधिकांश समय, आप केवल रूबी टूलबॉक्स पर आशा कर सकते हैं और सबसे लोकप्रिय रत्न चुन सकते हैं।
लेकिन कुछ रत्न ऐसे होते हैं जो आपके ऐप के मुख्य भाग बन जाते हैं। HTTP लाइब्रेरी, डेटाबेस लाइब्रेरी, या ऐसी कोई भी चीज़ जो आपके कंट्रोलर को क्लीनर बनाने का वादा करती है। और यह सुनिश्चित करने के लिए अतिरिक्त समय देना उचित है कि इन्हें रत्न स्वच्छ, सुव्यवस्थित, अच्छी तरह से प्रलेखित हैं, और आपके मानसिक मॉडल में फिट होते हैं कि उन्हें चाहिए काम।
मैंने इन सभी मानदंडों को एक Google स्प्रैडशीट में रखा है , इसलिए जब आपको समान प्रतीत होने वाले रत्नों की भारी संख्या में से चुनने की आवश्यकता हो, तो आप आसानी से उनकी तुलना कर सकते हैं। आप इसे यहां ले सकते हैं।