ट्रैक
/
Tcl
Tcl
/
अभ्यास
/
बैंक खाता
बैंक खाता

बैंक खाता

आसान

परिचय

वर्षों तक फॉर्म भरने और इंतज़ार करने के बाद, आपको अपना बैंकिंग लाइसेंस मिल ही गया। इसका मतलब है कि अब आप आधिकारिक रूप से अपना बैंक खोल सकते हैं, वाह!

आपकी पहली प्राथमिकता आईटी सिस्टम को काम करने लायक बनाना है। एक दिन की मेहनत के बाद, आप अब खाते खोल और बंद कर सकते हैं, और निकासी तथा जमा भी संभाल सकते हैं।

चूँकि आप टेस्ट लिखने की मेहनत नहीं करना चाहते थे, आप कुछ दोस्तों को सिस्टम परखने में मदद के लिए बुलाते हैं। लेकिन सिर्फ पाँच मिनट बाद, आपके एक दोस्त का दावा है कि उसका पैसा गायब हो गया है! हालाँकि आपको पूरा भरोसा है कि आपके कोड में कोई बग नहीं है, फिर भी आप जाँच करने के लिए लॉग देखने लगते हैं।

आह, हाँ, जैसा आपको संदेह था, गलती आपके दोस्त की ही है! उसने अपने टेस्ट क्रेडेंशियल किसी और दोस्त के साथ साझा किए, और दोनों ने मिलकर एक ही खाते से समानांतर में जमा और निकासी करने की चाल चली। ऐसा भला कौन करेगा?

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

निर्देश

आपको ऐसे बैंक खाते बनाने हैं जिन्हें खोला और बंद किया जा सके, और जिनमें पैसा जमा किया जा सके तथा निकाला जा सके।

बैंक खातों तक कई अलग-अलग तरीकों से पहुँचा जा सकता है (इंटरनेट, मोबाइल फोन, ऑटोमैटिक चार्ज), इसलिए आपके बैंक सॉफ्टवेयर को यह सुविधा देनी चाहिए कि एक ही समय में कई थ्रेड या प्रोसेस (यह शब्द आपकी प्रोग्रामिंग भाषा पर निर्भर करता है) खातों तक सुरक्षित रूप से पहुँच सकें। उदाहरण के लिए, एक साथ बहुत सारी जमा और निकासी हो सकती हैं; आपको यह सुनिश्चित करना है कि खाते का बैलेंस पढ़ने और नया बैलेंस सेट करने के बीच कोई रेस कंडीशन न हो।

खाता बंद करना भी संभव होना चाहिए। बंद खाते पर की जाने वाली हर कार्रवाई विफल होनी चाहिए।

यह अभ्यास थ्रेड से परिचय कराता है, ताकि जाँचा जा सके कि आपका बैंक खाता एक साथ होने वाली क्रियाओं के लिए कितना मज़बूत है। Tcl थ्रेड के लिए कुछ पढ़ने की सामग्री:

  • Tcl Threading Model
  • Threads Done Right… with Tcl
  • Multi-Threaded Tcl Scripts, जो Practical Programming in Tcl and Tk, 4th Ed. का एक अध्याय है, copyright 2003 © Brent Welch, Ken Jones http://www.beedub.com/book/
    • ध्यान दें, इस अध्याय में लिखा है कि "Tcl के अधिकांश बाइनरी डिस्ट्रिब्यूशन थ्रेड के बिना बनाए जाते हैं"। अब ऐसा नहीं है: अब Tcl डिस्ट्रिब्यूशन थ्रेड समर्थन के साथ बनाए जाते हैं (देखें TIP 364)
  • Tcl के डॉक्यूमेंटेशन से Thread Package Commands।

इंस्टॉलेशन

कुछ Tcl डिस्ट्रिब्यूशन में Tcl का Thread पैकेज डिफ़ॉल्ट रूप से शामिल नहीं होता: उसे अलग से इंस्टॉल करना पड़ सकता है। इसे ऐसे जाँचिए

$ echo 'package require Thread' | tclsh

अगर उससे कोई आउटपुट नहीं आता, तो Thread पैकेज पहले से इंस्टॉल है।

ज़रूरत पड़ने पर apt install tcl-thread (या dnf install tcl-thread) चलाइए।

GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
Tcl Exercism

बैंक खाता शुरू करने के लिए तैयार हैं?

Exercism पर साइन अप कीजिए और Tcl को 135 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।