ஆதாயங்கள்:
- தொடர்புடைய குறியீடு மற்றும் சூழ்நிலை சூழலுடன் செயற்கை நுண்ணறிவுக்கு விபத்து பதிவுகளை (அடுக்கு தடயங்கள்) வழங்குவதன் மூலம் சாத்தியமான மூல காரணங்களை விரைவாகக் குறைக்கும் திறன்
- AI இன் நோயறிதலை குறியீடாக ஒரு கருதுகோளாக சரிபார்ப்பதை விட மூல காரணத்தை நிரந்தரமாக தீர்க்கும் திறன் மற்றும் அறிகுறியை சோதித்து அமைதிப்படுத்துகிறது
- செயலிழப்பு பதிவுகள் மற்றும் பதிவுகளில் தனிப்பட்ட தரவை மறைப்பதன் மூலம் பிழைத்திருத்தத்தின் போது தனியுரிமையைப் பாதுகாத்தல்
ஒவ்வொரு பயன்பாடும் பிழைகளைத் தருகிறது; ஒரு நல்ல டெவலப்பரை வேறுபடுத்துவது அவர்கள் எவ்வளவு விரைவாக பிழைகளைக் கண்டுபிடித்து சரிசெய்கிறார்கள் என்பதுதான். மொபைல் பிழைத்திருத்தம் - சிக்கலின் மூலத்தைக் கண்டுபிடித்து சரிசெய்வது - குறிப்பாக கடினமாக உள்ளது, ஏனெனில் நீங்கள் பார்க்க முடியாத சூழலில் பயனரின் சாதனத்தில் பிழை ஏற்படுகிறது. பெரும்பாலான நேரங்களில், உங்களிடம் இருப்பது ஒரு கிராஷ் லாக் (விபத்து பதிவு / ஸ்டாக் ட்ரேஸ் — செயலிழந்தபோது பயன்பாடு எங்கு சென்றது என்பதற்கான தொழில்நுட்ப முறிவு). இந்த ரகசிய பதிவுகளைப் படிப்பதிலும், சாத்தியமான காரணங்களைப் பட்டியலிடுவதிலும், தீர்வுகளை முன்வைப்பதிலும் AI மிகவும் சக்தி வாய்ந்தது. இந்த யூனிட்டில் AI ஐ "பிழை துப்பறியும் நபராக" எவ்வாறு பயன்படுத்துவது என்பதை நாங்கள் கற்றுக்கொள்வோம், ஆனால் இறுதி நோயறிதலைச் சரிபார்த்து சரிசெய்யும் பொறுப்பை உங்களிடம் விட்டுவிடுவோம்.
செயலிழப்பு பதிவைப் படித்தல்: AI பிரகாசமாக இருக்கும் இடத்தில்
செயலிழப்பு பதிவு என்பது ஒரு நீண்ட மற்றும் அச்சுறுத்தும் உரை; அனுபவமற்ற டெவலப்பருக்கு எங்கு பார்க்க வேண்டும் என்று தெரியாது. AI இந்த உரையை நொடிகளில் அலசுகிறது: எந்த வரியில் அது செயலிழந்தது, எந்த விதிவிலக்கு வீசப்பட்டது, சாத்தியமான காரணம் என்ன. பொதுவான மொபைல் பிழைகள் வெளிப்படையானவை மற்றும் AI அவற்றை விரைவாக அங்கீகரிக்கிறது: NullPointerException (பூஜ்ய மதிப்பை அணுக முயற்சிக்கிறது), IndexOutOfBoundsException (இல்லாத பட்டியல் உறுப்பை அணுகுதல்) Android இல், EXC_BAD_ACCESS (ஐஓஎஸ் இல் EXC_BAD_ACCESS (இலவச நினைவகத்தை அணுகுவது), எதிர்பாராத விதமாகக் கண்டறியப்பட்டது).
மொபைல் செயலிழப்புகளின் மிகவும் பொதுவான வகைகள் மற்றும் அவற்றின் பொதுவான காரணங்கள் பின்வருமாறு:
பிழை (விதிவிலக்கு)
மேடை
வழக்கமான காரணம்
NullPointerException
ஆண்ட்ராய்டு
பூஜ்ய மதிப்பை அணுகுகிறது
IndexOutOfBoundsException
ஆண்ட்ராய்டு
இல்லாத பட்டியல் உறுப்பை அணுகுகிறது
எதிர்பாராதவிதமாக காணப்படவில்லை
iOS
விருப்பமான (!)
EXC_BAD_ACCESS
iOS
விடுவிக்கப்பட்ட நினைவகத்தை அணுகுகிறது
ANR/ஃப்ரீஸ்
ஆண்ட்ராய்டு
பிரதான நூலில் நீண்ட/கனமான செயலாக்கம்
படிப்படியான பிழைத்திருத்த ஓட்டம்:
- பதிவை சேகரிக்கவும். செயலிழப்பு பதிவு, பிழை செய்தி மற்றும் முடிந்தால் அதை மீண்டும் உருவாக்குவதற்கான படிகளை ஒன்றாக இணைக்கவும்.
- AI சூழலைக் கொடுங்கள். பிழையை மட்டும் சொல்லாமல், தொடர்புடைய குறியீடு மற்றும் அது என்ன செயலிழந்தது என்று சொல்லுங்கள்.
- சாத்தியமான காரணங்களைக் கேளுங்கள். "அதிக வாய்ப்புள்ள 3 காரணங்கள் மற்றும் ஒவ்வொன்றையும் எவ்வாறு சரிபார்ப்பது என்று சொல்லுங்கள்."
- சரிபார்க்கவும். குறியீடு மற்றும் சோதனையில் முன்மொழியப்பட்ட காரணத்தை உறுதிப்படுத்தவும்; அதை யூகித்து சரி செய்யாதீர்கள்.
- அதை சரிசெய்து மீண்டும் சோதிக்கவும். பிழை உண்மையில் போய்விட்டதா மற்றும் புதிய பிழைகள் எதுவும் உருவாக்கப்படவில்லை என்பதை சரிபார்க்கவும்.
உதவிக்குறிப்பு: செயலிழப்பு பதிவை AIக்கு கொடுக்கும்போது, தொடர்புடைய குறியீடு துணுக்கையும் சேர்க்கவும். ஸ்டேக் ட்ரேஸ் மூலம் மட்டுமே AI பொதுவான கணிப்புகளைச் செய்கிறது; நீங்கள் குறியீட்டைப் பார்க்கும்போது, சரியான வரி மற்றும் உண்மையான காரணத்தைக் கண்டறியும் நிகழ்தகவு பெரிதும் அதிகரிக்கிறது. நோயறிதலின் தரத்தை சூழல் தீர்மானிக்கிறது.
தனிப்பட்ட தரவு பொறி
செயலிழப்பு பதிவுகள் மற்றும் பதிவுகள் பெரும்பாலும் பயனர் தரவைக் கொண்டிருக்கும்: மின்னஞ்சல், பயனர் ஐடி, இருப்பிடம், படிவ உள்ளடக்கம் கூட. இந்தப் பதிவை AI இல் ஒட்டுவது தனிப்பட்ட தரவை மூன்றாம் தரப்பினருக்கு கசியவிடுவது மற்றும் KVKK / GDPR ஐ மீறுவதாகும். பதிவைச் சமர்ப்பிக்கும் முன் தனிப்பட்ட பகுதிகளை (முகமூடி) அழிக்கவும். மேலும், உங்கள் பயன்பாட்டின் பதிவுகளில் ஆரம்பத்தில் இருந்தே தனிப்பட்ட தரவை எழுதாமல் கவனமாக இருங்கள்; ஒரு நல்ல பதிவு சிக்கலை விவரிக்கிறது ஆனால் அடையாளத்தை வெளிப்படுத்தாது.
எச்சரிக்கை: AI ஆல் பரிந்துரைக்கப்பட்ட திருத்தம் "பிழையை அமைதிப்படுத்தலாம்" ஆனால் மூல காரணத்தை தீர்க்காது. எடுத்துக்காட்டாக, ஒரு NullPointerException ஐ பூஜ்ய சரிபார்ப்புடன் மூடுவது செயலிழப்பை நிறுத்தும், ஆனால் மதிப்பு ஏன் பூஜ்யமாக உள்ளது என்பதை நீங்கள் கண்டுபிடிக்கவில்லை என்றால் உண்மையான தர்க்கப் பிழை தொடரும். நோய்க்கு சிகிச்சையளிக்கவும், அறிகுறி அல்ல.
மூல காரண பகுப்பாய்வு
தொழில்முறை பிழைத்திருத்தத்தின் நோக்கம் பிழையை அமைதிப்படுத்துவது அல்ல, ஆனால் மூல காரணத்தைக் கண்டுபிடிப்பதாகும். நான் AI யிடம் "இது ஏன் பூஜ்யமாக இருக்கலாம், தரவு ஓட்டத்தில் எங்கே தொலைந்து போயிருக்கலாம்?" "இதை எப்படி அமைதிப்படுத்துவது?" என்று கேட்கிறார். கேட்பதை விட இது மிகவும் மதிப்பு வாய்ந்தது. மூல காரணம் கண்டுபிடிக்கப்பட்டவுடன், ஒரே பிழையின் டஜன் கணக்கான வேறுபாடுகள் ஒரே நேரத்தில் தீர்க்கப்படுகின்றன. இந்த செயின் தர்க்கத்தில் AI சிறப்பாக உள்ளது: உள்ளீடு முதல் வெளியீடு வரை தரவைப் பின்தொடர்ந்து, அது எங்கு உடைகிறது என்பதைப் பற்றி சிந்திக்கச் சொல்லுங்கள்.
மூன்று சிறிய வழக்குகள்
வழக்கு 1 - 10 நிமிடங்களில் 2 மணிநேர வேலை. ஒரு டெவலப்பர் குறிப்பிட்ட சாம்சங் மாடலில் மட்டும் செயலிழந்த பிழையைத் தேடி 2 மணிநேரம் செலவிட்டார். செயலிழப்பு பதிவை (தனிப்பட்ட பகுதிகளை அழித்தல்) AIக்கு வழங்கியது; அந்தச் சாதனத்தின் வேறுபட்ட கேமரா தெளிவுத்திறனுடன் நிகழும் நினைவக மேலோட்டத்தைப் பிழை சுட்டிக்காட்டுகிறது என்று YZ கூறினார். துப்பு, 10 நிமிடத்தில் காரணம் கண்டுபிடிக்கப்பட்டது. AI தேடலை துரிதப்படுத்தியது, மனிதன் தீர்வை சரிபார்த்தான்.
வழக்கு 2 - அமைதிப்படுத்தப்பட்ட பிழை மீண்டும் வந்துவிட்டது. ஒரு குழு, AI பரிந்துரையைப் பயன்படுத்தி, மீண்டும் நிகழும் செயலிழப்பை அமைதிப்படுத்தியது. செயலிழப்பு நிறுத்தப்பட்டது, ஆனால் பயனர்கள் "தரவு சேமிக்கப்படவில்லை" என்று புகார் செய்யத் தொடங்கினர்; உண்மையான சிக்கல் (தரவுத்தள இணைப்பு) இன்னும் இருந்ததால், அது கண்ணுக்குத் தெரியாததாகிவிட்டது. மூல காரணம் கண்டுபிடிக்கப்பட்டதும், விபத்து மற்றும் தரவு இழப்பு இரண்டும் தீர்க்கப்பட்டன. பாடம்: மௌனமாக இருப்பது தீர்வல்ல.
வழக்கு 3 - பதிவில் தரவு கசிந்தது. செயலிழக்கப் பதிவுகளில் பயனர்களின் முழுப் பெயர்களும் ஃபோன் எண்களும் எழுதப்பட்டிருப்பது தணிக்கையில் கண்டறியப்பட்டது. டெவலப்பர்கள் வழக்கமாக இந்த பதிவுகளை AI மற்றும் நிலையான பிழைகளில் ஒட்டுவார்கள்; எனவே தனிப்பட்ட தரவு பல மாதங்களாக வெளியேறுகிறது. பதிவுகள் மறைக்கப்பட்டு, செயல்முறை சரி செய்யப்பட்டது. பாடம்: பிழைத்திருத்தம் செய்யும் போது கூட ரகசியத்தன்மை பொருந்தும்.
பலவீனமான வரியில் / வலுவான வரியில்
மோசமான ப்ராம்ட்: "இந்தப் பிழை ஏன் ஏற்படுகிறது? [ஸ்டாக் ட்ரேஸ்]"
வலுவான அறிவுறுத்தல்: "இந்த செயலிழப்பு எனது ஆண்ட்ராய்டு பயன்பாட்டில் நிகழ்கிறது. சூழல்:- செய்யும் போது: தயாரிப்பு விவரத்திலிருந்து கார்ட்டில் பயனர் சேர்க்கிறார்- சில சாதனங்களில் மட்டும், குறைந்த ரேம் மாடல்கள்- தொடர்புடைய குறியீடு: [ViewModel மற்றும் Repository part]- செயலிழப்பு பதிவு (தனிப்பட்ட தரவு அழிக்கப்பட்டது): [ஸ்டாக் ட்ரேஸ்] பட்டியலிடவும்: 3 மிகவும் சாத்தியமான மூல காரணங்களை நான் எவ்வாறு சரிசெய்வேன். நீங்கள் உறுதியாக தெரியாத இடத்தில் உங்கள் அனுமானத்தை தெரிவிக்கவும்."
நகலெடுக்கக்கூடிய வார்ப்புருக்கள்
சிதைவு பகுப்பாய்வு டெம்ப்ளேட்:"பின்வரும் செயலிழப்பை பகுப்பாய்வு செய்யவும். சூழல்: [நீங்கள் என்ன செய்கிறீர்கள், எந்த சாதனம்/பதிப்பு]. தொடர்புடைய குறியீடு: [குறியீடு]. சிதைவுப் பதிவு (தனிப்பட்ட தரவு அழிக்கப்பட்டது): [ட்ரேஸ்]. ஒவ்வொன்றிற்கும் 3 முக்கிய காரணங்களையும் சரிபார்ப்பையும் + நிரந்தரத் தீர்வைக் கொடுங்கள். அறிகுறிகளை அமைதிப்படுத்தும் தீர்வுகளையும் குறிக்கவும்."
மூல காரண டெம்ப்ளேட்: "இந்த மதிப்பு எதிர்பாராதவிதமாக [பூஜ்யம்/தவறு] வருகிறது. உள்ளீட்டில் இருந்து இந்த புள்ளி வரை தரவு ஓட்டத்தைப் பின்பற்றவும்: இது எங்கு தொலைந்து போகலாம் அல்லது சிதைக்கப்படலாம்? ஒவ்வொரு நிலையிலும் நான் எங்கு சரிபார்க்க வேண்டும் என்று சொல்லுங்கள். [குறியீடு]"
பதிவு வாசிப்பு டெம்ப்ளேட்: "இந்த பதிவு வெளியீட்டை விளக்கவும்: என்ன நிகழ்வுகள் வரிசையாக நடந்தன, எங்கே அசாதாரணமானது, பிழைக்கு முன் கடைசி ஆரோக்கியமான படி என்ன? [log — தனிப்பட்ட தரவு அழிக்கப்பட்டது]"
மறுஉருவாக்கம் டெம்ப்ளேட்: "இந்தப் பிழையை நம்பகத்தன்மையுடன் மீண்டும் உருவாக்க நான் என்ன படிகள், சாதன நிலைகள் மற்றும் தரவு முயற்சிக்க வேண்டும்? நிகழ்தகவு வரிசையில் பிழையைத் தூண்டக்கூடிய நிபந்தனைகளை பட்டியலிடவும். [விளக்கம்]"
பொதுவான தவறுகள்
- சூழல் இல்லாத ஸ்டாக் ட்ரேஸைக் கொடுக்கிறது. தொடர்புடைய குறியீடு மற்றும் சூழ்நிலை இல்லாமல், AI பொதுவான கணிப்புகளை செய்கிறது.
- பதிவுகளுடன் AI இல் தனிப்பட்ட தரவை ஒட்டுதல். இரகசியத்தன்மை மீறல்; முதலில் முகமூடி.
- அறிகுறியை அமைதிப்படுத்துங்கள். டிரை-கேட்ச் மூலம் செயலிழப்பை மறைப்பது மூலச் சிக்கலை விட்டுவிட்டு புதிய சிக்கல்களை உருவாக்குகிறது.
- முதல் பரிந்துரையை சரிபார்க்காமல் பயன்படுத்துகிறது. AI இன் நோயறிதல் ஒரு கருதுகோள்; குறியீட்டில் உறுதிப்படுத்தவும்.
- எமுலேட்டரில் அதை மீண்டும் உருவாக்க முயற்சிக்கிறது. சில பிழைகள் உண்மையான சாதனம்/நிலையில் மட்டுமே தோன்றும்.
- சரிசெய்த பிறகு மறுபரிசீலனை செய்யவில்லை. திருத்தம் வேறு எதையாவது உடைத்திருக்கலாம்; பின்னடைவை சரிபார்க்கவும்.
சுருக்கமாக
AI சிறந்து விளங்கும் பகுதிகளில் ஒன்று விபத்துப் பதிவுகளைப் படிப்பது மற்றும் சாத்தியமான காரணங்களைத் வரிசைப்படுத்துவது; சூழல் கொடுக்கப்படும்போது நோயறிதலின் தரம் பெரிதும் மேம்படுத்தப்படுகிறது. ஆனால் இறுதி நோயறிதல் மற்றும் திருத்தம் மனிதனுடையது: AI இன் பரிந்துரை ஒரு கருதுகோள், குறியீடு மற்றும் சோதனையில் சரிபார்க்கப்பட்டது. இதன் நோக்கம் அறிகுறியை அமைதிப்படுத்துவது அல்ல, ஆனால் மூல காரணத்தைத் தீர்ப்பது; அமைதிப்படுத்தப்பட்ட பிழை பொதுவாக மற்றொரு வடிவத்தில் திரும்பும். செயலிழப்பு பதிவுகளில் தனிப்பட்ட தரவு இருக்கலாம்; AIக்குக் கொடுப்பதற்கு முன் அதை மறைத்துவிடுங்கள் மற்றும் உங்கள் பதிவுகளில் ஆரம்பத்திலிருந்தே தனிப்பட்ட தரவை எழுத வேண்டாம்.
விண்ணப்ப பணி
உங்களிடம் உள்ள சிதைவுப் பதிவை (அல்லது AI இலிருந்து நீங்கள் உருவாக்கும் மாதிரி) எடுத்து, அதில் உள்ள தனிப்பட்ட/தனித்துவமான தரவை மறைத்து, "விபத்து பகுப்பாய்வு டெம்ப்ளேட்" மூலம் AIக்கு வழங்கவும். AI பட்டியல்களின் மூல காரணங்களில் எது உண்மையான திருத்தங்கள் மற்றும் அவை அமைதியாக உள்ளன என்பதை வேறுபடுத்தி அறியவும். நீங்கள் தேர்ந்தெடுத்த நிரந்தரத் தீர்வைப் பயன்படுத்தவும், பிழை மறைந்துவிட்டதா மற்றும் புதிய சிக்கல்கள் எதுவும் எழவில்லை என்பதைச் சரிபார்க்கவும்.
சரிபார்ப்பு பட்டியல்
- [ ] தொடர்புடைய குறியீடு மற்றும் சூழ்நிலை சூழலுடன் க்ராஷ் லாக் கொடுத்துள்ளேன்
- [ ] பதிவுகளில் தனிப்பட்ட/தனித்துவமான தரவை மறைத்துள்ளேன்
- [ ] நான் AI யிடம் மூல காரணம் மற்றும் நிரந்தர தீர்வைக் கேட்டேன், அமைதிப்படுத்தவில்லை
- [ ] நான் நோயறிதலை குறியீடு மற்றும் சோதனையில் சரிபார்த்தேன், நான் அதை கண்மூடித்தனமாகப் பயன்படுத்தவில்லை
- [ ] சரிசெய்த பிறகு, பிழை போய்விட்டது மற்றும் பின்னடைவு இல்லை என்பதை நான் சோதித்தேன்
- [ ] எனது விண்ணப்பம் அதன் பதிவுகளில் தனிப்பட்ட தரவை எழுதவில்லை என்பதை நான் சரிபார்த்தேன்