AI Serisi Mülakat 14: Vibe Coding ve Spec Coding Arasındaki Fark?
Bu, çoğu programcının karşılaştığı bir sorundur. Vibe Coding ve Spec Coding, büyük dil modelleri (LLM) ile programlama yaparken kullanılan iki farklı çalışma paradigmasıdır. Temel farkları: AI'ya verdiğiniz "girdi" belirsiz bir his mi yoksa kesin bir şartname mi?
Birinci: Yemek yapma örneğiyle vibe coding ve spec coding arasındaki farkı basitçe açıklayalım
- Vibe Coding = Arkadaşına "Acı yemek istiyorum" dersin, arkadaşın hislerine göre bir yemek yapar, tadına bakıp "biraz daha tuzlu olsun" dersin, o da tuz ekler. Lezzet harika olabilir ama başka bir arkadaşın yaparsa tamamen farklı olur.
- Spec Coding = Tarifi yazarsın: "20g Pixian acı fasulye ezmesi, 150g dilimlenmiş dana eti, 50g kereviz sapı, yüksek ateşte 2 dakika sotele, ocaktan almadan önce 3g şeker ekle." Farklı aşçılar tarife göre yaparsa, tatlar yüksek oranda aynı olur.
İkinci: Tanımlar
| Boyut | Vibe Coding | Spec Coding |
|---|---|---|
| Takma ad | His odaklı programlama, anlık yönlendirme | Şartname odaklı programlama, belge öncelikli |
| Girdi biçimi | "Bana güzel bir giriş sayfası yap, teknolojik hissi olsun" | "Giriş sayfası e-posta/şifre giriş kutuları, beni hatırla onay kutusu, gönder butonu içermeli; ön uç React + Tailwind kullanmalı; form doğrulama kuralları: e-posta formatı, şifre uzunluğu ≥8; başarısız olursa kırmızı uyarı göster..." |
| AI kullanım şekli | Diyalog temelli, yinelemeli: kabaca yön ver → çıktıyı gör → ince ayar yap | Mühendislik odaklı: önce ayrıntılı PRD/teknik şartname yaz → AI şartnameye göre kod üretir |
| İnsan katılımı | Düşük: AI'nın yaratıcılığına bağımlı, insan sadece "his doğru mu" diye bakar | Yüksek: insan önce tasarım/mimariyi tamamlar, AI esas olarak uygulamayı yapar |
| Tipik senaryo | Hızlı prototipleme, kişisel küçük araçlar, UI keşfi, yaratıcı kod yazma | Üretim düzeyi sistemler, takım işbirliği, bakımı/testi kolay kod gerektiren durumlar |
Üçüncü: İş akışı karşılaştırması
Vibe Coding süreci
- Belirsiz fikir: "Bir web kazıyıcı yazıp Zhihu sıcak listesini almak istiyorum."
- İlk istemi yaz: doğrudan AI'dan kod oluşturmasını iste.
- Çalıştır → hata → hatayı yapıştır → AI düzeltir.
- Arayüz çirkin hisset → "O düğmeyi biraz yuvarlak yap, arka planı mavi degrade yap" → AI değiştirir.
- Özellik eksik → "CSV'ye kaydetme özelliği ekle" → AI ekler.
- 3-5 arasında döngü yap "yeterli hissedene kadar".
Spec Coding süreci
- Şartname belgesini yaz: girdi/çıktı, veri yapıları, hata yönetimi, performans gereksinimleri, işlevsel olmayan gereksinimler (günlük, hız sınırlama gibi) netleştir.
- Şartnameyi görevlere böl: örneğin Görev 1:
fetch_hot_topics()fonksiyonunu uygula, şartnamedeki API imzasına uy. - Her görevi AI'ya uygulat: istem içinde fonksiyon imzası, yorumlar, test senaryosu beklentileri olsun.
- İnsan incelemesi ve doğrulama: şartnameye uygunluğu sağla, birim testlerini çalıştır.
- Entegrasyon ve regresyon.
Dördüncü: Artılar ve eksiler karşılaştırması
| Özellik | Vibe Coding | Spec Coding |
|---|---|---|
| Başlangıç hızı | Çok hızlı, dakikalar içinde prototip | Yavaş, belge yazmak ve görevleri bölmek gerekir |
| Kod kalitesi | Düşük (gereksiz, tutarsız, gizli hatalar olabilir) | Yüksek (okunabilir, test edilebilir, mimariye uygun) |
| Bakım kolaylığı | Kötü, sonradan gelen "neden böyle yazılmış" anlamaz | İyi, şartname belgedir |
| LLM'ye bağımlılık | Çok yüksek, model değişirse çıktı tamamen farklı olabilir | Orta, şartname netse farklı modeller benzer yapı üretebilir |
| Hata ayıklama zorluğu | Zor, kodun mantığının nereden geldiği bilinmez | Kolay, şartnameye göre madde madde kontrol edilir |
| Takım işbirliğine uygunluk | Neredeyse imkansız | Mümkün (şartname iletişim sözleşmesidir) |
| Çıktı kesinliği | Düşük, her diyalog sonucu farklı olabilir | Yüksek, aynı şartname stabil çıktı üretir |
Beşinci: Gerçek hayatta kullanım önerileri
"İş hayatında vibe coding ve spec coding arasında seçim yapılmaz, karışık olarak kullanılır, uygun senaryoda uygun yöntem kullanılır:
- Keşif aşamasında (teknoloji seçimi veya UI stili belirsizken), Vibe Coding ile farklı yaklaşımları hızlıca test edin, örneğin 'Tailwind ile bir kart bileşeni yaz ve sonucu gör'.
- Çözüm belirlendiğinde hemen Spec Coding'e geçin: başarılı prototipi tersine mühendislikle net bir şartnameye (girdi/çıktı, sınır koşulları, hata yönetimi) dönüştürün, ardından AI veya insanın şartnameye sıkı sıkıya bağlı kalarak üretim düzeyi kodunu yeniden yazmasını sağlayın.
Saf Vibe modu yalnızca tek kullanımlık betikler veya iç küçük araçlar için uygundur; uzun süre bakımı yapılacak, birden çok kişinin kullanacağı sistemler için Spec Coding zorunluluktur."
评论
暂无已展示的评论。
发表评论(匿名)