गेट 198 बार सक्रिय हुआ। मैंने इसे "काम करना" समझा।

मैंने खराब कोड को रोकने के लिए एक गेट बनाया। इसने कोड के 198 टुकड़ों को ब्लॉक किया। मुझे लगा कि इसका मतलब है कि गेट अच्छी तरह काम कर रहा है। मैंने ब्लॉक की उच्च संख्या देखी और खुद को सफल महसूस किया।

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

मैंने एक आम गलती की। मैंने गतिविधि (activity) को शुद्धता (correctness) समझ लिया।

एक गेट एक ही समय में बहुत सक्रिय और बहुत गलत हो सकता है। ब्लॉक की उच्च संख्या मूल्य (value) साबित नहीं करती है। यह केवल यह साबित करती है कि गेट सक्रिय है।

यहाँ बताया गया है कि मैंने यह कैसे सीखा कि क्या कोई गेट वास्तव में अपना काम कर रहा है:

  • ब्लॉक के कारणों को देखें। क्या वे वास्तविक दोषों (defects) को पकड़ते हैं? या वे केवल एक ही तरह के सतही पैटर्न (surface patterns) पर अटक जाते हैं?
  • रिट्राइज़ (retries) पर नज़र रखें। क्या रिट्राइज़ वास्तविक समस्या को ठीक करता है? या कोड केवल गेट को खुश करने के लिए अपना रूप बदल लेता है? यदि कोड बिना सुधार किए केवल अपना रूप बदलता है, तो गेट ही एक समस्या है।
  • अंतिम अभिसरण (final convergence) की जाँच करें। क्या काम अंततः अपने गुणों के आधार पर पास हो जाता है? यदि काम को पास कराने के लिए आपको गेट को कमजोर करना पड़ता है, तो गेट गलत था।

एक गेट जो अच्छी तरह काम करता है, वह सिस्टम को बेहतर बनाता है। एक खराब गेट सिस्टम को केवल गेट के अनुसार ढलने पर मजबूर कर देता है। अंत में आपके पास ऐसा कोड बचता है जो वास्तव में अच्छा होने के बजाय वैलिडेटर (validator) को खुश करने के लिए बनाया गया है।

कुल संख्या (total count) देखना बंद करें। कुल संख्या आपको गतिविधि दिखाती है। सैंपल (sample) आपको सच्चाई दिखाता है।

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

क्या आप अपने ब्लॉक काउंट का ऑडिट करते हैं? आप कैसे तय करते हैं कि कोई रिजेक्शन जायज था या नहीं?

Source: https://dev.to/josephyeo/the-gate-fired-198-times-i-called-it-working-45fk

Optional learning community: https://t.me/GyaanSetuAi