Son bir yıldır kod yazarken yapay zekâ araçlarını yoğun kullanıyorum. Öğrendiğim en net ders şu: bağlam vermeden istenen kod, Stack Overflow'dan rastgele yapıştırılan koddan farksız. İyi sonuç almanın formülü; rol + bağlam + kısıtlar + çıktı biçimi.

Kötü ve iyi örnek

Önce tipik bir kötü istek:

PHP'de dosya yükleme kodu yaz

Bu istekten dönen kod büyük ihtimalle uzantı kontrolünü dosya adından yapar, MIME doğrulamaz, dosya adını kullanıcıdan alır - yani güvenlik açığı üretir. Şimdi aynı isteğin işe yarar hâli:

Kıdemli bir PHP güvenlik uzmanısın. Paylaşımlı hostingte çalışacak bir dosya yükleme fonksiyonu yaz.

Kısıtlar:
- PHP 8, bağımlılık yok
- İzinli türler: jpg, png, webp, pdf (hem uzantı HEM finfo ile MIME doğrula)
- Üst sınır 10 MB, dosya adını asla kullanıcıdan alma (random üret)
- Hata durumlarını Exception ile bildir, Türkçe mesajlarla

Çıktı: Tek fonksiyon + 3 satırlık kullanım örneği. Açıklama yazma, kod yorumları yeterli.

Yukarıdaki bloklar tek tıkla kopyalanabilir - kendi projenize uyarlayıp deneyin.

İşe yarayan 4 kalıp

  • Rol verin: "Kıdemli X uzmanısın" demek, çıktının varsayılanlarını ciddi biçimde iyileştiriyor.
  • Kısıtları maddeleyin: Sürüm, ortam, yasaklar. Madde işareti düz yazıdan iyi çalışıyor.
  • Çıktı biçimini söyleyin: "Sadece fonksiyon", "önce plan sonra kod", "tablo hâlinde".
  • Örnek verin: Var olan kod stilinizden küçük bir parça eklemek, dönen kodun projenize uymasını sağlıyor.

AI'dan dönen kodu anlamadan üretime almayın. Özellikle güvenlik, para ve kullanıcı verisiyle ilgili kodu satır satır okuyun; test yazın.

Bonus: Hata ayıklama promptu
Şu PHP hatasını ayıklamama yardım et. Önce hatanın 3 olası kök nedenini sırala, sonra her biri için nasıl doğrulayacağımı söyle. Kod önerme, önce teşhis koy.

Hata: [hata mesajını yapıştır]
İlgili kod: [kodu yapıştır]