← 返回列表

AI-sarjan haastattelu 14: Vibe coding ja spec coding - erot?

Tämä on ongelma, jonka useimmat ohjelmoijat kohtaavat. Vibe Coding ja Spec Coding ovat kaksi täysin erilaista työskentelyparadigmaa, joita käytetään nykyään suurten kielimallien (LLM) avulla ohjelmoinnissa. Niiden keskeinen ero on: syötätkö tekoälylle epämääräisen tunnelman vai tarkan määrittelyn.


1. Ruoanlaiton esimerkki: Vibe codingin ja spec codingin erot lyhyesti

  • Vibe Coding = Sanot ystävällesi "Haluan mausteista", ystävä paistaa fiiliksellä annoksen, maistat ja sanot "Lisää suolaa", hän lisää. Maku voi olla loistava, mutta toinen ystävä saisi aikaan täysin erilaisen lopputuloksen.
  • Spec Coding = Kirjoitat reseptin: "Pixian-paputahnaa 20g, naudanlihaviipaleita 150g, sellerinpaloja 50g, paista kovalla lämmöllä 2 minuuttia, lisää ennen tarjoilua sokeria 3g". Eri kokit noudattavat reseptiä, ja maku on hyvin yhdenmukainen.

2. Määritelmät

Ulottuvuus Vibe Coding Spec Coding
Vaihtoehtoiset nimet Tunneohjautuva ohjelmointi, kehotteen improvisointi Määrittelyohjautuva ohjelmointi, dokumentti ensin
Syöttötapa "Tee minulle hieno kirjautumissivu, jossa on teknologiafiilis" "Kirjautumissivun tulee sisältää sähköposti/salasana -syöttökentät, Muista minut -valintaruutu, lähetä-painike; frontend käyttää React + Tailwind; lomakkeen validointisäännöt: sähköpostin muoto, salasanan pituus ≥8; epäonnistuessa näytä punainen ilmoitus..."
Tekoälyn käyttötapa Dialogipohjainen, iteratiivinen: anna suunta → katso tulosta → hienosäädä Tekninen: kirjoita ensin yksityiskohtainen PRD/tekninen määrittely → AI tuottaa koodin määrittelyn perusteella
Ihmisen osallistumisaste Matala: luotetaan siihen, että AI käyttää luovuutta, ihminen vastaa vain "tuntuuko oikealta" Korkea: ihminen tekee ensin suunnittelun/arkkitehtuurin, AI pääasiassa toteuttaa
Tyypilliset skenaariot Nopea prototyyppaus, henkilökohtaiset työkalut, käyttöliittymän tutkiminen, luova koodaus Tuotantotason järjestelmät, tiimiyhteistyö, koodi joka vaatii ylläpidettävyyttä/testattavuutta

3. Työnkulkujen vertailu

Vibe Coding -prosessi

  1. Epämääräinen idea: "Haluan kirjoittaa verkkorobotiksi, joka hakee Zhihun suosituimmat."
  2. Kirjoita ensimmäinen kehote: Pyydä tekoälyä suoraan generoimaan koodi.
  3. Suorita → virhe → liitä virhe takaisin → AI korjaa.
  4. Tuntuu että käyttöliittymä on ruma → "Tee nappulasta pyöreämpi, vaihda tausta siniseksi liukuväriksi" → AI muuttaa.
  5. Toiminto puuttuu → "Lisää tallennus CSV:ään" → AI lisää.
  6. Toista vaiheita 3-5, kunnes "tuntuu riittävältä".

Spec Coding -prosessi

  1. Kirjoita määrittelydokumentti: Määritä tulot/lähdöt, tietorakenteet, virheenkäsittely, suorituskykyvaatimukset, toiminnalliset vaatimukset (kuten lokitus, rajoitus).
  2. Jaa määrittely tehtäviksi: Esimerkiksi tehtävä 1: Toteuta fetch_hot_topics() -funktio, noudata spec:n API-allekirjoitusta.
  3. Anna AI:n toteuttaa tehtävät yksitellen: Kehote sisältää funktion allekirjoituksen, kommentit ja testitapausten odotukset.
  4. Ihmisen tarkistus ja validointi: Varmista, että se täyttää määrittelyt, aja yksikkötestit.
  5. Integrointi ja regressiotestaus.

4. Hyödyt ja haitat vertailussa

Ominaisuus Vibe Coding Spec Coding
Käynnistysnopeus Erittäin nopea, prototyyppi minuuteissa Hidas, vaatii dokumentaation kirjoittamista ja tehtävien jakamista
Koodin laatu Matala (saattaa olla redundanttia, epäjohdonmukaista, piilovirheitä) Korkea (luettavaa, testattavaa, arkkitehtuurin mukaista)
Ylläpidettävyys Huono, myöhemmin ei ymmärretä "miksi näin on kirjoitettu" Hyvä, määrittely on dokumentaatio
Riippuvuus LLM:stä Erittäin korkea, mallin vaihto voi muuttaa tulosta täysin Keskitaso, kunhan määrittely on selkeä, eri mallit tuottavat samankaltaista rakennetta
Virheenkorjauksen vaikeus Vaikeaa, ei tiedetä mistä logiikka tulee Helppoa, tarkasta kohta kohdalta spec:n mukaan
Sopii tiimiyhteistyöhön Lähes mahdotonta Kyllä (spec viestintäsopimuksena)
Tuotoksen varmuus Matala, tulokset voivat vaihdella keskustelusta toiseen Korkea, sama spec tuottaa vakaan tuloksen

5. Käytännön käyttösuositukset

"Työssä ei valita joko vibe codingia tai spec codingia, vaan niitä käytetään sekaisin, käyttäen sopivaa menetelmää kuhunkin tilanteeseen:
- Tutkimusvaiheessa (kun teknologiavalinta tai käyttöliittymätyyli on epävarma), käytä Vibe Codingia arvioidaksesi eri vaihtoehtoja nopeasti, kuten 'kirjoita Tailwindillä korttikomponentti nähdäksesi miltä se näyttää'.
- Kun ratkaisu on vahvistettu, siirry heti Spec Codingiin: käännä onnistunut prototyyppi takaisin selkeäksi määrittelyksi (tulot/lähdöt, reunaehdot, virheenkäsittely) ja anna sitten AI:n tai ihmisen kirjoittaa tuotantotason koodi tarkasti specin mukaan.
Puhdas Vibe-tila sopii vain kertakäyttöisiin skripteihin tai sisäisiin työkaluihin; järjestelmissä, joita ylläpidetään pitkään ja jotka ovat monien käytössä, Spec Coding on välttämätön."

评论

暂无已展示的评论。

发表评论(匿名)