Yapay Zeka ile Kodlama: Vibe Coding, Context Window ve Spec Driven Development
Yapay zeka araçlarını kodlama sürecinde etkili kullanmak için bilmeniz gerekenler: vibe coding yaklaşımı, context window yönetimi ve spec driven development.
Yapay zeka destekli kodlama araçları modern yazılım geliştirmede oyunun kurallarını değiştirdi. Claude Code, GitHub Copilot ve Cursor gibi araçlar, geliştiricilerin üretkenliğini katladı. Ancak bu araçlardan maksimum verim almak için vibe coding yaklaşımını, context window yönetimini ve doğru iş akışı stratejilerini bilmek şart. Bu rehber, LLM tabanlı kodlama asistanlarıyla profesyonelce çalışmanın temel prensiplerini açıklıyor.
Context Window: AI'nın Kısa Süreli Hafızası
AI kodlama asistanlarının en kritik sınırlaması context window boyutudur. Bunun ne anlama geldiğini anlamak, verimli çalışmanın ilk adımı.
LLM modelleri stateless çalışır—sizi hatırlamazlar. Her yeni sorgulamada, tüm konuşma geçmişi AI sunucusuna yeniden gönderilir. Context window'a sadece mesajlar değil, okunan dosyalar, terminal çıktıları, lint sonuçları, web aramaları gibi tüm işlem verileri de dahildir. Bu sayede AI konuşma bağlamını "hatırlıyor" gibi görünür—ama bu bir illüzyon.
Context window dolmaya yaklaştığında performans düşer. Dolmadan önce proaktif yönetim şart.
Context Window Dolduğunda Ne Olur?
- Konuşmanın başındaki bilgiler kaybolur
- Halüsinasyon oranı artar
- Tutarsız ve hatalı yanıtlar verilir
- Önceki talimatlar görmezden gelinir
- Kod kalitesi düşer
Neden Tek Prompt ile Tüm Uygulamayı Yazdıramazsınız?
Yaygın bir hata: AI'ya çok detaylı, uzun bir prompt yazmak ve tüm uygulamayı tek seferde oluşturmasını istemek. Bu yaklaşım neredeyse her zaman başarısız olur.
1. Context Window Sınırı
Karmaşık bir uygulamayı tek prompt'ta yazdırmak imkansız değilse de son derece verimsizdir. Proje büyüdükçe context dolar, performans düşer, hatalar artar.
2. Hata Kümülatif Etkisi
Uzun oturumlarda yapılan küçük hatalar zincirleme reaksiyona yol açar. İlk adımda 5 satırlık bir hata, 50. adımda 500 satırlık yeniden yazıma dönüşebilir.
3. Bağlam Erozyonu
AI, uzun konuşmalarda projenin başlangıç gereksinimlerini "unutur". Başta Next.js istediğinizi, 50 mesaj sonra React uygulama yazdığını görürsünüz.
Çözüm: Task-Based Workflow Yaklaşımı
Başarılı vibe coding'in sırrı: projeyi mantıklı görevlere böl, her göreve odaklan, context'i temiz tut.
1. Büyük Görevleri Atomik Parçalara Böl
Her görev tek bir sorumluluğa odaklanmalı. Örnek: Kullanıcı kimlik doğrulama sistemi
- Görev 1: User model ve database schema
- Görev 2: POST /api/register endpoint (validation + bcrypt)
- Görev 3: POST /api/login endpoint (JWT token)
- Görev 4: Token refresh mekanizması
- Görev 5: Frontend register/login form'ları
- Görev 6: Error handling ve security headers
2. Her Görev = Yeni Context Window
Görev tamamlandığında yeni conversation başlatın. Avantajları:
- Temiz, optimize edilmiş context
- Sadece ilgili bilgiler (önceki görev sonuçları)
- Hata zincirleme riski sıfır
- Maksimum AI performansı
3. Her Yeni Görevde Bağlamı Aktarın
Yeni conversation'da şunları belirtin:
- Proje özeti: "Next.js 14 ile e-ticaret sitesi"
- Tamamlanan görevler: "User model ve register endpoint hazır"
- Şu anki görev: "Login endpoint ekleyeceğiz"
- Teknoloji stack: "TypeScript, Prisma, JWT, bcrypt"
Spec Driven Development: Daha Yapılandırılmış Yaklaşım
Bazı geliştiriciler test-driven development (TDD) benzeri bir yöntem tercih eder: Spec Driven Development. Önce çalıştırılabilir spesifikasyon yaz, sonra AI'ya bu spec'e uygun kod yazdır.
Popüler araçlar:
- Agent OS - Spec-driven AI agent işletim sistemi
- BMAD - 19+ agent, 50+ workflow
- Spec Kit - GitHub'ın spesifikasyon aracı
- Open Spec - Açık kaynak spec yönetimi
Uyarı: Küçük projeler için aşırı mühendislik olabilir. Basit task listesi çoğu zaman yeterli.
Context Window Optimizasyon Stratejileri
Context'i bir CPU gibi düşünün—sınırlı bir kaynak. Şu stratejilerle verimli kullanın:
1. Az Mesajla Maksimum Sonuç
Her prompt ve yanıt context'i doldurur. 10 mesajlık sohbet yerine, 1 iyi yazılmış prompt kullanın.
Kötü yaklaşım:
- "API yap"
- "Kullanıcı ekle"
- "Şifre ekle"
- "Validation yap"
İyi yaklaşım:
"Express.js ile POST /api/register endpoint yaz. Email/password validation yap, bcrypt ile hashle, JWT token döndür, Prisma ile PostgreSQL'e kaydet."
2. Context Yenileme Komutları
Context dolduğunda veya performans düştüğünde:
/clear- Tamamen yeni conversation başlat/compact- Conversation özetini al, yeni oturum başlat- Önemli bilgileri (stack, mimari kararlar) yeni oturumda tekrar belirt
3. Context Kullanımını İzle
AI araçları context doluluk oranını gösterir. Proaktif yönetim için takip edin:
- Claude Code:
/contextkomutu - Gemini CLI:
/memorykomutu - %70-80 dolulukta yeni conversation başlatmayı düşünün
- Kritik görevlerde daha sık sıfırlama yapın
4. MCP Sunucularını Akıllıca Kullan
MCP sunucuları AI'ya süper güçler verir ama context'i de tüketir. Her MCP sunucusu başlatıldığında şema bilgileri context'e yüklenir ve sürekli yer kaplar.
Verimli MCP kullanımı:
- Sadece kullandığınız MCP'leri yükleyin
- Kullanmadığınız sunucuları devre dışı bırakın
- Proje bazlı farklı MCP konfigürasyonları kullanın
- Lazy loading tercih edin (ihtiyaç anında yükle)
Detaylı bilgi: MCP Sunucularını Verimli Kullanma Rehberi
Vibe Coding'de Başarının 5 Altın Kuralı
1. Context'i RAM Gibi Yönet
Context sınırlı bir kaynaktır. Her dosya okuma, her web araması, her terminal çıktısı context tüketir. Gereksiz bilgi yükleme.
2. Single Responsibility: Her Görev Bir Sorumluluk
❌ "Kullanıcı sistemi ve ödeme entegrasyonu yap"
✅ Görev 1: "Kullanıcı sistemi", Görev 2: "Ödeme entegrasyonu"
3. Test Yapmadan İlerleme
Her görev bitince test et. AI kodu %100 doğru değil. Build, lint, unit test çalıştır.
4. Prompt Mühendisliği: Az Kelime, Çok Bilgi
Net, spesifik, bağlamlı prompt'lar yaz:
- ❌ "Bir API yap"
- ✅ "Express.js, kullanıcı kaydı, POST /api/register, email+password validation, bcrypt hash, JWT token döndür, Prisma PostgreSQL"
5. Her Görev Bir Commit
Görev tamamlandı → commit yap. Küçük commitler = kolay rollback, net geçmiş.
Detaylı bilgi: Küçük Commitlerle Büyük Kazanımlar
3 Kritik Hata ve Çözümleri
❌ Hata 1: Marathon Conversation
Sorun: 100+ mesajlık tek bir conversation'da tüm projeyi yazmak
Çözüm: 50-100 mesajda bir yenile. Özellik başına yeni conversation başlat.
❌ Hata 2: Bağlamsız Başlangıç
Sorun: Yeni conversation'da "Login endpoint yap" demek (AI ne bilsin?)
Çözüm: Her yeni oturumda mini brief ver: "Next.js 14, TypeScript, Prisma, PostgreSQL. User model hazır. Şimdi login endpoint ekle."
❌ Hata 3: Test-Free Coding
Sorun: AI kod yazdı, test etmeden devam et
Çözüm: Build + lint + test çalıştırmadan yeni göreve geçme. Hata erken yakalanmazsa zincirleme felaket.
Sonuç: AI Bir Araç, Sihirli Değnek Değil
Yapay zeka kodlama asistanları yazılım geliştirmeyi demokratikleştirdi. Ancak maksimum verim için strateji şart:
- Context window'u akıllıca yönet - Sınırlı bir kaynak
- Görevleri atomik parçalara böl - Her görev = 1 sorumluluk
- Test et, commit et, yenile - Hata birikimini önle
- Prompt mühendisliği öğren - Az mesaj, çok bilgi
- MCP'leri optimize et - Gereksiz sunucu yükleme
Altın kural: AI + İyi yazılım mühendisliği pratikleri = 10x üretkenlik. AI tek başına yeterli değil—stratejik düşünmek zorundasın.
Daha fazla kaynak: