LLM'i Kod Asistanı Olarak Kullanmanın Sınırı
Hız, inceleme borcunu silmiyor

İlk hafta asistanı açınca üretkenlik hissi geldi. Boş dosya doldu, isimler tutarlı durdu, yorum satırları bile vardı. İkinci hafta bir test kırmızıya döndü; kırılan yer, benim yazmadığım bir yardımcıdaydı. Yardımcı derleniyordu. Yanlış API'yi çağırıyordu.
Bu seri bir model karşılaştırması değil. İsimler altı ayda eskir. Kalıcı olan şey, asistanı nerede kapattığım ve nerede yanımda tuttuğum. Demo bir not: laboratuvar sonucu veya 'milyonlarca satır yayınladık' cümlesi yok. Bir geliştirici aracının sınırını çiziyorum.
Hızın geldiği yer
Asistan boilerplate'de gerçekten hızlı. DTO, map, monoton bir null kontrolü, bildiğim bir desenin üçüncü kopyası. Buralarda imleci takip etmek, baştan yazmaktan ucuz. Hız burada meşru; çünkü çıktıyı zaten ezbere biliyorum, sapmayı görüyorum.
Hızın yalan söylediği yer, bilmediğim bir kütüphane. Dokümantasyonu açmadan 'şöyle bir fonksiyon vardır' diye yazdırınca metin kendinden emin duruyor. Derleyici bazen kurtarıyor. Dinamik bir istemci veya yanlış sürüm numarası derlemeden geçiyor.
def fetch_user(client, user_id: str) -> dict:
# Asistanin uydurdugu yardimci: requests.Session.get_json yok.
return client.get_json(f"/users/{user_id}", timeout=5)
Bu üç satır 'temiz' duruyor. get_json yok. Asistan benzer isimleri bir araya getirip duruyor. Test yazmadan yeşil gören kişi, burayı doğru sanıyor. Ben de ilk seferinde sandım.
Diff'i okumadan merge
Asistanın asıl maliyeti tuş vuruşu değil, inceleme borcu. On dosyalık bir diff'i 'zaten makine yazdı' diye kaydırmak, kendi yazdığım on dosyayı kaydırmaktan daha tehlikeli. Çünkü cümleleri ben kurmadım; itiraz kasım uyanmıyor.
Kendi kuralım: asistanın dokunduğu her hunk'ı, bir yabancı PR gibi okuyorum. İsim, sınır, hata yolu, test. Yeşil CI yeterli değil. CI, uydurma bir yardımcıya hiç girmeyebilir.
- Yeni bağımlılık veya sürüm pini var mı?
- Silinen satır gerçekten ölü mü, yoksa sessiz bir sözleşme miydi?
- Hata mesajı kullanıcıya mı, log'a mı gidiyor?
- Test, mutlu yolu mu, yoksa sapmayı mı tarıyor?
Test yoksa 'çalışıyor' yetmez
Asistana 'test yaz' demek ayrı bir tuzak. Testi de o yazınca, aynı körlük ikinci kez üretiliyor. Yanlış varsayımı kilitleyen bir test, yeşil bir yalan. Testi ben tarif ediyorum: girdi, beklenen, yasak çıktı. Asistan iskeleti doldurabilir; iddiayı ben koyuyorum.
Bir kerelik betikte asistanı serbest bırakıyorum. Üretim yolunda auth, para, silme ve göç varsa oturumu kapatıyorum. Orada hız, yanlışın yayılma hızı.
Sınır listesi
- Bildiğim desenin tekrarı: açık, sonra hunk okunur.
- Bilmediğim API: önce doküman, sonra asistan, sonra yine doküman.
- Güvenlik ve yetki: asistan taslak bile olsa ben yazarım.
- İsimlendirme ve yorum: kabul, ama kopyalanan yalan yorumu silerim.
Serinin devamı daha sıkıcı yerlere inecek: prompt'u versiyonlamak, chunking'i RAG'ten önce bozmak. Model ismi değişir. İnceleme borcu kalır. Asistanı kapatmıyorum; varsayılan yazar yapmıyorum.
Yorumlar
Yorumlar (0)
Yorumlar üyelere açık. Üye ol · Giriş yap