← 返回列表

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 процес

  1. Нејасна идеја: „Сакам да напишам веб-скрејпер за да ги извлечам најжешките теми на Zhihu.“
  2. Напиши прв prompt: Директно побарај од AI да генерира код.
  3. Стартувај → грешка → врати ја грешката назад → AI поправа.
  4. Чувство дека интерфејсот е грд: „Направи го тоа копче подалеку, позадината да биде градиентна сина“ → AI менува.
  5. Недостига функција: „Додади функција за зачувување во CSV“ → AI додава.
  6. Повторувај од 3 до 5 додека „се чувствува приближно готово“.

Spec Coding процес

  1. Напиши документ со спецификации: Дефинирај влез/излез, структури на податоци, обработка на грешки, барања за перформанси, нефункционални барања (на пр. дневници, ограничување на стапка).
  2. Подели ги спецификациите на задачи: На пр. задача 1: имплементирај fetch_hot_topics() функција, следи го API потписот во спецификацијата.
  3. Нека AI го имплементира секоја задача посебно: prompt-от содржи функциски потпис, коментари, очекувани тест случаи.
  4. Човечка проверка и валидација: Осигурај дека е во согласност со спецификациите, изврши единица тестови.
  5. Интеграција и регресија.

4. Споредба на предности и недостатоци

Особина Vibe Coding Spec Coding
Брзина на почеток Многу брзо, за неколку минути има прототип Бавно, потребно пишување документација и делење задачи
Квалитет на код Низок (може да биде претерано, неконзистентен, скриени грешки) Висок (читлив, тестиран, соодветна архитектура)
Одржливост Лоша, подоцнежните соработници не разбираат „зошто е напишано така“ Добра, спецификациите се документ
Зависност од LLM Многу висока, менувањето модел може да доведе до сосема различен излез Средна, сè додека спецификациите се јасни, различни модели може да произведат слична структура
Тежина на дебагирање Тешко, се прашуваш од каде доаѓа логиката Лесно, проверуваш според спецификациите точка по точка
Погодност за тимска работа Речиси невозможно Да (спецификациите се договор за комуникација)
Детерминизам на резултатот Низок, секој разговор може да доведе до различни резултати Висок, истите спецификации даваат стабилен излез

5. Препораки за употреба во реалниот свет

„Во работата, vibe coding и spec coding не се избори што треба да се изберат, туку се користат комбинирано, при што се применува соодветниот пристап во соодветната ситуација:
- Во фазата на истражување (кога не сте сигурни за технолошкиот избор или стилот на UI), користете Vibe Coding за брзо да ги потврдите различните пристапи, на пример: „напиши компонента со картичка користејќи Tailwind за да видам како изгледа“.
- Откако пристапот е дефиниран, веднаш преминете на Spec Coding: претворете го успешниот прототип во јасни спецификации (влез/излез, гранични услови, обработка на грешки), а потоа нека AI или човек строго следејќи ги спецификациите го препише кодот за продукција.
Чистиот Vibe режим е соодветен само за еднократни скрипти или внатрешни мали алатки; за системи што треба долгорочно да се одржуваат и да ги користат повеќе луѓе, Spec Coding е задолжителен.“

评论

暂无已展示的评论。

发表评论(匿名)