Vibe Coding Problem Değil. Asıl Problem Stack'i Anlamamak.

Bir yapay zeka aracı bir keresinde bana şu yapılandırma dosyasını vermişti: DATABASE_URL = "postgresql://admin:SuperSecret123@db.internal:5432/app" API_KEY = "sk-live-4f9a..."

Çalışıyor. Tuzak da bu zaten. Demo çalışıyor ve inceleyen kişi onaylıyor. Ancak o gizli bilgi artık sonsuza dek git geçmişinizde kalıyor. Deponuza giren herkes onu görebilir.

Ben bir yazılımcı değilim. Yirmi yılımı sistem mühendisliği yaparak geçirdim. Uygulamaların üzerinde çalıştığı zemini ben inşa ederim. Hostları, ağı ve veritabanlarını ben kurarım.

Yapay zeka araçlarını kullandığımda, diğerleri gibi başarısız olmuyorum. İşte nedeni.

Andrej Karpathy, geçici projeler için "vibe coding" kavramından bahsetmişti. Bazı insanlar bunu çok ileri götürdü. Artık koda bakmayı bıraktılar. Şimdi ise sisteme bakmayı bırakıyorlar. Kodu görmezden gelebilirsiniz ama sistemi görmezden gelemezsiniz. Asıl çalışan şey sistemdir.

Yapay zeka önerilerini sık sık geçersiz kılıyorum çünkü model operasyonel bağlamdan yoksun:

  • İşletim Sistemleri: Bir yapay zeka, bir güvenlik uygulaması için Windows önerebilir. Lisans maliyetini göz ardı eder. Ücretsiz bir Ubuntu makinesi aynı işi daha ucuza görür.
  • Veritabanları: Bir yapay zeka MySQL seçebilir. Bir yıl sonra gece saat 02:00'de hangi motoru yönetebileceğimi bilmez.
  • Güvenlik: Bir yapay zeka "giriş yapılıyor" aşamasında durur. Gerçek güvenlik, koşullu erişim ve güvenilir cihazlar gerektirir. Bunu sadece "vibe"lar ile bulamazsınız.
  • Ağ Yönetimi: Bir yapay zeka genellikle portları tüm internete açmayı önerir. Ben ise erişimi belirli yönetim ağlarıyla kısıtlarım.

Yapay zeka, ağı başkasının sorunuymuş gibi görür. Öyle değildir.

Kodun içine gömülmüş (hardcoded) gizli bilgiler için çözüm basittir. Ortam değişkenlerini kullanın: import os DATABASE_URL = os.environ["DATABASE_URL"]

Siz durdurmadığınız sürece model, gizli bilgileri dosyalarınızın içine doğrudan yazacaktır.

Vibe coder'lar başarısız oluyor çünkü uygulama kodunun tüm sistem olduğunu sanıyorlar. Öyle değil. Uygulama, bir binanın sadece bir katıdır. Eğer temeli dökmediyseniz, bina çökecektir.

Yapay zeka kullanırken "bana X inşa et" diyerek başlamam. Bu, production ortamında çöken demolar yaratır. Önce otuz dakikamı kısıtlamaları ve ödünleşimleri (tradeoffs) konuşarak geçiririm. Modelin bu mantığa dayalı bir şartname (spec) yazmasını sağlarım. Bu, daha sonra saatlerce sürecek temizlik işlerini önler.

Sorun araç değil. Sorun, neleri etkilediğini görmeden değişiklik yapmaktır. Eğer temeli anlıyorsanız, vibe'ları takip etmek güvenlidir.

Ayırıcı çizgi ne kadar kod yazdığınız değil, kodunuzun üzerinde durduğu şeyi anlayıp anlamadığınızdır.

Model her seferinde yanlış yaptığı için sürekli yapmak zorunda kaldığınız o manuel müdahale (override) nedir?

Kaynak: https://dev.to/kkierii/vibe-coding-isnt-the-problem-not-understanding-the-stack-is-4kif

İsteğe bağlı öğrenme topluluğu: https://t.me/GyaanSetuAi