Modül 4 · Domain 4 — Prompt Crafting & Engineering (%20-25) · ⏱ 15 dakika

Prompt anti-pattern'ler ve tuzaklar

Prompt anti-patterns and traps

Bu derste neler öğreneceksin

  • Yaygın Copilot prompt anti-pattern'lerini tanımlamak
  • Sınavda sıkça çıkan "trap" soru tiplerini fark etmek
  • Kötü öneriye yol açan davranışları listeyebilmek
  • Anti-pattern'leri düzeltme stratejilerini öğrenmek

En yaygın prompt anti-pattern’ler

1. Belirsiz görev

// Anti-pattern
// make this better
function calc(x, y) { return x + y; }

// İyi
// Rename parameters to be descriptive, add type annotations,
// add JSDoc with @param and @returns
function calc(x: number, y: number): number { return x + y; }

“Better” kelimesi her şey anlamına gelir. Copilot tahmin eder; tahmin çoğunlukla yanlıştır.

2. Çok büyük görev tek promptta

// Anti-pattern
"Build me a complete REST API for user management with JWT auth, 
database migrations, rate limiting and email verification"

// İyi: Görevi parçala
1. "Create the User model with TypeORM"
2. "Add JWT token generation utility"
3. "Implement registration endpoint"

Tek büyük prompt → Copilot ortalama bir çözüm üretir. Parçalı prompt → her adım için odaklı çözüm.

3. Negatif talimat vermek

// Anti-pattern
"Don't use callbacks, don't use console.log, don't use var"

// İyi
"Use async/await, use the logger from utils/logger.ts, use const/let"

Negatif talimatlar (“yapma”) LLM’lerde daha az güvenilirdir. Pozitif yönlendirme (“yap”) tercih edilir.

4. Kötü bağlamla iyi çıktı beklemek

// Anti-pattern: context'siz çalışmak
// (hiç ilgili dosya açık değil, custom instructions yok)
// "Implement the repository pattern"
// → Copilot genel bir implementation üretir, projeye uymayabilir

// İyi: context hazırla, sonra sor

5. Copilot’u tamamen kör bırakmak

# Anti-pattern
def process():
    # TODO: implement
    pass

# İyi: Neyi, neden, nasıl — hepsini hint olarak ver
def process_payment(amount: float, currency: str) -> PaymentResult:
    """
    Process payment via Stripe. Raises PaymentError on failure.
    Uses STRIPE_KEY from config.settings.
    Returns PaymentResult with transaction_id and status.
    """

Sınavın sevdiği trap senaryoları

SenaryoYanıltıcı cevapDoğru cevap
Copilot sürekli yanlış öneri veriyor”Copilot’u yeniden yükle”Context’i düzelt, custom instructions ekle
Öneri kalitesi düştü”Yeni bir model isteyin”İlgisiz sekmeleri kapat, chat temizle
Copilot projeye özgü pattern bilmiyor”Few-shot örnek veremezsin”Neighboring tabs aç, custom instructions yaz
Uzun chat sonrası cevaplar kötüleşti”Copilot API sorunu”Chat geçmişi truncation — yeni chat başlat

Sırada ne var?

Bir sonraki derste iterative prompt refinement — Copilot’tan kötü öneri aldığında nasıl iyileştirirsin ve bu döngüyü nasıl etkili çalıştırırsın.