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]
