Friday, May 22, 2009

களை எடுத்தல்

மென்பொருள் பயன்பாட்டில் வேறு யாரோ உருவாக்கிய நிரலில் பிழை திருத்துவது சிக்கலான வேலை. சரியான ஆவணம் இருந்தால் வேலை எளிதாக இருக்கும்.

ஒரு அனுபவம்.

ஒவ்வொரு செய்கையிலும் என்னென்ன நடக்கிறது, எந்த அட்டவணையில் தரவு உள்ளிடப் படுகிறது, உள்ளிட்டதும் என்ன விபரம் புதிதாக உருவாகிறது (primary key), குறிப்பிட்ட அட்டவணையில் என்னென்ன விபரங்கள் இன்னொரு அட்டவணையுடன் இணைக்கப்பட்டிருக்கிறது (foreign key) என்று புரிந்து கொள்ள வேண்டும். மொத்தம் மூன்றே மூன்று நிரல் கோப்புகளில் ஆறு அட்டவணைகளில் தரவு சேமிக்கப்படுகிறது.

இதை என்ன வடிவத்தில் ஆவணப்படுத்துவது என்று உருக்கொடுக்க வேண்டும். முதலில் தாளில் எழுத ஆரம்பித்தேன். அதை எங்கு சேமிப்பது, எப்படி பகிர்ந்து கொள்வது என்று எப்போதும் இருக்கும் சிக்கல். அடுத்தபடியாக ஒரு உரைக்கோப்பில் அட்டவணை விபரங்களை நகல் செய்து ஒட்டிக் கொண்டேன். அதைப் பார்த்தால் விபரம் எதுவும் தெளிவாக தெரிந்து விடப் போவதில்லை

ஒரு விரிதாளில் ஒவ்வொரு அட்டவணைக்கும் ஒரு வரி, அதனுடன் இணையும் அட்டவணைகள், இணைக்கும் விபரம் இவற்றைக் குறிப்பிட்டு க் கொள்ளலாம் என்று ஆரம்பித்தால், கொஞ்சம் தெளிவு ஏற்பட ஆரம்பித்தாலும் புதிதாகப் பார்ப்பவர்கள் புரிந்து கொள்ளும்படி இல்லை. ஒரு கதை படிப்பது போல அமைய வேண்டும். அடுத்த விரிதாளில் நடவடிக்களை, சேமிக்கப்படும் அட்டவணை விபரம், நிரல் கோப்பு, சுட்டியின் பெயர் என்று ஒரு வடிவம் கொடுத்தேன். இரண்டாவது நெடுவரிசையில்தான் முக்கியமான விபரங்கள் எல்லாம் இருக்கும்.

முதல் வரியில் அட்டவணையின் பெயர், இரண்டாவது வரியில் அதில் சேமிக்கப்படும் விபரம் சுருக்கமாக, மூன்றாவது வரியில் அது உருவாக்கும் keyன் பெயர் -> என்ற குறியீட்டுடன், அடுத்தடுத்த வரிகளில் அது இணைத்துக் கொள்ளும் அட்டவணை மற்றும் key பெயர்கள். key பெயர் <- அட்டவணை பெயர் என்ற வடிவம் கொடுத்தேன். மிகவும் நிறைவாக தெளிவாக வந்து விட்டது. கிட்டத்தட்ட மூன்றரை மணி நேர வேலையின் முடிவு அரைப்பக்க அளவில் சுருக்கமாக அமைந்து விடும்.

எதையும் சுருக்கமாகச் சொல்வதற்குத்தான் அதிக முயற்சி தேவைப்படுகிறது. வளவளவென்று நீளமாக எழுதிக் கொண்டே போவதற்கு திட்டமிடலோ, கட்டுப்பாடோ தேவையில்லை. அதன் வெளிப்பாடும் பார்ப்பவர்களுக்கு பலனுள்ளதாக இருக்காது. இன்னொரு நெடுவரிசையில் இந்த நடவடிக்கைகளால் வேறு எந்த அட்டவணையில் தரவு தானாக உள்ளிடப் படுகிறது, அதைச் செய்யும் இயக்கியின் பெயர் என்ன என்ற விபரத்தையும் குறித்துக் கொண்டேன்.

பயனர் கொடுத்த விபரங்களை வைத்து தரவுகளை சரி பார்த்தல். எல்லாமே சரியாகத்தான் இருந்தது. கடைசிக் கட்டத்தில் விபரங்களை எடுத்துக் கணக்கிட்டு காண்பிக்கும் இடத்தில் உதைப்பது போலத் தெரிந்தது. ஒவ்வொன்றாக தரவுத்தள வினாக்கள் எழுதி எழுதி இயக்கிப் பார்த்துக் கொண்டிருந்தேன். இரண்டு முனைகளிலிமிருந்து வினா எழுப்பி வரும் விடைகளை ஒப்பிட்டுப் பார்த்தால் சரியாகத்தான் இருந்தது. கணக்கிடுதலின் கூறுகளை தனியாகப் பிரித்துப் பார்த்தால் சரியாக வந்தது. சேர்த்து கணக்குப் போடும் கூட்டுத் தொகையில் தேவையில்லாத தொகுப்புகள் நடக்கின்றன என்று புரிந்தது.

ஒவ்வொரு தரவாக எடுத்து கணக்குப் போடாமல், எல்லாவற்றையும் ஒரே தொகுப்பாக கணக்குப் போடும்படி இயக்கியில் எழுதியிருந்தார்கள். அதை சரிபார்ப்பதற்கு இன்னொரு தம் பிடிக்க வேண்டும். எல்லா சிக்கல்களையும் அவிழ்ப்பதற்கு அடிப்படையிலிருந்து ஆரம்பிப்பது எளிமையான வழி.

கிரிக்கெட்டில் ஓடி வரும் பந்தைப் பிடிக்க ஒற்றைக் காலை மடக்கி பந்தை நோக்கி இருக்குமாறு ஒற்றைக்காலில் மண்டியிட்டு அந்தக் காலுக்கு முன்பு கையை வைத்து எதிர் கொள்ள வேண்டும். இரண்டு கால்களுக்கு நடுவில் குனிந்து கைகளை குவித்து நின்றால் கை தவறினால், கையைத் தாண்டிக் கொண்டு போனால், திரும்பி ஓட வேண்டியிருக்கும். முதல் முறையில் கை தவறினால் காலில் பட்டு நின்று விடும். முதல் முறையில் முதுகெலும்புக்கும் அழுத்தம் குறைவாக இருக்கும். எழுந்து ஓடுவதற்கும் சரியான கோணத்தில் இருப்போம்.

அந்த அடிப்படைகளை மறந்து மேல் நிலைகளில் யோசித்துக் கொண்டே இருந்தால் சிக்கல் அவிழாது. மின் கருவிகளில் பழுது, கணினியில் சிக்கல் என்று பார்க்கப் போகும் போது முதலில் மின்சார இணைப்பு சரியாக இருக்கிறதா என்பதிலிருந்து ஆரம்பிக்க வேண்டும். சுவிட்சு போடப் பட்டிருக்கிறதா என்று பார்ப்பது அதில் முதல் படி.

இணைய இணைப்பு இயங்கவில்லை என்றால், முதலில் நமது கணினியில் வலையமைப்பு சரியாக இருக்கிறதா என்று பார்த்து விட்டு அருகில் இருக்கும் கணினியுடன் தொடர்பு கொள்ள முடிகிறதா என்று தட்டிப் (ping செய்து) பார்க்க வேண்டும். அது சரி என்றால் நமது கணினி வலையமைப்பு சரியாக இயங்குகிறது.

அடுத்ததாக உள்ளுறை வலையமைப்பிலேயே இன்னொரு தொகுப்பில் இருக்கும் ஒரு கணினியைத் தட்டிப் பார்க்க வேண்டும். நமது பகுதிக்கும் மற்ற தொகுப்புகளுக்கும் இணைப்பு சரியாக இருக்கிறது. மூன்றாவதாக இணைய இணைப்பைத் தரும் கருவியை தட்டிப் பார்க்க வேண்டும். அது ஒரு வேளை இயங்காமல் அல்லது இணைப்பில் இல்லாமல் போயிருக்கலாம்.

அதுவும் சரியாக இருந்தால், இணையத்தில் இருக்கும் ஒரு இணைய எண்முகவரியை (IP address) தட்டிப் பார்க்க வேண்டும். ஒரு வேளை கணினி பெயர்களை இணைக்கும் வழங்கியில் குறை இருந்தால் பெயர் முகவரி இயங்காமல் இருக்கலாம். அதுவும் சரியாக இருந்தால், இணையத்தில் பிரபலமான பெரிய நிறுவனத் தளம் ஒன்றை முயற்சிக்க வேண்டும் (google.com). அதுவும் இணைகிறது என்றால் நாம் போக வேண்டிய தளத்தை தட்டிப் பார்க்கலாம்.

இப்படி ஒவ்வொன்றாக சரி செய்து கொண்டே வந்தால்தான் தீர்வு கிடைக்கும். ஆரம்பத்திலேயே நாம் போகும் தளத்தில் கணினி கோளாறு, அந்தத் தளம் இயங்கவில்லை என்று முடிவு செய்து விட்டால் சிக்கல் தீராது. விண்டோசு இயங்குதளத்தில் பல சிக்கல்களுக்கு கணினியை அணைத்து விட்டு மீண்டும் இயக்குவது என்று முயற்சிப்பார்கள். சிக்கல் சரியாகி விட்டால் மகிழ்ச்சி. என்ன சிக்கல், எப்படி சரியானது என்று புரியாமலேயே இருந்து விடும். அடுத்த தடவை இது மாதிரி பிரச்சனை ஏற்பட்டால் அணைத்து விட்டு இயக்கிக் கொள்ளலாம் என்று மட்டும் கற்றுக் கொள்வோம்.

2 comments:

நிகழ்காலத்தில்... said...

\\எல்லா சிக்கல்களையும் அவிழ்ப்பதற்கு அடிப்படையிலிருந்து ஆரம்பிப்பது எளிமையான வழி.\\

அருமையான கருத்து

வாழ்த்துக்கள்

மா சிவகுமார் said...

நன்றி நிகழ்காலத்தில்...

அன்புடன்,
மா சிவகுமார்