← 返回列表

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

  1. Belirsiz fikir: "Bir web kazıyıcı yazıp Zhihu sıcak listesini almak istiyorum."
  2. İlk istemi yaz: doğrudan AI'dan kod oluşturmasını iste.
  3. Çalıştır → hata → hatayı yapıştır → AI düzeltir.
  4. Arayüz çirkin hisset → "O düğmeyi biraz yuvarlak yap, arka planı mavi degrade yap" → AI değiştirir.
  5. Özellik eksik → "CSV'ye kaydetme özelliği ekle" → AI ekler.
  6. 3-5 arasında döngü yap "yeterli hissedene kadar".

Spec Coding süreci

  1. Ş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.
  2. Şartnameyi görevlere böl: örneğin Görev 1: fetch_hot_topics() fonksiyonunu uygula, şartnamedeki API imzasına uy.
  3. Her görevi AI'ya uygulat: istem içinde fonksiyon imzası, yorumlar, test senaryosu beklentileri olsun.
  4. İnsan incelemesi ve doğrulama: şartnameye uygunluğu sağla, birim testlerini çalıştır.
  5. 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."

评论

暂无已展示的评论。

发表评论(匿名)