AI серија интервју 14: Разлика помеѓу vibe coding и spec coding?
Ова е проблем со кој се соочуваат повеќето програмери. Vibe Coding и Spec Coding се две сосема различни работни парадигми при програмирање со помош на голем јазичен модел (LLM). Нивната основна разлика е: дали „влезот“ што му го давате на AI е нејасно чувство или прецизна спецификација.
1. Едноставен опис на разликата помеѓу vibe coding и spec coding преку пример со готвење
- Vibe Coding = Им кажувате на пријател: „Сакам нешто зачинето“, тој по инстинкт подготвува јадење, вие вкусувате и велите „уште малку сол“, тој додава сол. Вкусот може да биде изненадувачки, но друг пријател би подготвил сосема поинаку.
- Spec Coding = Пишувате рецепт: „20g pixian douban (чили паста), 150g говедско месо, 50g целер, пржење на силен оган 2 минути, додадете 3g шеќер пред да тргнете од оган.“ Различни готвачи следејќи го рецептот ќе добијат сличен вкус.
2. Дефиниции на двете
| Димензија | Vibe Coding | Spec Coding |
|---|---|---|
| Алијас | Програмирање водено од чувство, импровизација со промпти | Програмирање водено од спецификации, документација прво |
| Форма на влез | „Направи ми убава страница за најава, да биде технолошка“ | „Страницата за најава треба да содржи поле за е-пошта/лозинка, поле за запомни ме, копче за испраќање; преден дел користи React + Tailwind; правила за валидација на формулар: формат на е-пошта, должина на лозинка ≥8; при неуспех прикажи црвена порака…“ |
| Начин на користење на AI | Дијалошки, итеративен: дај груба насока → види излез → прилагоди | Инженерски: прво напиши детален PRD/технички спецификации → AI генерира код врз основа на спецификациите |
| Степен на човечко учество | Ниско: зависи од AI да биде креативен, човек само одлучува „дали се чувствува во ред“ | Високо: човек прво го прави дизајнот/архитектурата, AI главно извршува |
| Типични сценарија | Брзо прототипирање, лични алатки, истражување на UI, креативно пишување код | Системи за производство, тимска соработка, код што треба да биде одржлив и тестиран |
3. Споредба на работните текови
Vibe Coding процес
- Нејасна идеја: „Сакам да напишам веб-скрејпер за да ги извлечам најжешките теми на Zhihu.“
- Напиши прв prompt: Директно побарај од AI да генерира код.
- Стартувај → грешка → врати ја грешката назад → AI поправа.
- Чувство дека интерфејсот е грд: „Направи го тоа копче подалеку, позадината да биде градиентна сина“ → AI менува.
- Недостига функција: „Додади функција за зачувување во CSV“ → AI додава.
- Повторувај од 3 до 5 додека „се чувствува приближно готово“.
Spec Coding процес
- Напиши документ со спецификации: Дефинирај влез/излез, структури на податоци, обработка на грешки, барања за перформанси, нефункционални барања (на пр. дневници, ограничување на стапка).
- Подели ги спецификациите на задачи: На пр. задача 1: имплементирај
fetch_hot_topics()функција, следи го API потписот во спецификацијата. - Нека AI го имплементира секоја задача посебно: prompt-от содржи функциски потпис, коментари, очекувани тест случаи.
- Човечка проверка и валидација: Осигурај дека е во согласност со спецификациите, изврши единица тестови.
- Интеграција и регресија.
4. Споредба на предности и недостатоци
| Особина | Vibe Coding | Spec Coding |
|---|---|---|
| Брзина на почеток | Многу брзо, за неколку минути има прототип | Бавно, потребно пишување документација и делење задачи |
| Квалитет на код | Низок (може да биде претерано, неконзистентен, скриени грешки) | Висок (читлив, тестиран, соодветна архитектура) |
| Одржливост | Лоша, подоцнежните соработници не разбираат „зошто е напишано така“ | Добра, спецификациите се документ |
| Зависност од LLM | Многу висока, менувањето модел може да доведе до сосема различен излез | Средна, сè додека спецификациите се јасни, различни модели може да произведат слична структура |
| Тежина на дебагирање | Тешко, се прашуваш од каде доаѓа логиката | Лесно, проверуваш според спецификациите точка по точка |
| Погодност за тимска работа | Речиси невозможно | Да (спецификациите се договор за комуникација) |
| Детерминизам на резултатот | Низок, секој разговор може да доведе до различни резултати | Висок, истите спецификации даваат стабилен излез |
5. Препораки за употреба во реалниот свет
„Во работата, vibe coding и spec coding не се избори што треба да се изберат, туку се користат комбинирано, при што се применува соодветниот пристап во соодветната ситуација:
- Во фазата на истражување (кога не сте сигурни за технолошкиот избор или стилот на UI), користете Vibe Coding за брзо да ги потврдите различните пристапи, на пример: „напиши компонента со картичка користејќи Tailwind за да видам како изгледа“.
- Откако пристапот е дефиниран, веднаш преминете на Spec Coding: претворете го успешниот прототип во јасни спецификации (влез/излез, гранични услови, обработка на грешки), а потоа нека AI или човек строго следејќи ги спецификациите го препише кодот за продукција.
Чистиот Vibe режим е соодветен само за еднократни скрипти или внатрешни мали алатки; за системи што треба долгорочно да се одржуваат и да ги користат повеќе луѓе, Spec Coding е задолжителен.“
评论
暂无已展示的评论。
发表评论(匿名)