अब मैं लगभग छह वर्षों से एक पेशेवर डेवलपर हूं। उन छह वर्षों के दौरान मैंने कभी किसी कंपनी या किसी ऐसे प्रोजेक्ट पर काम नहीं किया जो किसी रूप में तारीख और समय के मुद्दों से जूझता नहीं था।





आपके द्वारा काम करने वाले लगभग हर एप्लिकेशन को किसी तरह से समय के उपयोग की आवश्यकता होती है, जिसका अर्थ है कि कुछ बिंदु पर आपको तारीख या समय को इकट्ठा करना, स्टोर करना, पुनर्प्राप्त करना और प्रदर्शित करना है। तारीखों या समय से निपटने के लिए कोई चांदी की गोली नहीं है और आप उस अंतर्निहित जटिलता से बच नहीं सकते हैं जो समय की हमारी अवधारणा के साथ आती है, लेकिन ऐसे चरण हैं जो आप इसे एक दर्द से कम कर सकते हैं।



जिन वर्षों में मैं विभिन्न प्रोग्रामिंग भाषाओं में समय के साथ काम कर रहा हूं, मैंने पाया है कि निम्नलिखित ज्ञान एक लंबा रास्ता तय करता है।



सही डेटा प्रारूप का चयन

समय और तारीखों के साथ काम करते समय पहला कदम अपने डेटा के लिए एक प्रतिनिधित्व चुनना है। जबकि अलग-अलग प्रारूप कम या ज्यादा समान हो सकते हैं, आपके द्वारा चुने गए प्रारूप का आपके कोड को लिखने और डिबग करने पर बड़ा प्रभाव पड़ेगा।

एक संख्यात्मक टाइमस्टैम्प का उपयोग करना जब आपको एक तारीख की आवश्यकता होगी तो इसका मतलब होगा टाइमस्टैम्प को पार्स करना और उस तारीख को पुनः प्राप्त करना, जो समय क्षेत्र के आधार पर सीधा हो सकता है या नहीं।


11 नंबर क्या है

समय की अवधि का प्रतिनिधित्व करने के लिए एक कस्टम स्ट्रिंग का उपयोग करना स्टोर और हेरफेर करना आसान लगता है, लेकिन इसे क्वेरी करना मुश्किल है। इसके अतिरिक्त, किसी भी प्रकार के प्रतिनिधित्व का उपयोग करना जो मानव आंख द्वारा तुरंत पहचानने योग्य नहीं है, आपके कोड को डीबग करना अधिक कठिन बनाने वाला है।



दिनांक या समय के लिए एक प्रारूप चुनते समय, मैं निम्नलिखित नियमों का पालन करता हूं:



  1. कभी भी संख्यात्मक टाइमस्टैम्प का उपयोग न करें। वे विभिन्न प्रोग्रामिंग भाषाओं के बीच मानक पुस्तकालयों द्वारा प्राप्त करने के लिए अक्सर सबसे आसान हैं, लेकिन वे मानव पठनीय नहीं हैं और उनमें हेरफेर करने का प्रलोभन बहुत मजबूत है।
  2. के द्वारा पालन आईएसओ 8601 , एक मानक जो दिनांक और समय-संबंधित डेटा के लिए एक प्रारूप को परिभाषित करता है। किसी भी भाषा के लिए एक पुस्तकालय ढूंढना तुच्छ है जो आईएसओ 8601 की विविधताओं को संभाल सकता है।
  3. आईएसओ 8601 एक मानक है, लेकिन इसमें कई विविधताएं हैं। आपको हमेशा आईएसओ 8601 के सबसे अधिक मानव-पठनीय संस्करण को चुनना चाहिए। इसके लिए अतिरिक्त प्रयास की आवश्यकता नहीं है, लेकिन डिबगिंग को आसान बनाता है।
  4. आपके टाइमस्टैम्प स्ट्रिंग में केवल वही डेटा होना चाहिए जिसकी आपको आवश्यकता है। जब समय के साथ काम करने के लिए आपके स्ट्रिंग में कोई दिनांक शामिल नहीं होनी चाहिए और समय-अज्ञेय वाली तिथि के साथ काम करते समय आपके स्ट्रिंग में समय क्षेत्र नहीं होना चाहिए। अतिरिक्त जानकारी जोड़ना पार्सिंग ऑपरेशन में अस्पष्टता और भविष्य के डेवलपर्स के लिए डेटा के इरादे को जोड़ता है
  5. जब समय ज़ोन का भंडारण करते हैं तो आपकी टाइमस्टैम्प में एक ही टाइम ज़ोन को सामान्य करें। इससे न केवल कंप्यूटर के लिए डेटा को सॉर्ट और प्रोसेस करना आसान हो जाता है, बल्कि यह मानव डेवलपर के लिए भी आसान हो जाता है।

इन नियमों का पालन करने से आपको बहुत अधिक खर्च नहीं करना पड़ेगा, लेकिन जब आपका आवेदन स्थापित हो जाता है, तो वे आपके जीवन को आसान बना देंगे और आप पाएंगे कि आपका समय और तारीखों का उपयोग आपके लिए अपेक्षित नहीं है।

राइट टूल चुनना

हमारे उद्योग में अधिकांश समस्याओं के साथ, समय और तारीख से निपटने के काम के लिए सही उपकरण चुनने के लिए नीचे आता है।



यह आपकी पसंदीदा भाषा के मानक पुस्तकालय में टूल का उपयोग करने के लिए आकर्षक है, लेकिन यह सबसे अच्छा विकल्प नहीं हो सकता है। जबकि कुछ मानक पुस्तकालयों में शानदार तारीख और समय की विशेषताएं (पायथन) हैं, अन्य नीच दयनीय (जावास्क्रिप्ट) हैं। गलत टूल का उपयोग करने से समय के आधार पर सुविधाओं को विकसित करना अधिक कठिन हो जाता है और इससे बग्स के लिए आपके आवेदन में खिसकना आसान हो जाता है।



दिनांक और समय को संभालने के लिए एक अच्छी लाइब्रेरी आपको ऊपर बताए गए 5 नियमों का पालन करने की अनुमति देगी। विशेष रूप से, यह करने में सक्षम होना चाहिए:



  • किसी भी तारीख प्रतिनिधित्व को पार्स करें जिसमें आप शामिल हो सकते हैं (बाहरी अभ्यावेदन सहित)
  • किसी भी तारीख प्रतिनिधित्व के लिए आउटपुट की आवश्यकता हो सकती है (बाहरी प्रतिनिधित्व सहित)
  • उनसे समय की इकाइयों को जोड़कर या घटाकर तिथियों और समयों का हेरफेर करें।
  • दिनांक और समय की तुलना करें।
  • समय क्षेत्र के बीच सही रूप से परिवर्तित करें।

यह महत्वपूर्ण है कि आपकी लाइब्रेरी इन सुविधाओं का समर्थन करती है, अन्यथा कार्यक्षमता को लागू करने का प्रयास करने का प्रलोभन बहुत अधिक होगा। और सिर्फ स्पष्ट होने के लिए, यदि आप स्वयं उस कार्यक्षमता को लागू करने का प्रयास करते हैं, तो आप असफल होंगे।

रेगुलर एक्सप्रेशन के साथ अपने खुद के टाइमस्टैम्प्स को पार्स न करें, एक न्यूमेरिक टाइमस्टैम्प में कुछ सेकंड न जोड़ें क्योंकि यह एक सामान्य संख्या की तरह लगता है और समानता ऑपरेटर के उपयोग से दिनांक और समय की तुलना नहीं करता है। ये लाइब्रेरी मौजूद हैं क्योंकि इन समस्याओं को हल करना मुश्किल है और आपके आवेदन में पहिया को फिर से स्थापित करना बस आपको एक टूटे हुए पहिया के साथ छोड़ने वाला है।

नीचे मैंने पुस्तकालयों के लिए कुछ सुझाव दिए हैं जो इन मानदंडों को फिट करते हैं:

भाषा: हिन्दी पुस्तकालय
अजगर मानक पुस्तकालय
जावास्क्रिप्ट पल तथा पल पल क्षेत्र
जावा 8 और ऊपर मानक पुस्तकालय (java.time)
जावा 7 और नीचे Joda समय
तीव्र स्विफ्टडैट

यदि आपकी भाषा सूचीबद्ध नहीं है (क्योंकि मैं इससे परिचित नहीं हूं) तो बस दिनांक और समय लाइब्रेरी खोजें। संभावना है कि आप एक अच्छा पुस्तकालय पाएंगे जो आपकी ज़रूरत का हर काम करेगा।

समय के बारे में जानना

मेरे द्वारा साझा किया जाने वाला ज्ञान का अंतिम बिट दिनांक और समय के साथ काम करने के लिए विशिष्ट नहीं है, लेकिन समस्याओं से बचने में हमारी सहायता करने के लिए एक सामान्य दर्शन अधिक है और यह तारीख और समय से निपटने के लिए लागू होता है, क्योंकि यह प्रोग्रामिंग में हर दूसरी समस्या करता है। ।

हमेशा अपनी मान्यताओं की जांच करें।

हम ज्ञान के एक बड़े शरीर और मान्यताओं के एक बड़े शरीर के साथ प्रस्तुत हर समस्या से संपर्क करते हैं। तारीखों और समयों को संभालते समय अपनी मान्यताओं की जांच करना पहले से कहीं अधिक महत्वपूर्ण है ताकि यह सुनिश्चित किया जा सके कि वे अभी भी आपके परिदृश्य के लिए हैं।

यह सूची , शीर्षक गलतियाँ प्रोग्रामर के बारे में समय पर विश्वास करते हैं, कई उत्कृष्ट उदाहरण देते हैं जो समय को स्पष्ट करते हैं कि शायद आपने क्या सोचा नहीं है। जब आप किसी ऐसी सुविधा को डिज़ाइन या विकसित कर रहे होते हैं, जो समय-समय पर आपको एक साथी को हथियाने के लिए प्रोत्साहित करती है और इस सूची से गुजरती है, तो यह सुनिश्चित करती है कि आप सूचीबद्ध नुकसानों से बच गए हैं।

समय कीड़े को पकड़ने के लिए और यहां तक ​​कि परीक्षण करने के लिए और भी अधिक कठिन हैं। यदि आप इस सूची को ध्यान में रखते हुए विकसित करते हैं, तो आप सूक्ष्म कीड़े से बचने में सक्षम हो सकते हैं जो आपके ग्राहकों को प्रभावित करेंगे लेकिन हो सकता है कि वे पकड़ न सकें (सबसे खराब किस्म का बग!)।

समय क्षेत्र

समय या तारीखों के बारे में कोई चर्चा समय क्षेत्रों के उल्लेख के बिना पूरी नहीं होगी। ऊपर सूचीबद्ध सामान्य झूठ के साथ खुद को परिचित करने के अलावा, समय क्षेत्र की मूल बातें से भी खुद को परिचित करें।

समय क्षेत्र लगातार समय के साथ काम करते समय एक दर्द बिंदु होगा, भले ही आपको लगता है कि आपने उन्हें 'सभी का पता लगाया' है। समय क्षेत्र के बारे में थोड़ा सा ज्ञान होने से आपको अपनी सोच को केंद्र में रखने में मदद मिलेगी और यह सुनिश्चित करने में मदद मिलेगी कि समय में हेरफेर करने पर आप कोई तर्क त्रुटि नहीं करेंगे।

दुर्भाग्य से प्रोग्रामिंग करते समय बार और तारीखों को संग्रहीत करने और हेरफेर करने की कठिनाई से पूरी तरह से बचने का कोई तरीका नहीं है। लेकिन अगर आप इन चरणों का पालन करते हैं और इस ज्ञान को ध्यान में रखते हुए काम करते हैं, तो आपको कोड लिखने की मात्रा में कटौती करके और खुद को प्रतिमान में रखने के लिए कार्य को आसान बना सकते हैं जिससे मुद्दों की संभावना कम होती है।

अपने दोस्तों के साथ साझा करें: