Kodlama Promptları
Kod okumayı, hata bulmayı ve test yazmayı hızlandıran hazır promptlar. Yeni başlayanlar ve deneyimli geliştiriciler için.
Hazır prompt şablonları
- Kodu satır satır açıkla: Aşağıdaki kodu satır satır açıkla, sanki yeni başlayan birine anlatıyormuşsun gibi:
[kodunu buraya yapıştır]
Örnek durum: Kod: const total = items.reduce((sum, item) => sum + item.price * item.qty, 0);
1. `items.reduce(...)`: Listedeki her öğeyi dolaşıp tek bir değere indirger; burada o değer toplam tutardır.
2. `(sum, item) => ...`: Her adımda `sum` o ana kadarki toplamı, `item` sıradaki ürünü tutar.
3. `sum + item.price * item.qty`: Ürünün fiyatını adetle çarpıp toplama ekler.
4. `, 0`: Başlangıç değeridir; toplam 0'dan başlar. Liste boşsa sonuç 0 olur.
5. `const total`: Sonucu değiştirilemeyen bir değişkene atar.
Bu örnek çıktı Claude ile üretilmiştir; sonuç sizde farklı olabilir. - Hatayı bul: Bu fonksiyonda bir hata var ama nerede olduğunu bulamıyorum. Kodu incele ve olası sorunları listele:
[kodunu buraya yapıştır]
Örnek durum: Kod: function average(arr) { let sum = 0; for (let i = 0; i <= arr.length; i++) { sum += arr[i]; } return sum / arr.length; }
Olası sorunlar:
1. Döngü koşulu `i <= arr.length` yanlış: son turda `arr[arr.length]` tanımsızdır (undefined), toplam NaN olur. Doğrusu `i < arr.length`.
2. Dizi boşsa `sum / arr.length` 0/0 olup NaN döner; bu durumu ayrıca kontrol edin.
3. Dizide sayı olmayan öğe varsa sonuç bozulur; girdiyi doğrulayın.
Bu örnek çıktı Claude ile üretilmiştir; sonuç sizde farklı olabilir. - Kodu iyileştir: Bu kodu daha okunabilir ve performanslı hale getirmek için önerilerde bulun, mantığı değiştirmeden:
[kodunu buraya yapıştır]
Örnek durum: Kod (Python): squares = [] for n in numbers: if n % 2 == 0: squares.append(n * n)
Öneri: Liste üretimi tek ifadeyle yazılabilir.
squares = [n * n for n in numbers if n % 2 == 0]
Mantık aynı: yalnızca çift sayıların karesi alınır. Okunabilirlik artar ve geçici `append` çağrıları kalkar. Koşul karmaşıklaşırsa okunabilirlik için eski döngüyü tercih edin.
Bu örnek çıktı Claude ile üretilmiştir; sonuç sizde farklı olabilir. - Kod incelemesi: Aşağıdaki kod parçasını incele, olası hataları ve iyileştirme noktalarını listele, ardından daha temiz bir versiyonunu öner:
[kodunu buraya yapıştır]
Örnek durum: Kod: var x = 5 function check(a) { if (a == '5') { return true } else { return false } }
Olası sorunlar:
1. `var` yerine `let` veya `const` kullanın; kapsam sorunlarını önler.
2. `==` tür dönüşümü yapar; `5 == '5'` doğru çıkar. Beklenmiyorsa `===` kullanın.
3. `if/else` ile true/false döndürmek gereksizdir; doğrudan koşulu döndürebilirsiniz.
Daha temiz sürüm:
const x = 5;
function check(a) { return a === '5'; }
Bu örnek çıktı Claude ile üretilmiştir; sonuç sizde farklı olabilir. - Hata mesajını açıkla: Aşağıdaki hata mesajını açıkla ve olası nedenlerini basit bir dille sırala: [hata mesajını buraya yapıştır]. Kullandığım dil/framework: [dil/framework].
Örnek durum: Hata: TypeError: Cannot read properties of undefined (reading 'name'). Dil: JavaScript (React).
Anlamı: Kodunuz `name` özelliğini okumaya çalıştı ama önündeki nesne `undefined` idi.
Olası nedenler:
1. Veri henüz yüklenmedi (API yanıtı gelmeden bileşen render edildi).
2. Yanlış özellik yolu, örneğin `user.profile.name` yazıp `profile` yokken.
3. Dizide olmayan bir indekse erişim (`users[3].name`).
Çözüm yolları: `user?.name` ile isteğe bağlı zincirleme kullanın ya da veri gelene kadar yükleniyor durumu gösterin. Hatanın hangi satırda olduğuna konsoldaki yığın izinden bakın.
Bu örnek çıktı Claude ile üretilmiştir; sonuç sizde farklı olabilir. - Hatayı düzelt: Aşağıdaki hata mesajını ve kodu incele. Hatanın olası nedenini açıkla ve düzeltilmiş kodu göster:
Hata: [hata]
Kod:
[kod]
Örnek durum: Hata: IndexError: list index out of range Kod: def last(items): return items[len(items)]
Neden: Python'da indeksler 0'dan başlar; son öğenin indeksi `len(items) - 1`'dir. `items[len(items)]` listenin dışını gösterir.
Düzeltilmiş kod:
def last(items):
if not items:
return None
return items[-1]
`items[-1]` son öğeyi verir. Boş liste için de `None` döner, böylece ikinci bir hata oluşmaz.
Bu örnek çıktı Claude ile üretilmiştir; sonuç sizde farklı olabilir. - Birim testleri yaz: Aşağıdaki fonksiyon için birim testleri yaz. Normal durumları, sınır değerleri ve hatalı girişleri kapsa:
[fonksiyon]
Örnek durum: Fonksiyon (Python): def divide(a, b): if b == 0: raise ValueError('b sıfır olamaz') return a / b
import pytest
from mymodule import divide
def test_normal():
assert divide(10, 2) == 5
def test_negative():
assert divide(-9, 3) == -3
def test_float():
assert divide(1, 4) == 0.25
def test_zero_numerator():
assert divide(0, 5) == 0
def test_zero_divisor():
with pytest.raises(ValueError):
divide(5, 0)
Kapsam: normal durum, negatif sayı, ondalık sonuç, sınır değeri (pay sıfır) ve hatalı giriş (sıfıra bölme). Modül adını kendi dosyanıza göre değiştirin.
Bu örnek çıktı Claude ile üretilmiştir; sonuç sizde farklı olabilir. - SQL sorgusu yaz: Şu işi yapan bir SQL sorgusu yaz. Tablolar ve sütunlar: [şema]. İstenen sonuç: [sonuç]. Sorguyu satır satır açıkla.
Örnek durum: Tablolar: customers(id, name), orders(id, customer_id, total, created_at). İstenen: 2026'da en çok harcama yapan 5 müşteri.
SELECT c.name, SUM(o.total) AS toplam
FROM customers c
JOIN orders o ON o.customer_id = c.id
WHERE o.created_at >= '2026-01-01' AND o.created_at < '2027-01-01'
GROUP BY c.id, c.name
ORDER BY toplam DESC
LIMIT 5;
Açıklama:
1. JOIN müşteri ile siparişlerini eşleştirir.
2. WHERE yalnızca 2026 siparişlerini bırakır.
3. GROUP BY her müşterinin siparişlerini tek satırda toplar.
4. SUM toplam harcamayı hesaplar.
5. ORDER BY ... DESC en yüksekten sıralar, LIMIT 5 ilk beşi alır.
Not: LIMIT sözdizimi veri tabanına göre değişir (SQL Server'da TOP 5).
Bu örnek çıktı Claude ile üretilmiştir; sonuç sizde farklı olabilir. - Regex yaz: Şu desene uyan bir düzenli ifade (regex) yaz. Eşleşmesi gerekenler: [örnekler]. Eşleşmemesi gerekenler: [örnekler]. İfadenin parçalarını tek tek anlat.
Örnek durum: Eşleşmeli: 0532 123 45 67, 05321234567. Eşleşmemeli: 0532 123 45, 1234.
^05\d{2} ?\d{3} ?\d{2} ?\d{2}$
Parçalar:
^ ve $: metnin başı ve sonu; ifade tüm metne uymalı.
05: sabit olarak 05 ile başlar.
\d{2}: iki rakam (operatör kodunun kalanı).
?: isteğe bağlı bir boşluk.
\d{3}, \d{2}, \d{2}: kalan rakam grupları.
Bu desen 11 haneli numaraları boşluklu ya da boşluksuz kabul eder; yurt dışı ön ekini (+90) kapsamaz.
Bu örnek çıktı Claude ile üretilmiştir; sonuç sizde farklı olabilir.
Kodlama Promptları nasıl kullanılır?
Kodlama promptlarında en etkili yöntem, bağlamı eksiksiz vermektir: kullandığınız dil ve sürüm, hata mesajının tamamı, beklediğiniz ve gerçekleşen davranış. “Kodum çalışmıyor” demek yerine ilgili kodu, hatayı ve ne yapmaya çalıştığınızı yazdığınızda yapay zekâ nedeni çok daha doğru bulur.
Yapay zekânın verdiği kodu çalıştırmadan önce okuyun ve test edin; var olmayan bir fonksiyon ya da güvenlik açığı içerebilir. Parolaları, API anahtarlarını ve gizli müşteri verilerini asla prompta yapıştırmayın. Şirket koduyla çalışıyorsanız kurumunuzun yapay zekâ kullanım kuralına uyun.
- Dil, sürüm ve hata mesajının tamamını yazın.
- Beklediğiniz ve gerçekleşen davranışı ayrı ayrı anlatın.
- Verilen kodu çalıştırmadan önce test edin.
- Parola ve API anahtarlarını asla yapıştırmayın.
Örnek: zayıf prompt ve güçlü prompt
Zayıf prompt
Kodum çalışmıyor.
Güçlü prompt
Aşağıdaki hata mesajını ve kodu incele. Hatanın olası nedenini açıkla ve düzeltilmiş kodu göster: Hata: TypeError: cannot read properties of undefined (reading ‘length’). Kod: function ortalama(liste){ return liste.reduce((a,b)=>a+b,0)/liste.length } ortalama()
Claude ile üretilmiş örnek çıktı
Neden: Fonksiyonu argümansız çağırıyorsunuz (ortalama()), bu yüzden liste undefined oluyor ve liste.reduce ya da liste.length çalışmıyor.
Düzeltme:
function ortalama(liste = []){
if(liste.length === 0) return 0;
return liste.reduce((a,b)=>a+b,0)/liste.length;
}
ortalama([4, 8, 6]); // 6
Varsayılan parametre ve boş liste kontrolü eklendi. Boş listede 0 yerine hata fırlatmak isteyebilirsiniz; bu tasarım kararı size ait.
Bu çıktı, yukarıdaki güçlü promptun Claude ile çalıştırılmasıyla elde edilmiş bir örnektir. ChatGPT ve diğer araçlarda ya da farklı zamanlarda sonuç değişebilir; çıktıyı kullanmadan önce kendiniz kontrol edin.
Sık sorulan sorular
Yapay zekânın verdiği kodu doğrudan kullanabilir miyim?
Önce okuyup test edin. Var olmayan bir fonksiyon, eski bir sözdizimi ya da güvenlik açığı içerebilir.
Gizli kodumu yapıştırmak güvenli mi?
Parola, API anahtarı ve müşteri verisini asla yapıştırmayın. Şirket koduysa kurumunuzun yapay zekâ kullanım kurallarına bakın.
Hangi dilleri destekler?
ChatGPT ve Claude çoğu popüler dilde iyi çalışır. Çok nadir kütüphanelerde ya da çok yeni sürümlerde hata yapabilir; resmî belgeyle doğrulayın.
Diğer prompt kategorileri
- En Popüler 20 Prompt
- Planlama ve Verimlilik Promptları
- İş Yazışması Promptları
- Düzenleme, Özet ve Çeviri Promptları
- Öğrenme ve Ders Çalışma Promptları
- İletişim ve Zor Konuşma Promptları
- CV ve Mülakat Promptları
- Karar Verme ve Problem Çözme Promptları
- Günlük Hayat ve Alışveriş Promptları
- İçerik Üretimi Promptları
- Sosyal Medya Promptları
- Pazarlama Promptları
- SEO ve Blog Yazarlığı Promptları
- E-Ticaret Promptları
- Özetleme Promptları
- Veri Analizi Promptları
- Görsel ve Tasarım Promptları
- Sunum Hazırlama Promptları
- Seyahat Planlama Promptları
- Öğretmenler İçin Promptlar
- YouTube ve Video Promptları
- Girişimcilik ve Küçük İşletme Promptları
- Dilekçe ve Resmî Yazışma Promptları
- İK ve İşe Alım Promptları
- Yaratıcı Yazarlık Promptları