हर ट्रैक पर पहला अभ्यास एक बहुत ही सरल "Hello, World!" अभ्यास होता है।
इस अभ्यास का उद्देश्य यह जल्दी से पक्का करना है कि सब कुछ ठीक से जुड़ा हुआ है। इससे पुष्टि होती है कि उपयोगकर्ता ने प्रोग्रामिंग एनवायरनमेंट सही तरीके से इंस्टॉल किया है, उसे टेस्ट चलाना आता है, और वह उन्हें पास करा पाता है। इसके अलावा, Exercism कमांड-लाइन क्लाइंट (CLI) के मामले में यह यह भी सुनिश्चित करता है कि उपयोगकर्ता ने CLI ठीक से इंस्टॉल और कॉन्फ़िगर किया है, और साइट अभ्यास के लिए सही फाइलें भेजती है, बिना कोई अनावश्यक आर्टिफैक्ट भेजे। अंत में, यह सुनिश्चित करता है कि उपयोगकर्ता इस चक्र से परिचित है: CLI की मदद से अभ्यास डाउनलोड करना, अपने लोकल डेवलपमेंट एनवायरनमेंट में कोई समस्या हल करना, और अपना हल वापस साइट पर जमा करना।
दूसरे शब्दों में, अभी यह भाषा के बारे में कुछ सीखने की बात नहीं है। हमारा लक्ष्य कुछ बहुत ही आसान है।
ट्रैक रिपॉज़िटरी को ठीक से सेट अप करने में यह शायद सबसे मुश्किल हिस्सा भी होगा, क्योंकि एक अभ्यास इम्प्लीमेंट करने में कई अलग-अलग चीज़ें एक साथ संभालनी पड़ती हैं।
"Hello, World!" अभ्यास के लिए कुछ खास नियम हैं:
prerequisites नहीं होताpractices नहीं होता"Hello, World!" अभ्यास (और दरअसल, Exercism के सभी अभ्यासों) के लिए कुछ खास फाइलें ज़रूरी होती हैं:
"Hello, World!" अभ्यास बनाने से पहले आपको ट्रैक के हिसाब से फाइलों के नाम और फाइल पाथ तय करने होंगे (टेस्ट सूट, स्टब इम्प्लीमेंटेशन, उदाहरण इम्प्लीमेंटेशन और कोई भी अतिरिक्त फाइलें)।
सामान्य नियम यह है कि ऐसे नाम चुनें जो उस भाषा के लिए स्वाभाविक हों।
जहाँ कोई खास पसंद न हो, वहाँ कम गहरी डायरेक्टरी संरचना चुनें।
उदाहरण इम्प्लीमेंटेशन को CI स्क्रिप्ट पहचान सके, इसलिए एक सामान्य बेसनेम चुनना बेहतर है जिसे हर अभ्यास इस्तेमाल कर सके, जैसे example, sample, या reference-solution।
ट्रैक के हिसाब से फाइल पाथ चुन लेने के बाद, आपको उन्हें रूट config.json फाइल की files की में कॉन्फ़िगर करना चाहिए।
files की सभी अभ्यासों के लिए टेम्पलेट का काम करती है, जिससे कोई भी टूलिंग (जिनमें से कुछ हम थोड़ी देर में इस्तेमाल करेंगे) जान सके कि फाइलें कहाँ देखनी हैं।
अभ्यास के स्लग (hello-world इस मामले में) को आसानी से कॉन्फ़िगर करने के लिए आप अलग-अलग प्लेसहोल्डर इस्तेमाल कर सकते हैं।
अगर आपका ट्रैक अपनी फाइलों के लिए PascalCase इस्तेमाल करता है, तो files की कुछ ऐसी दिख सकती है:
"files": {
"solution": [
"%{pascal_slug}.cs"
],
"test": [
"%{pascal_slug}Tests.cs"
],
"example": [
".meta/Example.cs"
]
}
उदाहरण फाइल या फाइलों को .meta डायरेक्टरी के अंदर रखा जाना चाहिए।
ज़्यादा जानकारी के लिए files की का डॉक्युमेंटेशन देखिए।
फाइल पाथ टेम्पलेट तय कर लेने के बाद, आप ट्रैक की रूट डायरेक्टरी से ये कमांड चलाकर "Hello, World!" अभ्यास की फाइलें जल्दी से बना सकते हैं:
bin/fetch-configlet
bin/configlet create --practice-exercise hello-world
वेबसाइट पर आपको अभ्यास के लेखक के रूप में दिखाने के लिए ये चरण अपनाइए:
अभ्यास की .meta/config.json फाइल में:
authors की में जोड़िएइसके लिए आपको अपना Exercism अकाउंट GitHub से लिंक करना होगा। यह आप वेबसाइट पर सेटिंग्स पेज के इंटिग्रेशन सेक्शन में कर सकते हैं।
अभ्यास के लेखकों को प्रतिष्ठा भी मिलती है
नए ट्रैक रिपॉज़िटरी नए अभ्यास जोड़ने के लिए bin/add-practice-exercise स्क्रिप्ट (सोर्स) इस्तेमाल कर सकती हैं:
bin/add-exercise -a <github_username> two-fer
अगर आप ऐसी ट्रैक रिपॉज़िटरी पर काम कर रहे हैं जिसमें यह फाइल नहीं है, तो ऊपर दिए सोर्स लिंक की मदद से इन स्क्रिप्टों को अपनी रिपॉज़िटरी में कॉपी कर सकते हैं।
स्कैफोल्ड की गई फाइलें बन जाने के बाद आपको ये करना होगा:
अभ्यास जोड़ने का एक अहम हिस्सा टेस्ट जोड़ना है। मोटे तौर पर, ऊपर बताए अभ्यासों में से किसी को इम्प्लीमेंट करते समय दो विकल्प होते हैं:
canonical-data.json के टेस्ट केस इस्तेमाल करके टेस्ट शुरू से इम्प्लीमेंट कीजिएhttps://exercism.org/exercises/hello-world पर जाकर देखिए कि किन ट्रैकों ने कोई खास अभ्यास इम्प्लीमेंट किया है)।"Hello, World!" अभ्यास के लिए सिर्फ एक टेस्ट केस होगा, इसलिए दोनों में से कोई भी विकल्प ठीक रहेगा।
उदाहरण इम्प्लीमेंटेशन फाइल में टेस्ट पास करने के लिए ज़रूरी कोड होना चाहिए।
स्टब फाइल में टेस्ट के लिए लगभग काम करने वाला हल होना चाहिए, लेकिन "Hello, World!" टेक्स्ट की जगह "Goodbye, Mars!" होना चाहिए। सुझाव: उदाहरण हल को कॉपी-पेस्ट करके उसमें थोड़ा बदलाव कर लीजिए।
अभ्यास पूरा कर लेने के बाद, कृपया अपना GitHub यूज़रनेम अभ्यास की .meta/config.json फाइल की "authors" ऐरे में जोड़िए।
इससे यह पक्का होगा कि अभ्यास बनाने का श्रेय आपको सही तरीके से मिले।
यह जाँचने के लिए कि अभ्यास सही तरीके से सेट अप हुआ है, आप configlet टूल की बिल्ट-इन लिंटिंग सुविधा इस्तेमाल कर सकते हैं।
पहला कदम है configlet टूल लाना, जिसके लिए हमने दो स्क्रिप्ट बनाई हैं:
bin/fetch-configlet: *nix या macOS इस्तेमाल करते समय इसे चलाइएbin/fetch-configlet.ps1: Windows इस्तेमाल करते समय इसे चलाइएट्रैक की रेपो की रूट डायरेक्टरी से इनमें से कोई एक स्क्रिप्ट चलाने पर bin/configlet या bin/configlet.exe बाइनरी डाउनलोड हो जाएगी।
इसके बाद आप bin/configlet lint चलाकर अभ्यास के सही होने की जाँच कर सकते हैं।
ऐसा हो सकता है कि configlet यह एरर दिखाए:
The `tags` array is empty:
/path/to/track/config.json
यह एरर लॉन्च की तैयारी चरण में ठीक कर दिया जाएगा, तो आप या तो:
configlet वर्कफ्लो हर बार जब main पर या किसी पुल रिक्वेस्ट पर कुछ पुश किया जाता है, तो अपने आप configlet lint चलाता है।