← 返回列表

AI поредица интервюта 14: Разлика между vibe coding и spec coding?

Това е проблем, пред който се изправят повечето програмисти. Vibe Coding и Spec Coding са две напълно различни работни парадигми при програмиране с помощта на големи езикови модели (LLM) в момента. Основната разлика между тях е: дали „входът“, който давате на ИИ, е смътно усещане или точна спецификация.


1. Пример с готвене за опростено обяснение на разликата между vibe coding и spec coding

  • Vibe Coding = Казвате на приятел „Искам нещо люто“, той наусет приготвя ястие, вие опитвате и казвате „Малко повече сол“, той добавя сол. Резултатът може да е удивителен, но ако друг приятел го направи, ще бъде съвсем различен.
  • Spec Coding = Пишете рецепта: „20 г пикантна паста Pixian, 150 г говеждо филе, 50 г нарязан целина, запържване на силен огън за 2 минути, добавете 3 г захар преди сервиране.“ Различни готвачи, следвайки рецептата, получават много сходен вкус.

2. Определения на двете

Измерение Vibe Coding Spec Coding
Алтернативно име Програмиране, водено от усещане, импровизация с подкани Програмиране, водено от спецификации, първо документи
Форма на входа „Направи ми красива страница за вход с технологично усещане“ „Страницата за вход трябва да включва поле за имейл/парола, отметка за запомняне, бутон за изпращане; фронтенд използва React + Tailwind; правила за валидация на формуляра: формат на имейл, дължина на парола ≥ 8; при грешка показва червено съобщение…“
Начин на използване на ИИ Диалогов, итеративен: даване на обща посока → гледане на изхода → фина настройка Инженеринг: първо пишете подробен PRD/техническа спецификация → ИИ генерира код според спецификацията
Степен на човешко участие Ниска: разчитане на ИИ за креативност, човекът само преценява „правилно ли е усещането“ Висока: човекът първо завършва дизайна/архитектурата, ИИ основно изпълнява
Типични сценарии Бързо прототипиране, лични инструменти, UI експерименти, креативно кодиране Системи за продукция, екипна работа, код, който трябва да се поддържа/тества

3. Сравнение на работните потоци

Процес на Vibe Coding

  1. Неясна идея: „Искам да напиша скрапър за горещите теми в Zhihu.“
  2. Пишете първия prompt: директно накарайте ИИ да генерира код.
  3. Изпълнение → грешка → върнете грешката обратно → ИИ коригира.
  4. Усещате, че интерфейсът е грозен → „Направи този бутон по-заоблен, фона син градиент“ → ИИ променя.
  5. Липсва функционалност → „Добави опция за запис в CSV“ → ИИ добавя.
  6. Цикъл 3-5, докато „почти готово е“. |

Процес на Spec Coding

  1. Напишете спецификационен документ: ясно дефинирайте вход/изход, структури от данни, обработка на грешки, изисквания за производителност, нефункционални изисквания (напр. логове, ограничаване).
  2. Разделете спецификацията на задачи: например Задача 1: реализирайте функцията fetch_hot_topics(), спазвайки API сигнатурата от спецификацията.
  3. Накарайте ИИ да реализира всяка задача: prompt-ът включва сигнатура на функцията, коментари, очаквани тестови случаи.
  4. Ръчен преглед и валидиране: уверете се, че отговаря на спецификацията, пуснете юнит тестове.
  5. Интеграция и регресия.

4. Сравнение на предимствата и недостатъците

Характеристика Vibe Coding Spec Coding
Скорост на започване Много бързо, прототип за минути Бавно, трябва да пишете документи, разделяте задачи
Качество на кода Ниско (възможно излишък, непоследователност, скрити бъгове) Високо (четим, тестваем, съобразен с архитектура)
Поддръжка Лоша, по-късните разработчици не разбират „защо е написано така“ Добра, спецификацията е документация
Зависимост от LLM Много висока, смяната на модела може да доведе до напълно различен изход Средна, ако спецификацията е ясна, различни модели могат да произведат подобна структура
Трудност при дебъгване Трудно, не знаете откъде идва логиката Лесно, проверявайте точка по точка според спецификацията
Подходящ за екипна работа Почти невъзможно Възможно (спецификацията като договор за комуникация)
Сигурност на резултата Ниска, резултатите от всеки разговор могат да се отклонят Висока, една и съща спецификация дава стабилен резултат

5. Практически препоръки

„В работата vibe coding и spec coding не се избират едно от друго, а се използват смесено, като се прилага подходящият подход за подходящия сценарий:
- В фазата на проучване (когато не сте сигурни за технологичния избор или UI стила), използвайте Vibe Coding за бързо валидиране на различни варианти, например „Напиши компонент за карта с Tailwind, за да видя как изглежда“.
- След като вариантът е определен, веднага преминете към Spec Coding: обратно систематизирайте успешния прототип в ясна спецификация (вход/изход, гранични условия, обработка на грешки), след което накарайте ИИ или човек да пренапише производствен код стриктно според спецификацията.
Чистият Vibe режим е подходящ само за еднократни скриптове или вътрешни инструменти; за системи, които ще се поддържат дългосрочно и ще се използват от много хора, Spec Coding е твърдо изискване.“

评论

暂无已展示的评论。

发表评论(匿名)