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
- Epämääräinen idea: "Haluan kirjoittaa verkkorobotiksi, joka hakee Zhihun suosituimmat."
- Kirjoita ensimmäinen kehote: Pyydä tekoälyä suoraan generoimaan koodi.
- Suorita → virhe → liitä virhe takaisin → AI korjaa.
- Tuntuu että käyttöliittymä on ruma → "Tee nappulasta pyöreämpi, vaihda tausta siniseksi liukuväriksi" → AI muuttaa.
- Toiminto puuttuu → "Lisää tallennus CSV:ään" → AI lisää.
- Toista vaiheita 3-5, kunnes "tuntuu riittävältä".
Spec Coding -prosessi
- Kirjoita määrittelydokumentti: Määritä tulot/lähdöt, tietorakenteet, virheenkäsittely, suorituskykyvaatimukset, toiminnalliset vaatimukset (kuten lokitus, rajoitus).
- Jaa määrittely tehtäviksi: Esimerkiksi tehtävä 1: Toteuta
fetch_hot_topics()-funktio, noudata spec:n API-allekirjoitusta. - Anna AI:n toteuttaa tehtävät yksitellen: Kehote sisältää funktion allekirjoituksen, kommentit ja testitapausten odotukset.
- Ihmisen tarkistus ja validointi: Varmista, että se täyttää määrittelyt, aja yksikkötestit.
- 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."
评论
暂无已展示的评论。
发表评论(匿名)