Temuduga Siri AI 14: Apakah Perbezaan Antara Vibe Coding dan Spec Coding?
Ini adalah masalah yang dihadapi oleh kebanyakan pengaturcara. Vibe Coding dan Spec Coding adalah dua paradigma kerja yang berbeza apabila menggunakan Model Bahasa Besar (LLM) untuk pengaturcaraan. Perbezaan utama mereka ialah: "input" yang anda berikan kepada AI adalah perasaan yang kabur, atau spesifikasi yang tepat.
Satu: Contoh memasak untuk menerangkan perbezaan antara vibe coding dan spec coding
- Vibe Coding = Anda berkata kepada rakan "Saya nak makan pedas", rakan menggoreng satu hidangan berdasarkan rasa, anda rasa dan berkata "lagi masin", dia tambah garam. Rasanya mungkin menakjubkan, tetapi jika rakan lain yang memasak, hasilnya berbeza sama sekali.
- Spec Coding = Anda tulis resipi: "Pes cili douban 20g, hirisan daging lembu 150g, batang saderi 50g, tumis dengan api besar selama 2 minit, tambah gula 3g sebelum angkat". Chef yang berbeza mengikut resipi, rasa adalah sangat konsisten.
Dua: Definisi kedua-duanya
| Dimensi | Vibe Coding | Spec Coding |
|---|---|---|
| Nama lain | Pengaturcaraan dipacu perasaan, improvisasi segera | Pengaturcaraan dipacu spesifikasi, dokumen dahulu |
| Bentuk input | "Bantu saya buat halaman log masuk yang cantik, dengan rasa teknologi" | "Halaman log masuk perlu mengandungi ruang input e-mel/kata laluan, kotak semak 'Ingat saya', butang hantar; frontend guna React + Tailwind; peraturan pengesahan borang: format e-mel, panjang kata laluan ≥8; paparan ralat merah apabila gagal..." |
| Cara penggunaan AI | Perbualan, iteratif: beri arah umum → lihat output → laraskan | Kejuruteraan: tulis PRD/spesifikasi teknikal terperinci dahulu → AI hasilkan kod berdasarkan spesifikasi |
| Penglibatan manusia | Rendah: bergantung pada kreativiti AI, manusia hanya rasa "betul atau tidak" | Tinggi: manusia selesaikan reka bentuk/senibina dahulu, AI laksanakan |
| Senario tipikal | Prototaip pantas, alat peribadi, penerokaan UI, kod kreatif | Sistem peringkat pengeluaran, kerjasama pasukan, kod yang boleh diselenggara/diuji |
Tiga: Perbandingan aliran kerja
Proses Vibe Coding
- Idea kabur: "Saya nak tulis crawler untuk ambil senarai panas Zhihu."
- Tulis prompt pertama: Minta AI hasilkan kod terus.
- Jalankan → ralat → tampal ralat balik → AI perbaiki.
- Rasa muka tak cantik → "Bulatkan butang itu, ubah latar belakang kepada biru gradien" → AI ubah.
- Fungsi kurang → "Tambah fungsi simpan ke CSV" → AI tambah.
- Ulang langkah 3-5 sehingga "rasa dah cukup".
Proses Spec Coding
- Tulis dokumen spesifikasi: Tentukan input/output, struktur data, pengendalian ralat, keperluan prestasi, keperluan bukan fungsian (seperti log, had kadar).
- Pecahkan spesifikasi kepada tugas: Contohnya Tugasan 1: Implement fungsi
fetch_hot_topics()yang mematuhi tandatangan API dalam spec. - Minta AI implement setiap tugasan: Prompt mengandungi tandatangan fungsi, ulasan, jangkaan kes ujian.
- Semak dan sahkan secara manual: Pastikan mematuhi spesifikasi, jalankan ujian unit.
- Integrasi dan regresi.
Empat: Perbandingan kelebihan dan kekurangan
| Ciri | Vibe Coding | Spec Coding |
|---|---|---|
| Kelajuan permulaan | Sangat pantas, dapat prototaip dalam beberapa minit | Lambat, perlu tulis dokumen, pecah tugas |
| Kualiti kod | Rendah (mungkin berlebihan, tidak konsisten, bug tersembunyi) | Tinggi (boleh dibaca, boleh diuji, mengikut seni bina) |
| Kebolehselenggaraan | Lemah, orang lain tidak faham "kenapa ditulis begini" | Baik, spesifikasi adalah dokumen |
| Kebergantungan pada LLM | Sangat tinggi, model berbeza boleh hasilkan output yang berbeza sama sekali | Sederhana, asalkan spesifikasi jelas, model berbeza boleh hasilkan struktur yang serupa |
| Kesukaran penyahpepijatan | Sukar, tidak tahu dari mana logik kod itu datang | Mudah, periksa mengikut spec satu persatu |
| Sesuai untuk kerjasama pasukan | Hampir mustahil | Boleh (spesifikasi sebagai kontrak komunikasi) |
| Kepastian output | Rendah, hasil setiap perbualan mungkin berubah | Tinggi, spesifikasi yang sama hasilkan output yang stabil |
Lima: Cadangan penggunaan dalam realiti
"Dalam kerja, vibe coding dan spec coding bukan pilihan antara satu sama lain, tetapi digunakan secara campuran, gunakan kaedah yang sesuai untuk senario yang sesuai:
- Semasa fasa penerokaan (apabila pilihan teknikal atau gaya UI belum pasti), gunakan Vibe Coding untuk mengesahkan pelbagai pilihan dengan pantas, contohnya 'Guna Tailwind untuk tulis komponen kad, lihat hasilnya'.
- Sebaik sahaja pilihan ditetapkan, segera beralih kepada Spec Coding: susun semula prototaip yang berjaya menjadi spesifikasi yang jelas (input/output, keadaan sempadan, pengendalian ralat), kemudian minta AI atau manusia tulis semula kod peringkat pengeluaran dengan ketat mengikut spesifikasi.
Mod Vibe semata-mata hanya sesuai untuk skrip sekali guna atau alat dalaman kecil; untuk sistem yang perlu diselenggara jangka panjang dan digunakan oleh ramai orang, Spec Coding adalah keperluan keras."
评论
暂无已展示的评论。
发表评论(匿名)