← 返回列表

AI série rozhovorů 14: Rozdíl mezi vibe coding a spec coding?

Toto je problém, kterému čelí většina programátorů. Vibe Coding a Spec Coding jsou dvě zcela odlišné pracovní paradigmata při programování s pomocí velkých jazykových modelů (LLM). Jejich základní rozdíl spočívá v tom: zda je „vstup“, který dáváte AI, vágní pocit, nebo přesná specifikace.


I. Na příkladu vaření jednoduše popišme rozdíl mezi vibe coding a spec coding

  • Vibe Coding = Řeknete příteli: „Chci něco pikantního.“ Přítel podle pocitu uvaří jídlo. Ochutnáte a řeknete: „Ještě trochu slanější.“ On přidá sůl. Chuť může být úžasná, ale jiný přítel by uvařil úplně jinak.
  • Spec Coding = Napíšete recept: „20g Pixian doubanjiang (fermentovaná chilli pasta), 150g hovězího plátku, 50g celeru nakrájeného na kousky, rychle osmahnout na vysokém ohni 2 minuty, před odstavením přidat 3g cukru.“ Různí kuchaři podle receptu uvaří jídlo s velmi podobnou chutí.

II. Definice obou

Dimenze Vibe Coding Spec Coding
Jiný název Pocitově řízené programování, improvizace na základě promptu Specifikací řízené programování, dokumentace na prvním místě
Forma vstupu „Udělej mi hezkou přihlašovací stránku, ať vypadá technologicky.“ „Přihlašovací stránka musí obsahovat pole pro e-mail/heslo, zaškrtávací políčko ‚Zapamatovat si mě‘, tlačítko pro odeslání; frontend používej React + Tailwind; pravidla validace formuláře: formát e-mailu, délka hesla ≥8; při neúspěchu zobraz červenou zprávu…“
Způsob použití AI Konverzační, iterativní: zadáte přibližný směr → podíváte se na výstup → upravíte Inženýrský: nejprve napište podrobné PRD/technickou specifikaci → AI generuje kód na základě specifikace
Míra zapojení člověka Nízká: spoléhá na kreativitu AI, člověk jen posuzuje „jestli to vypadá dobře“ Vysoká: člověk nejprve dokončí návrh/architekturu, AI převážně vykonává
Typické scénáře Rychlé prototypy, osobní nástroje, průzkum UI, kreativní kódování Produkční systémy, týmová spolupráce, kód vyžadující udržovatelnost/testovatelnost

III. Porovnání pracovních postupů obou

Postup Vibe Coding

  1. Neurčitý nápad: „Chci napsat scraper na horká témata Zhihu.“
  2. Napsání prvního promptu: Nechat AI rovnou vygenerovat kód.
  3. Spuštění → chyba → vložení chyby zpět → AI opraví.
  4. Cítíte, že UI je ošklivé → „Udělej to tlačítko kulatější, pozadí změň na modrý gradient“ → AI upraví.
  5. Chybí funkce → „Přidej funkci pro uložení do CSV“ → AI přidá.
  6. Opakujte kroky 3-5, dokud nemáte pocit, že je to „hotové“.

Postup Spec Coding

  1. Napište specifikační dokument: Jasně definujte vstupy/výstupy, datové struktury, ošetření chyb, výkonnostní požadavky, nefunkční požadavky (např. logování, rate limiting).
  2. Rozdělte specifikaci na úkoly: Např. úkol 1: Implementujte funkci fetch_hot_topics(), dodržujte API signaturu ze specifikace.
  3. Nechte AI implementovat úkol po úkolu: Prompt obsahuje signaturu funkce, komentáře, očekávané testovací případy.
  4. Lidská kontrola a ověření: Ujistěte se, že odpovídá specifikaci, spusťte unit testy.
  5. Integrace a regrese.

IV. Porovnání výhod a nevýhod

Vlastnost Vibe Coding Spec Coding
Rychlost nasazení Velmi rychlá, prototyp za pár minut Pomalá, vyžaduje psaní dokumentace, rozdělení úkolů
Kvalita kódu Nízká (může být redundantní, nekonzistentní, skryté chyby) Vysoká (čitelný, testovatelný, odpovídá architektuře)
Udržovatelnost Špatná, pozdější vývojáři nechápou „proč je to napsáno tak“ Dobrá, specifikace slouží jako dokumentace
Závislost na LLM Velmi vysoká, změna modelu může vést k úplně jinému výstupu Střední, pokud je specifikace jasná, různé modely produkují podobnou strukturu
Obtížnost ladění Obtížné, nevíte, odkud logika pochází Snadné, kontrolujte podle specifikace bod po bodu
Vhodnost pro týmovou spolupráci Téměř nemožné Možné (specifikace jako komunikační kontrakt)
Determinismus výstupu Nízký, výsledky se mohou při každé konverzaci lišit Vysoký, stejná specifikace vytváří stabilní výstup

V. Praktické rady pro použití v reálném světě

„V práci si nevybíráme mezi vibe coding a spec coding, ale používáme je smíšeně a vhodnou metodu volíme podle situace:
- V průzkumné fázi (když si nejste jisti technologickým výběrem nebo stylem UI) použijte Vibe Coding k rychlému ověření různých možností, například „Napiš komponentu karty pomocí Tailwindu, ať vidím, jak vypadá.“
- Jakmile je rozhodnuto, okamžitě přepněte na Spec Coding: z úspěšného prototypu zpětně vytvořte jasnou specifikaci (vstupy/výstupy, okrajové podmínky, ošetření chyb) a poté nechte AI nebo člověka přepsat produkční kód přesně podle specifikace.

Čistě Vibe režim je vhodný pouze pro jednorázové skripty nebo interní nástroje; pro systémy, které je třeba dlouhodobě udržovat a používat více lidmi, je Spec Coding tvrdým požadavkem.“

评论

暂无已展示的评论。

发表评论(匿名)