Yapay Zeka Kodları: Geliştirmede Yıldız, Production'da Karadelik

Yapay Zeka Kodları: Geliştirmede Yıldız, Production'da Karadelik

Haz 27, 2026 vibe coding ai development type systems lean 4 resource management production debugging developer productivity code quality compiler verification

Vibe Coding'in Görünmez Tuzakları

Dünyayı değiştiren bir deneyim: ne istediğinizi söylüyorsunuz, ajan kodları yazıyor, testler yeşile dönüyor ve ürünü yayına alıyorsunuz. Sanki sihirli bir değnek sallıyormuşsunuz gibi hissediyorsunuz. Ta ki her şeyin patladığı ana kadar.

O patlama genelde gece üçte geliyor. Uygulamanız harika başlıyor, birkaç isteği kusursuz karşılıyor, sonra OOM canavarı tarafından acımasızca sonlandırılıyor. Ya da on bin tane dosya tanıtıcısı açıp çöküyor. Ya da test verilerinizle mükemmel çalışıyor, gerçek kullanıcılar gelince termik santral gibi ısınıyor.

Kod doğruydu. Sorunu tam olarak belirtildiği gibi çözüyordu. Tek sorun şu: sonsuz bellek ve sonsuz dosya tanıtıcısı olduğunu varsayıyordu. Çünkü prompt'unuzda başka türlüsü yazmıyordu.

Söylenmeyen Varsayımların Oyunu

İşte vibe coding'in konferanslarda kimsenin konuşmadığı o hain kısmı. Kodu kendiniz yazdığınızda, kısıtlamalar zihninizde sürekli yanınızda taşıdığınız birer modellenmiş nesne gibi. 16GB RAM'li bir dizüstü bilgisayarda çalıştığınızı biliyorsunuz. Üretim sunucunuzun dosya tanıtıcısı limitlerinin olduğunu biliyorsunuz. 400GB'lık CSV dosyasını hafızaya yükleyemeyeceğinizi biliyorsunuz.

Ama yapay zeka kod yazdığında, bu kısıtlamalar dünyada yok. Yapay zeka "dosyayı yükle, sırala, sonucu yaz" ifadesini görüyor ve düşünüyor ki: tamam, hepsini yüklerim. Testte mükemmel çalışıyor. Test dosyası 50KB çünkü.

Kod incelemeleri de bu sorunu yakalayamıyor. Sorunlu satırlar bambaşka görünüyor. Mantık hatası arayan gözler için hiçbir kırmızı bayrak yok — çünkü mantık hatası yok. Bug mantıkta değil, mantığın tasarlanmış olduğu görünmez kutunun içinde.

Ya Derleyici Gerçekten Bilseydi?

İşte işlerin ilginçleştiği yer burası. Nicolas Grislain isimli bir geliştirici cesur bir fikirle deneyler yapıyor: ya kaynak kısıtlamaları yorum değil de tip olsaydı?

Yapay zekadan üretilen kodun bellek limitlerine saygı göstermesini ummak yerine, bu kısıtlamaları ihlal eden kodu derleyicinin literal olarak derlemeyi reddettiğini hayal edin. "Bu fonksiyon bellekte hiçbir zaman 100'den fazla kayıt tutmaz" ve "bu program aynı anda 3'ten fazla dosya açık tutmaz" ifadeleri, kod incelemesinde fısıldadığınız dualar değil, derleyicinin doğruladığı gerçekler olsaydı.

Bu sadece teorik bir hayal değil. Deney Lean 4 kullanıyor — formal matematik dünyasında ses getiren aynı Lean. Kaynak bütçelerini fonksiyon tiplerine doğrudan kodluyor. Derleyici bir kaynak denetçisi haline geliyor, kod çalışmadan önce limitlerin içinde kalıp kalmadığını otomatik kontrol ediyor.

Kaynakları Sayılabilir Hale Getirmek

Çekirdek numara şaşırtıcı derecede zarif: kaynak sayılarını tip sisteminde zincirlemeyi başarıyor. "Kaç dosya açık" bilgisini göz ardı edilebilecek bir çalışma zamanı değişkeni olarak değil, dengelenmesi gereken bir hayalet parametre olarak takip ediyor.

Bir dosya açtığınızda, tip imzası değişimi yansıtıyor: fonksiyona N dosya açıkken giriyorsunuz, N+1 dosya açıkken çıkıyorsunuz. Kapattığınızda N+1'den N'ye geri dönüyorsunuz. Derleyici her adımda bunu takip ediyor ve bir dosyayı açıp kapatmadan derleyemeyeceğiniz kodu, veya tanımlı bir tavanın üzerinde dosya açan kodu derlemenize izin vermiyor.

Bellek benzer şekilde çalışıyor, ama bir farkla. Kayıtlar bellekte serbestçe yüzmezler — sabit sayıda yuvaya sahip sınırlı bir havuzda yaşarlar. Bir Event nesnesini tutmazsınız; o havuza bir referans tutarsınız. Tip, herhangi bir anda kaç tane canlı referans olduğunu takip ediyor ve tahsisat, yer olduğuna dair bir kanıt gerektiriyor.

Büyü giriş noktasında gerçekleşiyor: program sıfır kaynak kullanımıyla başlamalı ve sıfır kaynak kullanımıyla bitmeli. Tanıtıcı sızdıramazsınız, referans kaçıramazsınız, tavanı aşamazsınız. Derleyici size izin vermez.

Vibe Coding İçin Neden Önemli

Bu yaklaşım, yapay zeka asistanlarına nasıl prompt verdiğimizi kökten değiştiriyor. Bugün "bellek kullanımına dikkat et" veya "tüm dosya tanıtıcılarını kapat" gibi notlar eklersiniz — yapay zekanın dikkat etmesini umarak. Kaynak bilincine sahip tiplerle, kısıtlamaları resmi olarak belirtirsiniz ve uygulama kendini bu kısıtlamaları karşılamak için yeniden düzenlemek zorunda kalır.

Yapay zeka önce kısıtlamasız versiyonu alır. Testler geçer. Sonra limitleri etkinleştirirsiniz. Derleyici uygulamayı anında reddeder. Yapay zeka yaklaşımını yeniden yapılandırmak zorunda kalır — belki dosyayı bir seferde yüklemek yerine parçalar halinde işleyerek, veya dosyaları doğrudan açmak yerine bir bağlantı havuzu kullanarak.

Uygulama sadece tesadüfen çalışmaz; bütçe dahilinde çalıştığı kanıtlanmış olur.

Gerçek Dünyada Durum

Şunu netleştirelim: bu henüz çoğu ekip için üretim kullanımına hazır bir araç değil. Lean 4 yaklaşımı önemli bir kurulum gerektiriyor ve indekslenmiş tiplerle düşünmenin getirdiği bir yük var. Ama altında yatan fikir, uygulamadan bağımsız olarak değerli.

Vibe coding yaparken, sadece kod yazma işini değil sisteminizin zihinsel modelini de dışarıya devrediyorsunuz. Yapay zeka asistanınız üretim ortamınızı bilmiyor. Container'ınızda 512MB RAM olduğunu bilmiyor. Linux çekirdeğinizin dosya tanıtıcılarını 1024'te kestiğini bilmiyor.

Bu kısıtlamaları kodlamanın daha iyi yollarını bulana kadar, birkaç pratik seçeneğimiz var:

  1. Prompt'larda açık olun — "Dosyaları verimli şekilde işle" yerine "Girdi dosyası 10 milyon satıra kadar içerebilir" yazın

  2. Üretim ölçeğinde veriyle test edin — Eğitim verileriniz küçükse, yapay zeka kaynak kalıplarını öğrenemez

  3. Sınırlı API'ler kullanın — Doğal olarak kaynak kullanımını sınırlayan mimariler (bağlantı havuzları, yüklemek yerine streaming) yanlış kullanıma daha dirençli

  4. Kaynak bilincine sahip araçlara dikkat edin — Endüstri, yapay zeka üretimi kodda kısıtlamaları açık hale getirmenin yollarını keşfetmeye başladı

Son Söz

Vibe coding'in kirli sırrı hatalı kod yazması değil — görünmez bir kısıtlama uzayında doğru kod yazması. O uzay dizüstü bilgisayarınızı, test ortamınızı ve belki ilk bin kullanıcınızı içeriyor. Üretimde ölçeklenmeyi kesinlikle içermiyor.

Lean 4 deneyindeki gibi kaynak bilincine sahip tip sistemleri, "doğru" kelimesinin "mantıksal olarak doğru"dan daha fazlası anlama geldiği bir geleceğe işaret ediyor. "Kanıtlanmış şekilde mevcut sınırlar içinde kalan" anlamına gelen bir gelecek.

Üzerine inşa edilmeye değer bir gelecek bu. O zamana kadar, test verilerinizi üretim boyutuna yakın tutun ve prompt'larınıza dosya tanıtıcısı limitleriyle ilgili bir not daha ekleyin.

Gelecekte nöbet tutacak olan siz, kendinize teşekkür edeceksiniz.

Read in other languages:

RU BG EL CS UZ SV FI RO PT PL NB NL HU IT FR ES DE DA ZH-HANS EN