గేట్ 198 సార్లు పనిచేసింది. నేను దానిని "పనిచేస్తోంది" అని పిలిచాను.
చెడు కోడ్ను అడ్డుకోవడానికి నేను ఒక గేట్ను నిర్మించాను. అది 198 కోడ్ ముక్కలను అడ్డుకుంది. దీనివల్ల గేట్ బాగా పనిచేస్తుందని నేను అనుకున్నాను. ఎక్కువ బ్లాక్ కౌంట్ చూసి నేను విజయం సాధించినట్లు భావించాను.
ఆ తర్వాత నేను అసలు కేసులను పరిశీలించాను. ఆ బ్లాక్లలో చాలా వరకు తప్పులేనని నాకు అర్థమైంది. గేట్ మంచి కోడ్ను కూడా తిరస్కరిస్తోంది. నిర్మాణం (structure) అసాధారణంగా ఉన్నందున, అన్ని అవసరాలను (requirements) సంతృప్తిపరిచిన పనిని కూడా అది తిరస్కరించింది.
నేను ఒక సాధారణ తప్పు చేశాను. నేను పనితీరును (activity) మరియు ఖచ్చితత్వాన్ని (correctness) తప్పుగా అర్థం చేసుకున్నాను.
ఒక గేట్ ఒకే సమయంలో చాలా చురుగ్గా ఉంటూనే, చాలా తప్పుగా ఉండవచ్చు. ఎక్కువ బ్లాక్ కౌంట్ విలువను నిరూపించదు. అది కేవలం గేట్ పనిచేస్తుందని మాత్రమే నిరూపిస్తుంది.
ఒక గేట్ నిజంగా తన పనిని చేస్తోందో లేదో తెలుసుకోవడం నేను ఎలా నేర్చుకున్నానంటే:
- బ్లాక్లకు గల కారణాలను చూడండి. అవి నిజమైన లోపాలను (defects) గుర్తిస్తున్నాయా? లేదా కేవలం పైపైన కనిపించే నమూనాల (surface patterns) వల్ల ఆగిపోతున్నాయా?
- రీట్రైలను (retries) గమనించండి. రీట్రై చేయడం వల్ల అసలు సమస్య పరిష్కారమవుతుందా? లేదా గేట్ను సంతృప్తి పరచడానికి కోడ్ కేవలం తన రూపాన్ని మార్చుకుంటుందా? కోడ్ మెరుగుపడకుండా కేవలం రూపాన్ని మాత్రమే మార్చుకుంటే, ఆ గేట్ ఒక సమస్యే.
- తుది ఫలితాన్ని (final convergence) తనిఖీ చేయండి. ఆ పని చివరికి తన స్వంత అర్హతలతో పాస్ అవుతుందా? పనిని పాస్ చేయడానికి మీరు గేట్ను బలహీనపరచాల్సి వస్తే, ఆ గేట్ తప్పుగా ఉన్నట్టే.
బాగా పనిచేసే గేట్ వ్యవస్థను మెరుగుపరుస్తుంది. చెడు గేట్ వ్యవస్థను గేట్కు అనుగుణంగా మార్చడానికి ప్రయత్నిస్తుంది. దీనివల్ల మీకు నిజంగా మంచి కోడ్ రావడం కంటే, వ్యాలిడేటర్ను (validator) సంతృప్తి పరచడానికి రూపొందించబడిన కోడ్ మాత్రమే మిగులుతుంది.
మొత్తం కౌంట్ను చూడటం ఆపండి. మొత్తం కౌంట్ మీకు పనితీరును (activity) చూపిస్తుంది. శాంపిల్ (sample) మీకు సత్యాన్ని చూపిస్తుంది.
మీ గేట్లు, లించర్లు (linters) లేదా ఫిల్టర్లు దేనిని బ్లాక్ చేస్తున్నాయో వాటి నుండి ఒక శాంపిల్ను తనిఖీ (audit) చేయండి. మీరు మీ గార్డ్లను కేవలం చెడు ఇన్పుట్తో మాత్రమే పరీక్షిస్తే, మీరు కేవలం మీకు నచ్చిన సమాధానాలు వచ్చేలా ప్రశ్నలు అడుగుతున్నట్లే. మంచి మరియు అసాధారణమైన ఇన్పుట్లను అవి అనుమతిస్తున్నాయో లేదో కూడా మీరు పరీక్షించాలి.
మీరు మీ బ్లాక్ కౌంట్లను తనిఖీ చేస్తారా? ఒక తిరస్కరణ సరైనదేనా కాదా అని మీరు ఎలా నిర్ణయిస్తారు?
Source: https://dev.to/josephyeo/the-gate-fired-198-times-i-called-it-working-45fk
Optional learning community: https://t.me/GyaanSetuAi