← 返回列表

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

  1. Malabong ideya: 'Gusto kong magsulat ng web scraper para kunin ang trending topics sa Zhihu.'
  2. Isulat ang unang prompt: Direktang papuntahin ang AI na bumuo ng code.
  3. Patakbuhin → may error → idikit ang error → babaguhin ng AI.
  4. Pakiramdam na pangit ang interface → 'Papabilugin nang kaunti ang button, palitan ang background ng gradient blue' → babaguhin ng AI.
  5. Kulang ang feature → 'Magdagdag ng feature na mag-save sa CSV' → idadagdag ng AI.
  6. Ulitin ang 3-5 hanggang 'parang okay na'.

Daloy ng Spec Coding

  1. Sumulat ng specification document: Tukuyin ang input/output, data structure, error handling, performance requirements, non-functional requirements (tulad ng logging, rate limiting).
  2. 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.
  3. Patuparin ang AI task per task: Kasama sa prompt ang function signature, comments, at inaasahang test cases.
  4. Manual na review at validation: Tiyaking sumusunod sa detalye, patakbuhin ang unit tests.
  5. 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."

评论

暂无已展示的评论。

发表评论(匿名)