← 返回列表

AI сұхбаттар сериясы 14: vibe coding және spec coding айырмашылығы?

Бұл көптеген бағдарламашылар кездесетін мәселе. Vibe Coding және Spec Coding - бұл үлкен тілдік модельдерді (LLM) пайдаланып бағдарламалау кезіндегі екі мүлдем басқа жұмыс парадигмалары. Олардың негізгі айырмашылығы: сіз AI-ге беретін «енгізу» - бұл анық емес сезім бе, әлде дәл спецификация ма?


1. Ас пісіру мысалында vibe coding және spec coding айырмашылығын қарапайым түсіндіру

  • Vibe Coding = Сіз досыңызға «Мен ащы тағам жегім келеді» дейсіз, досыңыз сезімімен бір табақ тағам пісіреді, сіз бір тістеп алып «Тұзы аз» дейсіз, ол тағы тұз қосады. Дәмі керемет болуы мүмкін, бірақ басқа дос пісірсе мүлдем басқаша шығады.
  • Spec Coding = Сіз рецепт жазасыз: «Писян тұздығы 20г, сиыр еті 150г, балдырсап 50г, отты қыздырып 2 минут қуырыңыз, оттан алмас бұрын 3г қант қосыңыз». Әртүрлі аспаздар рецепт бойынша пісірсе, дәмі бірдей болады.

2. Екеуінің анықтамасы

Өлшем Vibe Coding Spec Coding
Басқа атауы сезімге негізделген бағдарламалау, импровизациялық үндеулар спецификацияға негізделген бағдарламалау, құжаттама бірінші
Енгізу формасы «Маған әдемі кіру бетін жаса, технологиялық сезім болсын» «Кіру бетінде электрондық пошта/пароль енгізу өрістері, «Мені есте сақта» жалаушасы, жіберу батырмасы болуы керек; фронтенд React + Tailwind; форма тексеру ережелері: электрондық пошта пішімі, пароль ұзындығы ≥8; сәтсіз болғанда қызыл ескерту көрсету...»
Қолдану тәсілі диалогтық, итеративті: жалпы бағыт беру → нәтижені қарау → қайта түзету инженерлік: алдымен егжей-тегжейлі 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() функциясын жүзеге асыру, spec-тегі 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 міндетті талап болып табылады.»

评论

暂无已展示的评论。

发表评论(匿名)