AI Series Interview 14: Ano ang pagkakaiba ng vibe coding at spec coding?
Ito ay problemang kinakaharap ng karamihan sa mga programmer. Vibe Coding at Spec Coding ay dalawang magkaibang paradigma sa pagprograma gamit ang malaking modelo ng wika (LLM) sa kasalukuyan. Ang kanilang pangunahing pagkakaiba ay: ang 'input' na ibinibigay mo sa AI ay isang malabong pakiramdam o isang eksaktong detalye.
Una: Gamit ang pagluluto bilang halimbawa upang ilarawan ang pagkakaiba ng vibe coding at spec coding
- Vibe Coding = Sinasabi mo sa kaibigan mo na 'Gusto kong kumain ng maanghang,' at ang kaibigan ay nagluluto ng isang putahe batay sa kanyang pakiramdam. Tikman mo at sabihin 'Dagdagan ng asin,' at dinagdagan niya. Maaaring masarap, ngunit kung ibang kaibigan ang magluluto, ibang-iba ang resulta.
- Spec Coding = Sumulat ka ng recipe: 'Pixian douban 20g, beef slices 150g, celery segments 50g, high heat stir-fry for 2 minutes, magdagdag ng 3g asukal bago alisin sa kawali.' Iba't ibang chef na sumusunod sa recipe ay magkakaroon ng pare-parehong lasa.
Dalawa: Kahulugan ng Dalawa
| Aspekto | Vibe Coding | Spec Coding |
|---|---|---|
| Ibang pangalan | Pakiramdam-driven na programming, prompt improvisasyon | Specification-driven na programming, dokumento muna |
| Anyong input | 'Gumawa ka ng magandang login page na may techy na pakiramdam' | 'Ang login page ay dapat may email/password input field, checkbox para sa "Remember Me", submit button; frontend gamit ang React + Tailwind; mga panuntunan sa pag-validate ng form: format ng email, haba ng password ≥8; kung mabigo, magpakita ng pulang mensahe...' |
| Paraan ng paggamit ng AI | Dialog-based, iterative: magbigay ng pangkalahatang direksyon → tingnan ang output → ayusin | Engineering: isulat muna ang detalyadong PRD/teknikal na detalye → ang AI ay bubuo ng code batay sa detalye |
| Pakikilahok ng tao | Mababa: umaasa sa AI para sa creativity, ang tao ay responsable lang sa 'tama ba ang pakiramdam' | Mataas: ang tao ay gumagawa muna ng disenyo/arkitektura, ang AI ay pangunahing tagapagpatupad |
| Karaniwang sitwasyon | Mabilis na prototype, personal na tool, UI exploration, malikhaing pagsusulat ng code | Production-level system, team collaboration, code na nangangailangan ng maintainability at testability |
Tatlo: Paghahambing ng workflow ng dalawa
Daloy ng Vibe Coding
- Malabong ideya: 'Gusto kong magsulat ng web scraper para kunin ang trending topics sa Zhihu.'
- Isulat ang unang prompt: Direktang papuntahin ang AI na bumuo ng code.
- Patakbuhin → may error → idikit ang error → babaguhin ng AI.
- Pakiramdam na pangit ang interface → 'Papabilugin nang kaunti ang button, palitan ang background ng gradient blue' → babaguhin ng AI.
- Kulang ang feature → 'Magdagdag ng feature na mag-save sa CSV' → idadagdag ng AI.
- Ulitin ang 3-5 hanggang 'parang okay na'.
Daloy ng Spec Coding
- Sumulat ng specification document: Tukuyin ang input/output, data structure, error handling, performance requirements, non-functional requirements (tulad ng logging, rate limiting).
- I-break down ang specification sa mga task: Halimbawa task 1: I-implement ang function na
fetch_hot_topics()na sumusunod sa API signature sa spec. - Patuparin ang AI task per task: Kasama sa prompt ang function signature, comments, at inaasahang test cases.
- Manual na review at validation: Tiyaking sumusunod sa detalye, patakbuhin ang unit tests.
- Integration at regression.
Apat: Paghahambing ng mga kalamangan at kahinaan
| Katangian | Vibe Coding | Spec Coding |
|---|---|---|
| Bilis ng pagsisimula | Napakabilis, minutes may prototype | Mabagal, kailangang magsulat ng dokumento at mag-break down ng tasks |
| Kalidad ng code | Mababa (maaaring redundant, hindi consistent, nakatagong bug) | Mataas (nababasa, natetest, sumusunod sa arkitektura) |
| Maintainability | Mahina, hindi maintindihan ng iba kung bakit ganito ang pagkakasulat | Mabuti, ang specification ay dokumento na |
| Pag-asa sa LLM | Napakataas, pag papalit ng modelo ay maaaring magkaiba ang output | Katamtaman, basta malinaw ang specification, kahit ibang modelo ay makakagawa ng katulad na structure |
| Kahirapan sa debugging | Mahirap, hindi alam kung saan nanggaling ang logic | Madali, tingnan ang spec item by item |
| Angkop para sa team collaboration | Halos imposible | Oo (ang spec ay kontrata ng komunikasyon) |
| Katiyakan ng output | Mababa, bawat conversation ay maaaring mag-drift | Mataas, parehong spec ay nagbibigay ng stable na output |
Lima: Mga rekomendasyon sa praktikal na paggamit
"Sa trabaho, hindi pipiliin ang isa sa vibe coding at spec coding, kundi ginagamit ang dalawang kombinasyon, gamit ang angkop na paraan sa angkop na sitwasyon:
- Sa exploration phase (kapag hindi tiyak ang technology stack o UI style), gamitin ang Vibe Coding upang mabilis na i-validate ang iba't ibang solusyon, halimbawa 'gumamit ng Tailwind para gumawa ng isang card component at tingnan ang epekto.'
- Kapag napagdesisyunan na ang solusyon, agad na lumipat sa Spec Coding: i-reverse engineer ang matagumpay na prototype sa malinaw na detalye (input/output, boundary conditions, error handling), at pagkatapos ay ipagawa sa AI o mano-manong sumulat ng production-level code na mahigpit na sumusunod sa spec.
Ang pure Vibe mode ay angkop lamang para sa one-time scripts o internal na maliliit na tool; para sa mga sistemang pangmatagalang maintain at maraming gumagamit, ang Spec Coding ay isang matinding pangangailangan."
评论
暂无已展示的评论。
发表评论(匿名)