यह दस्तावेज़ समझाता है कि नया प्रैक्टिस अभ्यास कैसे जोड़ा जाए।
यह पता लगाने का सबसे आसान तरीका कि कौन-कौन से प्रैक्टिस अभ्यास अभी तक नहीं बनाए गए हैं, यह है कि आप ट्रैक के बिल्ड पेज (जैसे https://exercism.org/tracks/csharp/build) पर जाइए और "प्रैक्टिस अभ्यास" वाला हिस्सा देखिए।
बिल्ड पेज का डेटा दिन में एक बार अपडेट होता है।
ट्रैक की रूट डायरेक्टरी से bin/add-practice-exercise स्क्रिप्ट (स्रोत) चलाकर आप जल्दी से नए प्रैक्टिस अभ्यास का स्कैफोल्ड बना सकते हैं:
bin/add-practice-exercise <exercise-slug>
चाहें तो आप अभ्यास की कठिनाई (-d से) और/या लेखक का GitHub यूज़रनेम (-a से) भी बता सकते हैं:
bin/add-practice-exercise -d 3 -a foobar <exercise-slug>
अगर आप ऐसे ट्रैक रेपो पर काम कर रहे हैं जिसमें यह फाइल नहीं है, तो ऊपर दिए गए स्रोत लिंक की मदद से इन्हें अपने रेपो में कॉपी कर लीजिए।
स्कैफोल्ड वाली फाइलें बन जाने के बाद आपको ये काम करने होंगे:
.meta/config.json फाइल में:
authors में जोड़नाconfig.json फाइल में:
practices में कॉन्सेप्ट जोड़ना (यह तभी ज़रूरी है जब ट्रैक में कॉन्सेप्ट अभ्यास हों)prerequisites में कॉन्सेप्ट जोड़ना (यह तभी ज़रूरी है जब ट्रैक में कॉन्सेप्ट अभ्यास हों)अभ्यास जोड़ने का एक मुख्य हिस्सा टेस्ट जोड़ना है। प्रैक्टिस अभ्यास के लिए टेस्ट जोड़ते समय मोटे तौर पर दो तरीके हैं:
canonical-data.json फाइल मिलती है, उसके टेस्ट केस इस्तेमाल करके टेस्ट शुरू से लिखना।https://exercism.org/exercises/<slug> पर जाइए)।दूसरा तरीका खास तौर पर अच्छा लग सकता है, क्योंकि इससे आपको जल्दी नतीजे मिल जाते हैं। लेकिन ध्यान रखिए कि इम्प्लीमेंटेशन को अपने ट्रैक के हिसाब से बदलना चाहिए। उदाहरण के लिए, कुछ ट्रैक क्लास का इस्तेमाल नहीं करते और सिर्फ फंक्शन के साथ काम करते हैं। लेकिन अगर आपका ट्रैक आम तौर पर ऑब्जेक्ट के साथ काम करता है, तो इम्प्लीमेंटेशन को अपने ट्रैक के मुताबिक ढाल लीजिए।
कुछ ट्रैक अभ्यास की टेस्ट फाइल अपने आप (दोबारा) बनाने के लिए टेस्ट जनरेटर का इस्तेमाल करते हैं। ट्रैक के दस्तावेज़ में देख लीजिए कि कोई टेस्ट जनरेटर है या नहीं, और अगर है तो उसे कैसे इस्तेमाल किया जाए।
यह पक्का करने के लिए कि टेस्ट पास करने वाला कोड लिखना संभव है, एक उदाहरण इम्प्लीमेंटेशन जोड़ना होता है।
कोड का आइडियोमैटिक होना ज़रूरी नहीं है, ज़रूरी बस इतना है कि वह टेस्ट पास करे।
ट्रैक की रूट डायरेक्टरी से bin/verify-exercises स्क्रिप्ट (स्रोत) चलाकर आप जाँच सकते हैं कि उदाहरण इम्प्लीमेंटेशन सारे टेस्ट पास करता है:
bin/verify-exercises <exercise-slug>
आउटपुट की मदद से जाँच लीजिए कि उदाहरण इम्प्लीमेंटेशन सारे टेस्ट पास करता है।
अगर आप ऐसे ट्रैक रेपो पर काम कर रहे हैं जिसमें यह फाइल नहीं है, तो ऊपर दिए गए स्रोत लिंक की मदद से इन्हें अपने रेपो में कॉपी कर लीजिए।
भीतर से देखें तो bin/verify-exercises स्क्रिप्ट कई काम करती है:
स्टब इम्प्लीमेंटेशन फाइलें छात्रों के लिए शुरुआत का बिंदु होती हैं।
हमारा सुझाव है कि स्टब फाइलों में कोड उतना ही कम रहे कि:
व्यवहार में इसका मतलब है कि उन फंक्शन और मेथड को बनाया जाए जिन्हें टेस्ट सूट जाँचता है। यह कोड ट्रैक जिस तरह चाहें लिख सकते हैं, बस यह पक्का कर लें कि शुरू में स्टब कोड सारे टेस्ट फेल करे।
Python:
def two_fer(name):
pass
Kotlin:
fun twofer(name: String): String {
TODO("Implement the function to complete the task")
}
अंतिम कदम है लिंटर चलाकर यह जाँचना कि ट्रैक की (कॉन्फ़िगरेशन) फाइलें दोनों सिंटैक्स और अर्थ के हिसाब से सही ढंग से बनी हैं या नहीं।
सबसे पहले यह पक्का कीजिए कि आपके पास configlet का सबसे नया वर्ज़न है। इसके लिए यह चलाइए:
bin/fetch-configlet
इसके बाद लिंटर चलाइए:
bin/configlet lint
आउटपुट देखकर जाँच लीजिए कि सब ठीक है।
सब ठीक हो जाने के बाद आप ट्रैक की रेपो में पुल रिक्वेस्ट सबमिट कर सकते हैं।
सबमिट करने से पहले योगदानकर्ताओं की पुल रिक्वेस्ट गाइड और पुल रिक्वेस्ट गाइड पढ़ लीजिए।
ध्यान रखिए कि PR के विवरण में यह ज़रूर लिखा हो कि कौन-सा अभ्यास जोड़ा जा रहा है।