Claude
Hata Mesajından Kök Neden Analizi ve Çözüm
Aldığınız hata mesajını, ilgili kodu ve ortam bilgisini verin; tahmin yürütmek yerine hipotezleri sırayla doğrulayan, kök nedeni bulan ve tekrarını önleyen bir hata ayıklama süreci yürütün.
Prompt
Sen sistematik çalışan kıdemli bir yazılım mühendisisin. Hata ayıklarken tahmin yürütmez, hipotez kurup doğrularsın.
Dil / framework ve sürümler: [TEKNOLOJI]
Beklenen davranış ve gerçekleşen davranış: [DAVRANIS]
Hata mesajı ve stack trace:
```
[HATA]
```
İlgili kod:
```
[KOD]
```
Şimdiye kadar denediklerim: [DENEDIKLERIM]
Adımlar:
1. Hata mesajını sade dille açıkla: Sistem tam olarak neyi, nerede başaramadı?
2. Olasılık sırasına göre en fazla 3 hipotez kur; her biri için bu hipotezi doğrulayacak veya çürütecek somut bir kontrol (log satırı, komut, test) öner.
3. En olası neden için çözüm: Değişen satırları diff biçiminde göster ve neden işe yaradığını açıkla.
4. Bu değişikliğin bozabileceği başka bir yer var mı?
5. Aynı hatanın tekrarını önlemek için bir test ve varsa bir koruma (doğrulama, tip, uyarı) öner.
Kurallar: Bilgi eksikse ilk mesajında çözüm uydurma; hangi ek bilgiye (dosya, log, sürüm) ihtiyacın olduğunu sor. Tüm kodu yeniden yazma, minimum değişiklik öner.
TEKNOLOJI
DAVRANIS
HATA
KOD
DENEDIKLERIM
Örnek çıktı
1. Açıklama: Veritabanı, "users" tablosunda aynı e-posta adresine sahip ikinci bir kaydın eklenmesini benzersizlik (unique) kuralı nedeniyle reddediyor.
2. Hipotezler
H1 (en olası): Form iki kez gönderiliyor (çift tıklama veya yeniden deneme). Kontrol: Sunucu loglarında aynı saniyede iki POST isteği var mı?
H2: Kayıt öncesi e-posta kontrolü büyük-küçük harf duyarlı yapılıyor. Kontrol: "Abc@x.com" ile "abc@x.com" deneyin.
H3: ...
3. Çözüm (H2 doğrulanırsa)
```diff
- $exists = $this->userModel->where('email', $data['email'])->first();
+ $data['email'] = mb_strtolower(trim($data['email']));
+ $exists = $this->userModel->where('email', $data['email'])->first();
```
5. Test: Aynı e-postanın farklı harf büyüklüğüyle ikinci kez kaydedilmeye çalışıldığında 422 ve anlaşılır hata mesajı döndüğünü doğrulayan bir birim testi.
2. Hipotezler
H1 (en olası): Form iki kez gönderiliyor (çift tıklama veya yeniden deneme). Kontrol: Sunucu loglarında aynı saniyede iki POST isteği var mı?
H2: Kayıt öncesi e-posta kontrolü büyük-küçük harf duyarlı yapılıyor. Kontrol: "Abc@x.com" ile "abc@x.com" deneyin.
H3: ...
3. Çözüm (H2 doğrulanırsa)
```diff
- $exists = $this->userModel->where('email', $data['email'])->first();
+ $data['email'] = mb_strtolower(trim($data['email']));
+ $exists = $this->userModel->where('email', $data['email'])->first();
```
5. Test: Aynı e-postanın farklı harf büyüklüğüyle ikinci kez kaydedilmeye çalışıldığında 422 ve anlaşılır hata mesajı döndüğünü doğrulayan bir birim testi.
İleri SeviyeFreelancer
Yorumlar (0)
Yorum yapmak için giriş yapın veya kayıt olun.
Henüz yorum yok
Promptu denediyseniz deneyiminizi veya geliştirme önerinizi paylaşın.
Yorum yapmak için giriş yap