Promptun Ötesi: Yapay Zeka Kodlama Asistanınızı Yönetmek İçin Sadece Prompt Yetmez
AI ile Kod Yazarken Neden Sürekli Takılıp Kalıyorsun?
Şöyle bir sahne canlandır: Saat gece 11. Bir özellik yetiştirmen gerekiyor ve son bir saattir bir AI asistanıyla mesajlaşıyorsun. Her soru bir cevap, her cevap bir yapıştırma. Kimisi çalışıyor, kimisi çalışmıyor. Hangisinin hangisi olduğundan bile emin değilsin.
Tanıdık geliyor mu?
İşte rahatsız edici gerçek: Çoğu geliştirici, AI ajanlarını hesap makinesi gibi kullanıyor—tuşlara kendin basıyormuşsun gibi. Evet, matematik yapıyor. Hayır, içinde neler döndüğünü gerçekten bilmiyorsun. Ve sözde mantıklı görünüp aslında sorunlu bir şey verdiğinde, gece yarısı debug yapacak olan sensin.
AI ile gerçek üretim kodu teslim eden ekipler farklı bir şey keşfetmiş. AI yardımını bir soru-cevap oyunu olarak görmeyi bırakmışlar. Bunun yerine, AI'ın küçük, güvenli ve doğrulanabilir değişiklikler yapmasına olanak tanıyan sistemler—döngüler—inşa ediyorlar. Sonuçlar kendini gösteriyor: Daha az regresyon, daha az bağlam taşması ve gerçekten okunabilir diff'ler.
Tek Seferde Her Şey Yapma Tuzağı
Tek seferlik prompt vermenin baştan çıkarıcı bir sadeliği var. "Bana bir kullanıcı kimlik doğrulama sistemi yaz." Tamamlandı. "Bu modülü yeni API'yi kullanacak şekilde baştan yaz." Oldu bitti. Verimli hissettiriyor. Hızlı hissettiriyor.
Ta ki hissettirmeyene kadar.
Bir AI'a büyük bir görevi tek seferde verdiğinde aslında ne olduğunu düşün. Önce bağlam duvarına çarpıyorsun. Üzerinde çalışmaya değer çoğu kod tabanı, bir AI'ın belleğine sığacak kadar küçük değil. Dolayısıyla göremediği kısımlar hakkında tahmin yürütmeye başlıyor—bağımlılıklar, adlandırma kuralları, belki de tamamen yanlış olabilecek mimari kalıplar hakkında varsayımlarda bulunuyor.
Sonra inceleme sorunu geliyor. AI 500 satırlık bir diff döndürdüğünde, onunla ne yapıyorsun? Üstünkörü bakıyorsun. AI'a olması gerekenden daha çok güveniyorsun çünkü AI kendinden emin görünüyor. Birleştiriyorsun ve umut ediyorsun.
Şu var ki umut, bir kalite kontrol süreci değil.
Üçüncü sorun en sinsi olanı. AI modelleri yardımsever olacak şekilde eğitilmiş, yani kendinden emin konuşacak şekilde eğitilmiş. Bir AI sana mantıklı görünen kod verdiğinde, muhtemelen mantıklı kod üzerinde eğitildiği için mantıklı görünüyor. Bu, kodun senin özel bağlamına uygun olduğu anlamına gelmiyor. Gerçek davranışı kontrol eden bir kapı olmadan, kendinden emin olmak tek kabul kriterin oluyor—ve kendinden emin olmak, doğruluk için korkunç bir vekil.
Döngü Devreye Giriyor
Alternatif neredeyse hayal kırıcı derecede basit: Tek büyük prompt yerine, çok sayıda küçük adım. Her adımdan sonra çalışmanı kontrol et. Sonra bir sonraki adıma geç.
Uygula. Kontrol Et. Tekrarla.
Bu, temel haliyle bir ajantik döngü ve eğer bu kadar açık olması tartışmaya değer olmadığını düşündürüyorsa, çoğu ekibin hâlâ bunu yapmadığını unutmayın. Büyü kavramda değil—onu titizlikle uygulama disiplininde.
Pratikte bu nasıl görünüyor? AI'a "tüm başarısız testleri düzelt" diye sormak yerine:
- Test paketini çalıştır ve ilk hatayı bul
- AI'a sadece o hatayı düzeltmesini iste
- Testleri tekrar çalıştırarak düzeltmeyi doğrula
- Geçerse bir sonraki hataya geç; başarısız olursa değişiklik geri alınır
- Sıfır hata kalana veya AI ilerleme kaydedemediğini raporlayana kadar tekrarla
Burada ne olduğuna dikkat et. Her değişiklik bağımsız olarak doğrulanıyor. Bir şey kırıldığında, hangi düzenlemenin buna neden olduğunu biliyorsun. Bir şey çalıştığında, kalıyor. Döngü, umarım-doğru-kod yığını yerine doğrulanmış ilerlemenin bir dişlisi gibi çalışıyor.
Çalışan Döngülerin Üç Kuralı
Tüm döngüler eşit yaratılmamış. Kötü tasarlanmış bir döngü, hiç döngü olmamasından bile kötü—süresiz çalışarak kozmetik değişiklikler yapabilir veya çalışıyor görünürken kendinden emin bir şekilde şeyleri bozabilir. Gerçekten işe yarayan döngülerin üç vazgeçilmez özelliği var.
Birincisi: Müzakere edilemez otomatik bir kapı. Kapı senin gerçeklik dedektörün. Bu bir test paketinin geçmesi, bir linter'ın sıfır hata döndürmesi, bir tip kontrolcüsünün tip uyumsuzluğu bulamaması veya görsel regresyonları yakalayan otomatik ekran görüntüsü karşılaştırması olabilir. Kritik nokta, kapının deterministik ve nesnel olması. Onu açıklamayla geçemezsin, AI da geçemez. Kod kapıyı geçemezse, olmadı—birleştirilmedi, geri alındı.
Bu göründüğünden daha zor çünkü kapılarının altyapısını inşa etmeye kararlı olmayı gerektiriyor. Gerçek kapsama gerçek testlere ihtiyacın var. Tip kontrolcün gerçekten çalışmalı. CI/CD hattı bir sonradan düşünülecek şey değil, birinci sınıf bir vatandaş olmalı.
İkincisi: Her tekrarda bir değişiklik. Tek seferlik promptlamaya alışmışken acı verici derecede yavaş hissettiriyor. Neden tüm tip hatalarını bir seferde düzeltmiyorsun? Neden her lint uyarısını tek geçişte ele almıyorsun?
Çünkü değişiklikleri bir araya topladığında ve bir şey kırıldığında, neyin buna neden olduğunu bilemezsin. AI üç şey düzeltir, birini bozar ve net sonuç olumlu görünür—dolayısıyla değişiklik birleştirilir. Şimdi suçu belirsiz bir regresyonun var.
Bir değişiklik, bir doğrulama, bir karar. Adım başına daha yavaş ama her adım bağımsız olarak incelenebilir ve geri alınabilir olduğundan toplamda devasa derecede daha hızlı. Üretimde bir şey kırıldığında, yarım kalmış birbirine bağlı değişiklikler yığınını debug etmek yerine, git bisect ile tam olarak hangi değişikliğin buna neden olduğunu buluyorsun.
Üçüncüsü: Dürüst bir durma koşulu. Durma koşulu olmayan bir döngü ya sonsuzdur ya da rastgele durur. İkisi de kötü. Durma koşulu ölçülebilir bir sinyal olmalı: test sayısının sıfıra düşmesi, ardışık turlarda "geliştirilecek bir şey yok" raporu, değerlendirme puanının platóya ulaşması.
Disiplin burada dürüst atlamaları kabul etmekte. Kod gerçekten iyi olduğunda, doğru çıktı "değişiklik yok—değiştirilecek bir şey yok." Ne zaman işinin bittiğini bilen bir döngü, üretken görünmek için marjinal değişiklikler üretmeye devam eden on döngüye bedel.
Döngülerin Promptların Kaçırdığını Yakaladığı An
Neden önemli olduğunu somut bir örnekle açıklayayım.
Üretim bir yönetim panelinde çalışan bir kendini geliştirme döngüsünü düşün. Döngü her sayfanın ekran görüntüsünü alıyor, AI'a her turda bir kullanılabilirlik sorunu bulup düzeltmesini soruyor, tip kontrollerini ve linting'i çalıştırıyor ve geliştirilecek bir şey bulamayana kadar devam ediyor.
Birkaç tur boyunca bu döngü düzinelerce gerçek gelişme üretiyor. Temiz UI parlatması. Daha iyi hata mesajları. Daha akıllı boş durumlar.
Ama en değerli düzeltme bir parlatma değil, bir hata. Bir turda, ekran görüntüsü donanımı bir ayarlar sayfasının çerçevenin tam sayfa çökme ekranını oluşturduğunu işaretledi. Şu var: Bu çökme tamamen istemci tarafındaydı. API sağlık kontrolleri tüm süre boyunca yeşildi çünkü API sorunsuzdu. Ekran görüntülerini inceleyen bir insan o sayfayı kaydırarak geçebilir veya geçici bir render hatası olduğunu varsayabilirdi.
Otomatik döngü bunu yakaladı, gerçek hatayı çıkardı ("undefined'ın özellikleri okunamıyor (oku 'memes')"), bunu bileşen yaşam döngüsündeki bir durum-birleştirme hatasına izledi ve kökten düzeltti. Ve donanım artık o çökme ekranı modelini kontrol etmeyi bildiği için, o hata sınıfını sonsuza dek yakalayacak.
İşte ödül. Bir döngü sadece iş yapmıyor—doğrulanmış iyileştirmeleri biriktiren ve doğrulanmış regresyonların geri dönmesini önleyen bir dişli inşa ediyor.
Ekibin İçin Neden Önemli
Bir startup kuruyorsan, sürekli gözetim gerektiren AI araçlarına zamanın yok. Bir geliştiriciysen, düzelttiğinden daha fazla hata getiren araçlara sabrın yok.
Ajanetik döngüler her iki endişeye de yanıt veriyor. Güveni doğrulama ile değiştirerek AI yardımını gerçekten güvenilir kılıyorlar. Her değişikliği hesap verebilir kılarak ilerlemeyi ölçülebilir kılıyorlar. Bir şey kırıldığında ne zaman ve neden olduğunu bildiğinizi garanti ederek debug'ı çözülebilir kılıyorlar.
En iyi kısım? Bu yaklaşım kod üretimiyle sınırlı değil. Aynı kalıp otomatik test, hata avcılığı, güvenlik taraması, dokümantasyon güncellemeleri, bağımlılık yönetimi için de çalışıyor—sürekli doğrulamadan yararlanacağın her yerde tek seferlik promptlar kullandığın yerlerde.
Yalnız mısın yoksa bir ekip mi yönetiyorsun, mesele AI'ı kodlama için kullanıp kullanmamak değil. Mesele, onu seni gerçekten hızlandıran bir şekilde mi kullanıyorsun—yoksa sadece meşgul hissettirirken teknik borç biriktiren bir şekilde mi?
Döngüler AI ile çalışmanın tek yolu değil. Ama ciddi üretim işine ölçeklenebilen ve olası-ama-yanlış kod mezarlığı biriktirmeyen tek yol.
Sıra sende.