𝗧𝗵𝗲 𝗚𝗮𝘁𝗲 𝗙𝗶𝗿𝗲𝗱 𝟭𝟵𝟴 𝗧𝗶𝗺𝗲𝘀. 𝗜 𝗖𝗮𝗹𝗹𝗲𝗱 𝗜𝘁 "𝗪𝗼𝗿𝗸𝗶𝗻𝗴."
கேட் 198 முறை செயல்பட்டது. நான் அதை "வேலை செய்கிறது" என்று அழைத்தேன்.
தவறான குறியீடுகளைத் (code) தடுக்க நான் ஒரு கேட்டை உருவாக்கினேன். அது 198 குறியீடுகளைத் தடுத்தது. இதன் மூலம் கேட் நன்றாக வேலை செய்கிறது என்று நான் நினைத்தேன். அதிகத் தடுப்பு எண்ணிக்கையைப் பார்த்து நான் வெற்றியடைந்ததாக உணர்ந்தேன்.
பிறகு நான் உண்மையான நிகழ்வுகளைப் பார்த்தேன். அந்தத் தடுப்புகளில் பல தவறுகள் என்பதை உணர்ந்தேன். கேட் நல்ல குறியீடுகளை நிராகரித்துக் கொண்டிருந்தது. அனைத்துத் தேவைகளையும் பூர்த்தி செய்த ஒரு வேலையை, அதன் அமைப்பு வழக்கத்திற்கு மாறாகத் தெரிந்தது என்பதற்காகவே அது நிராகரித்தது.
நான் ஒரு பொதுவான தவறு செய்துவிட்டேன். செயல்பாட்டையும் (activity) சரியான தன்மையையும் (correctness) குழப்பிக்கொண்டேன்.
ஒரு கேட் ஒரே நேரத்தில் மிகச் செயல்பாட்டுடனும், அதே சமயம் மிகத் தவறாகவும் இருக்கலாம். அதிகத் தடுப்பு எண்ணிக்கை அதன் மதிப்பை நிரூபிப்பதில்லை. அது கேட் செயல்படுகிறது என்பதை மட்டுமே நிரூபிக்கிறது.
ஒரு கேட் உண்மையில் தனது வேலையைச் செய்கிறதா என்பதைக் கண்டறிய நான் கற்றுக்கொண்ட விதம் இதோ:
- தடுப்புகளுக்கான காரணங்களைப் பாருங்கள். அவை உண்மையான குறைபாடுகளைக் கண்டறிகின்றனவா? அல்லது வெறும் மேலோட்டமான வடிவங்களை (surface patterns) வைத்தே தடுப்பதா?
- மீண்டும் முயற்சிப்பவற்றைக் (retries) கவனியுங்கள். ஒரு மறுமுயற்சி உண்மையான சிக்கலைத் தீர்க்கிறதா? அல்லது கேட்டைத் திருப்திப்படுத்துவதற்காக குறியீடு தனது வடிவத்தை மட்டும் மாற்றிக்கொள்கிறதா? குறியீடு முன்னேற்றம் அடையாமல் வடிவத்தை மட்டும் மாற்றினால், அந்த கேடே ஒரு பிரச்சனையாகும்.
- இறுதிச் சரிபார்ப்பைக் (final convergence) கவனியுங்கள். அந்த வேலை இறுதியில் அதன் தகுதியின் அடிப்படையில் அனுமதிக்கப்படுகிறதா? வேலையை அனுமதிப்பதற்காக நீங்கள் கேட்டின் கட்டுப்பாடுகளைத் தளர்த்த வேண்டியிருந்தால், அந்த கேட் தவறானது.
நன்றாகச் செயல்படும் ஒரு கேட் அமைப்பை (system) மேம்படுத்தும். ஒரு மோசமான கேட், அந்த அமைப்பு கேட்டிற்கு ஏற்பத் தன்னை மாற்றிக்கொள்ளத் தூண்டும். இதன் விளைவாக, உண்மையில் நல்ல குறியீட்டிற்குப் பதிலாக, சரிபார்ப்பாளரை (validator) திருப்திப்படுத்தும் வகையில் வடிவமைக்கப்பட்ட குறியீட்டை நீங்கள் பெறுவீர்கள்.
மொத்த எண்ணிக்கையைப் பார்ப்பதை நிறுத்துங்கள். மொத்த எண்ணிக்கை செயல்பாட்டைக் காட்டுகிறது. மாதிரித் தரவு (sample) உண்மையைச் சொல்கிறது.
உங்கள் கேட்கள், லின்டர்கள் (linters) அல்லது ஃபில்டர்கள் (filters) எதைத் தடுக்கின்றன என்பதன் ஒரு மாதிரியை ஆய்வு செய்யுங்கள். உங்கள் பாதுகாப்புக் கருவிகளைத் தவறான உள்ளீடுகளால் (bad input) மட்டுமே சோதித்தால், நீங்கள் புகழ்ச்சியான கேள்விகளை மட்டுமே கேட்கிறீர்கள் என்று அர்த்தம். நல்ல, ஆனால் வழக்கத்திற்கு மாறான உள்ளீடுகளை அவை அனுமதிக்கின்றனவா என்பதையும் நீங்கள் சோதிக்க வேண்டும்.
உங்கள் தடுப்பு எண்ணிக்கையை நீங்கள் ஆய்வு செய்கிறீர்களா? ஒரு நிராகரிப்பு நியாயமானதுதானா என்பதை நீங்கள் எப்படித் தீர்மானிக்கிறீர்கள்?
Source: https://dev.to/josephyeo/the-gate-fired-198-times-i-called-it-working-45fk
Optional learning community: https://t.me/GyaanSetuAi