← 返回列表

Seri Wawancara AI 14: Perbedaan Vibe Coding dan Spec Coding?

Ini adalah masalah yang dihadapi sebagian besar programmer. Vibe Coding dan Spec Coding adalah dua paradigma kerja yang sangat berbeda saat ini dalam pemrograman dengan bantuan model bahasa besar (LLM). Perbedaan intinya adalah: apakah 'input' yang Anda berikan kepada AI adalah perasaan yang kabur, atau spesifikasi yang tepat.


1. Menggambarkan Perbedaan Vibe Coding dan Spec Coding dengan Analogi Memasak

  • Vibe Coding = Anda berkata kepada teman 'Saya ingin makan pedas', teman Anda memasak berdasarkan perasaan, Anda mencicipi dan berkata 'tambah garam sedikit', dia menambahkan garam. Rasanya mungkin luar biasa, tetapi jika diganti teman lain, hasilnya bisa sangat berbeda.
  • Spec Coding = Anda menulis resep: 'Pasta cabai Pixian 20g, irisan daging sapi 150g, potongan seledri 50g, tumis dengan api besar selama 2 menit, tambahkan gula 3g sebelum diangkat.' Koki yang berbeda mengikuti resep tersebut, hasil rasanya sangat konsisten.

2. Definisi Keduanya

Dimensi Vibe Coding Spec Coding
Alias Pemrograman berbasis perasaan, prompt improvisasi Pemrograman berbasis spesifikasi, dokumen terlebih dahulu
Bentuk Input 'Buatkan saya halaman login yang bagus, dengan nuansa teknologi' 'Halaman login harus berisi input email/kata sandi, kotak centang 'Ingat saya', tombol submit; frontend menggunakan React + Tailwind; aturan validasi formulir: format email, panjang kata sandi \u22658; jika gagal, tampilkan petunjuk merah...'
Cara Penggunaan AI Dialogis, iteratif: beri arahan umum \u2192 lihat output \u2192 sesuaikan Rekayasa: tulis PRD/spesifikasi teknis terlebih dahulu \u2192 AI hasilkan kode berdasarkan spesifikasi
Tingkat Partisipasi Manusia Rendah: bergantung pada kreativitas AI, manusia hanya bertanggung jawab atas 'apakah terasa benar' Tinggi: manusia menyelesaikan desain/arsitektur terlebih dahulu, AI terutama melakukan eksekusi
Skenario Khas Prototipe cepat, alat pribadi, eksplorasi UI, coding kreatif Sistem tingkat produksi, kolaborasi tim, kode yang perlu dipelihara/diuji

3. Perbandingan Alur Kerja Keduanya

Alur Vibe Coding

  1. Ide Samar: 'Saya ingin menulis crawler untuk mengambil daftar trending Zhihu.'
  2. Tulis prompt pertama: Langsung minta AI menghasilkan kode.
  3. Jalankan \u2192 error \u2192 tempelkan error kembali \u2192 AI perbaiki.
  4. Merasa UI jelek \u2192 'Buat tombol itu lebih bulat, ubah latar belakang menjadi gradien biru' \u2192 AI ubah.
  5. Fungsi kurang \u2192 'Tambahkan fungsi simpan ke CSV' \u2192 AI tambahkan.
  6. Ulangi langkah 3-5 sampai 'terasa sudah cukup'.

Alur Spec Coding

  1. Tulis dokumen spesifikasi: Tentukan input/output, struktur data, penanganan error, persyaratan kinerja, kebutuhan non-fungsional (seperti logging, rate limiting).
  2. Pisahkan spesifikasi menjadi tugas: Misalnya Tugas 1: Implementasi fungsi fetch_hot_topics(), ikuti tanda tangan API dalam spesifikasi.
  3. Minta AI implementasi tugas satu per satu: prompt berisi tanda tangan fungsi, komentar, ekspektasi kasus uji.
  4. Tinjauan dan verifikasi manual: Pastikan sesuai spesifikasi, jalankan unit test.
  5. Integrasi dan regresi.

4. Perbandingan Kelebihan dan Kekurangan

Karakteristik Vibe Coding Spec Coding
Kecepatan Memulai Sangat cepat, prototipe dalam beberapa menit Lambat, perlu menulis dokumen, memecah tugas
Kualitas Kode Rendah (mungkin redundan, tidak konsisten, bug tersembunyi) Tinggi (dapat dibaca, diuji, sesuai arsitektur)
Keterpeliharaan Buruk, orang lain tidak mengerti 'mengapa ditulis seperti ini' Baik, spesifikasi adalah dokumentasi
Ketergantungan pada LLM Sangat tinggi, ganti model bisa menghasilkan output yang sangat berbeda Sedang, selama spesifikasi jelas, model berbeda bisa menghasilkan struktur serupa
Kesulitan Debug Sulit, tidak tahu logika kode dari mana Mudah, periksa sesuai spesifikasi poin per poin
Cocok untuk Kolaborasi Tim Hampir tidak mungkin Ya (spesifikasi sebagai kontrak komunikasi)
Determinisme Output Rendah, hasil setiap dialog bisa melenceng Tinggi, spesifikasi yang sama menghasilkan output stabil

5. Saran Penggunaan di Dunia Nyata

"Dalam pekerjaan, vibe coding dan spec coding bukan pilihan satu atau yang lain, melainkan digunakan secara campuran, menggunakan pendekatan yang sesuai di situasi yang tepat:
- Pada tahap eksplorasi (saat belum pasti pilihan teknologi atau gaya UI), gunakan Vibe Coding untuk memverifikasi berbagai opsi dengan cepat, misalnya 'gunakan Tailwind untuk membuat komponen kartu, lihat hasilnya'.
- Setelah opsi ditentukan, segera beralih ke Spec Coding: susun prototipe yang berhasil menjadi spesifikasi yang jelas (input/output, kondisi batas, penanganan error), lalu minta AI atau manusia menulis ulang kode produksi sesuai spesifikasi secara ketat.
Mode Vibe murni hanya cocok untuk skrip sekali pakai atau alat internal; untuk sistem yang perlu dipelihara jangka panjang dan digunakan banyak orang, Spec Coding adalah persyaratan keras."

评论

暂无已展示的评论。

发表评论(匿名)