पुस्तकालय को डिज़ाइन करते समय आपको बहुत सारे बिंदुओं को ध्यान में रखना चाहिए। जैसा कि आप शायद करेंगे, अपने काम को दूसरों के साथ साझा करना समाप्त करेंगे, लगातार डिजाइन पैटर्न का पालन करना बेहद महत्वपूर्ण है। ध्यान रखें कि अन्य उपयोगकर्ता बेहद अलग-अलग कौशल स्तरों के होंगे, इसलिए लाइब्रेरी का उपयोग करने के लिए एक आसान डिज़ाइन करें, अधिकतम संभव सीमा तक।
बेसिक टिप्स
पिन मैप
एक बुनियादी पिन मानचित्र प्रदान करें जो आपकी लाइब्रेरी उम्मीद कर रही है। पिन मैपिंग को स्थिर न रखें बल्कि उपयोगकर्ता को आसानी से बदलाव करने दें।
वर्किंग लाइब्रेरी
पहली चीज़ जो आपको यह सुनिश्चित करने की कोशिश करनी चाहिए कि आपकी लाइब्रेरी काम कर रही है। यदि ऐसा नहीं है, तो स्पष्ट रूप से बताएं। आप टूटे हुए सॉफ्टवेयर के साथ काम करने की कोशिश में अपना समय बर्बाद नहीं करना चाहेंगे, इसलिए दूसरों को भी ऐसा न करने दें।
बेसिक रीडमी
बहुत स्पष्ट रूप से बताएं कि कौन से बोर्ड (लाइब्रेरी) को लाइब्रेरी के लिए डिज़ाइन किया गया था, जिस पर यह परीक्षण किया गया था, और यह काम करने के लिए किस बोर्ड (एस) से अपेक्षित है। यहां उल्लिखित हर बोर्ड की पीढ़ी (संस्करण) निर्दिष्ट करें।
इंटरफेस
अगली बात यह है कि आपको स्पष्ट रूप से परिभाषित इंटरफेस होना चाहिए। जटिल इंटरफेस के साथ एक कार्यशील पुस्तकालय निराशा होती है। इससे आपको बाद में स्वयं लाइब्रेरी का उपयोग करने में मदद मिलेगी, और अन्य उपयोगकर्ताओं के लिए चीजें आसान हो जाएंगी। इसे ध्यान में रखने के लिए सबसे महत्वपूर्ण पहलुओं में से एक होना चाहिए।
चाहे आप एक टॉप-डाउन या एक बॉटम-अप दृष्टिकोण का पालन करते हैं, आपके दिमाग में इंटरफेस हमेशा स्पष्ट होना चाहिए। नीचे-अप दृष्टिकोण में, यह कठिन हो सकता है और इसे नजरअंदाज करना चाहिए, लेकिन इसे नजरअंदाज नहीं किया जाना चाहिए। अन्यथा, आप एक अत्यधिक जटिल पुस्तकालय के साथ समाप्त हो जाएंगे जो उपयोग करने योग्य नहीं हो सकता है।
विशेष कार्य
यदि आपके पास कुछ फ़ंक्शन हैं जो कुछ विशेष बोर्ड विशेषताओं का उपयोग करते हैं, तो सुनिश्चित करें कि ये फ़ंक्शन बाहर खड़े हैं, रीडमी में उल्लेख करें और टिप्पणियों में भी।
व्यस्त प्रतीक्षा
ऐसे परिदृश्य हो सकते हैं जहां आपको व्यस्त प्रतीक्षा का उपयोग करना पड़ सकता है। इस तरह के कार्य, प्रोग्राम लॉजिक के आधार पर, सामान्य नियंत्रण प्रवाह को रोक सकते हैं और इस प्रकार एक महत्वपूर्ण कार्य के बीच में परेशानी पैदा कर सकते हैं। यदि संभव हो तो इंटरप्ट या अन्य एल्गोरिदम का उपयोग करने का प्रयास करें। यदि नहीं, तो स्पष्ट रूप से ऐसे किसी भी कार्य का उल्लेख करें।
टिप्पणियाँ
अपने द्वारा किए जाने वाले हर छोटे और बड़े बदलाव के बारे में टिप्पणी करना सुनिश्चित करें। सभी के लिए महत्वपूर्ण कार्यों और छोटे लोगों के लिए अच्छी लंबी टिप्पणियाँ लिखें। स्पष्ट रूप से अपने इंटरफ़ेस, प्रत्येक तर्क, यह क्या करता है और यह क्या रिटर्न का वर्णन करता है। यह बहुत अतिरिक्त काम है, लेकिन यह आपके और अन्य लोगों के लिए काफी मददगार होगा। यदि आपके पास कोई कार्य है जो विभिन्न बोर्ड (नों) में काम नहीं कर सकता है, तो इसका उल्लेख यहां करें। यदि ये मध्यवर्ती कार्य अन्य कार्यों द्वारा उपयोग किए जा रहे हैं और आवश्यक हो सकते हैं, तो रीडमी में उल्लेख करें।
संगति
सुनिश्चित करें कि सब कुछ, यहां तक कि टिप्पणियाँ, फ़ाइलों .h
और .cpp
फ़ाइलों के अनुरूप हैं ।
केवल एक फ़ाइल के भीतर संबंधित कार्यों को रखें। कुछ छोटे, लेकिन तार्किक रूप से सुसंगत होने के कारण, मॉड्यूल इसमें सब कुछ के साथ एक बड़ी फ़ाइल से बेहतर है।
उन्नत युक्तियाँ
विस्तृत रीडमी
लाइब्रेरी, उसकी क्षमताओं, किसी भी समस्या या कीड़े, और बुनियादी उपयोगिता का वर्णन करते हुए एक स्पष्ट रीडमी फ़ाइल लिखें। ऊपर वर्णित प्रत्येक इंटरफ़ेस को परिभाषित करने और समझाने के लिए एक अलग फ़ाइल का उपयोग करें।
निर्देशिका संरचना
एक बार लाइब्रेरी बड़ी हो जाने के बाद इसे निर्देशिकाओं में विभाजित किया जा सकता है। आर्डिनो-आइड का उपयोग करते समय यह आसानी से संभव नहीं है । लेकिन, यदि आप इस तक पहुँच गए हैं, तो आप शायद एक उन्नत Arduino उपयोगकर्ता हैं और अधिक शक्तिशाली विकास उपकरण का उपयोग करते हैं। यदि नहीं, तो यह ब्रह्मांड आपको ऐसा करने के लिए कह रहा है।
लाइसेंसिंग
लाइसेंस जोड़ना सुनिश्चित करें।
संस्करण नियंत्रण
GCS या SVN जैसे VCS टूल का उपयोग करें। इससे किए गए परिवर्तनों को देखना बहुत आसान हो जाएगा, पुराने संस्करणों में वापस आना, कोड के कारण त्रुटि, और यहां तक कि दूसरों के साथ सहयोग करना।