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.
Doldurulacak alanlar 5
- [TEKNOLOJI]
- Dil, framework ve sürümler Örn. PHP 8.3, CodeIgniter 4.7, MySQL 8
- [DAVRANIS]
- Beklenen ve gerçekleşen davranış Örn. Form gönderilince kayıt oluşmalı; bunun yerine 500 hatası alıyorum
- [HATA]
- Hata mesajı ve stack trace Örn. mysqli_sql_exception: Duplicate entry 'abc' for key 'users.email'
- [KOD]
- Hatanın oluştuğu kod bloğu Örn. $this->userModel->insert($data);
- [DENEDIKLERIM]
- Denediğiniz çözümler Örn. Veritabanını temizledim, bir süre çalıştı sonra tekrar oldu
Ö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.
0
- Kopyalanma
- 111
- Olumlu oy
- +0
- Yorum
- 0
Promptun aracı
Claude için diğer promptlarBenzer promptlar
- Önem Derecelendirmeli Kapsamlı Kod İncelemesi (Code Review) Pull request veya kod parçanızı; hata, güvenlik, performans ve okunabilirlik açısından önem derecesine göre sıralanmış, her bulgusu gerekçeli ve düzeltme önerili kıdemli bir geliştirici gözüyle inceletin.
- Monolitten Mikroservislere Geçiş: Karar ve Mimari Tasarım Mevcut sisteminizi ve sorunlarınızı anlatın; mikroservislerin gerçekten gerekli olup olmadığını, gerekiyorsa servis sınırlarını, iletişim yöntemlerini ve adım adım geçiş planını değerlendiren bir mimari analiz alın.
Topluluk denemeleri (0)
Bu promptla üretilen görseller. Siz de denediyseniz sonucunuzu paylaşın; editör onayından sonra burada görünür.
Henüz paylaşılan deneme yok. İlk sonucu siz paylaşın.
Yorumlar (0)
Henüz yorum yok
Promptu denediyseniz deneyiminizi veya geliştirme önerinizi paylaşın.
Yorum yapmak için giriş yap