AI հարցազրույցների շարք 15. Vibe Coding-ի տարածված ծուղակները ո՞րն են:
Vibe Coding-ի «զգացողություն/մթնոլորտ» վարման եղանակը, թեև արագ նախատիպերի և ստեղծարար հետազոտությունների ժամանակ շատ հաճելի է, բայց առանց վերահսկողության կարող է հեշտությամբ ընկնել մի քանի բնորոշ ծուղակների մեջ:
Ստորև ամփոփում ենք կոդի որակի, պահպանելիության, անվտանգության, պահանջների էվոլյուցիայի, թիմային համագործակցության հինգ հարթություններից
1. Կոդի որակի ծուղակներ
Քանի որ Vibe Coding-ը հիմնվում է երկխոսական կրկնությունների վրա, յուրաքանչյուր անգամ, երբ օգտատերը ներկայացնում է անորոշ փոփոխության պահանջ (օրինակ՝ «այս կոճակը դարձրու ավելի տեխնոլոգիական»), AI-ն հակված է ավելացնել նոր կոդ՝ առանց հին տրամաբանությունը վերակառուցելու: Այն չգիտի, թե որ հին կոդերն են արդեն անգործունակ, և չի համարձակվում հեշտությամբ ջնջել, ինչը հանգեցնում է ավելորդ և մեռած կոդի կուտակման: Միևնույն ժամանակ, AI-ն չունի միասնական «կոդի ոճի հիշողություն», յուրաքանչյուր գեներացիա կարող է հետևել տարբեր անվանման սովորությունների (կախված ուսուցման նմուշների պատահականությունից), և օգտատերերը հազվադեպ են տրամադրում հստակ սահմանափակումներ, ինչի արդյունքում վերջնական կոդը դառնում է խառնաշփոթ և դժվար կանխատեսելի: Ամփոփելով.
- Ավելորդ և մեռած կոդ. Բազմաթիվ ուղղումներից հետո AI-ն թողնում է հին իրականացումներ, մեկնաբանված կոդի բլոկներ, չօգտագործված ներմուծումներ, քանի որ ջնջելու ռիսկը մեծ է, այն ընտրում է պահել:
- Անհամապատասխան անվանում և ոճ. AI-ն տարբեր փուլերում պատահականորեն քաղում է ոճեր ուսուցման տվյալներից, եթե օգտատերը չի պարտադրում ստանդարտներ, ապա խառնվում են camelCase, underscore, բացատներ:
- Թաքնված տրամաբանական սխալներ. AI-ն հակված է ստեղծել կոդ, որը ճիշտ է «սովորական ուղիների» համար, բայց սահմանային պայմանները (զրոյական արժեքներ, ծայրահեղ արժեքներ, զուգահեռություն) հաճախ անտեսվում են, քանի որ ուսուցման տվյալներում այդպիսի օրինակները քիչ են:
2. Պահպանելիության ծուղակներ
Vibe Coding-ի կրկնությունների արագությունը շատ մեծ է, օգտատերն ու AI-ն կենտրոնանում են «ներկա ֆունկցիան աշխատո՞ւմ է, թե՞ ոչ» հարցի վրա, և գրեթե ժամանակ չի մնում փաստաթղթեր, մեկնաբանություններ գրելու կամ վերակառուցելու: AI-ն չունի երկարաժամկետ հիշողություն, ինքնաբերաբար ֆունկցիաների համար docstring չի ավելացնում և հաշվի չի առնում հաջորդ մշակողին: Բացի այդ, AI-ն հակված է «լուծել ընթացիկ պահանջը»՝ կա՛մ չափազանց ձևավորել ընդհանուր շրջանակ (կարծելով, որ օգտատերը հետագայում կարիք կունենա), կա՛մ պատճենել-տեղադրել արագ իրականացման համար, ինչը հանգեցնում է աբստրակցիայի մակարդակների խառնաշփոթի: Ամփոփելով.
- Փաստաթղթերի և մեկնաբանությունների պակաս. AI-ն լռելյայն արտադրում է «ինքնաբացատրվող» կոդ, բայց իրականում բարդ ռեգուլյար արտահայտությունները կամ ալգորիթմները դժվար են ընկալվում; եթե օգտատերը չի պահանջում, այն փաստաթղթեր չի գրում:
- Գերաբստրակցիա կամ աբստրակցիայի պակաս. AI-ն երբեմն կիրառում է հայտնի դիզայնի նախշեր (օրինակ՝ Factory, Strategy), նույնիսկ եթե խնդիրը պարզ է; երբեմն էլ, ծուլանալով ընդհանուր ֆունկցիա հանել, ուղղակի պատճենում է կոդի բլոկը:
3. Անվտանգության ծուղակներ
AI-ի ուսուցման տվյալները պարունակում են մեծ քանակությամբ բաց կոդով ծրագրեր, որոնցում կան պատմական խոցելիություններ (օրինակ՝ SQL միացում, կոշտ ծածկագրված բանալիներ): Vibe Coding-ում օգտատերերը հազվադեպ են պահանջում «օգտագործել պարամետրային հարցումներ» կամ «կարդալ բանալիները միջավայրի փոփոխականներից», այնպես որ AI-ն ընդունում է ամենատարածված (և հաճախ անվտանգ չեղող) ձևը: Բացի այդ, AI-ն չունի «սպառնալիքի մոդելի» գիտակցություն, ինքնաբերաբար չի ստուգում մուտքային ֆիլտրումը, թույլտվությունների մինիմալացումը, քանի որ այն մտահոգված է միայն ֆունկցիոնալ իրականացմամբ: Ամփոփելով.
- Ներարկման խոցելիություններ. AI-ն լռելյայն օգտագործում է տողերի միացում SQL/հրամաններ կառուցելու համար, քանի որ այս մեթոդը ամենատարածվածն է պարզ դասընթացներում:
- Զգայուն տեղեկատվության կոշտ ծածկագրում. Ուսուցման նմուշների օրինակները հաճախ կոշտ ծածկագրում են API բանալիները, AI-ն կրկնօրինակում է այս ձևը:
- Գերթույլտվություններ. AI-ն հարմարության համար հաճախ օգտագործում է
sudoկամw+ռեժիմ՝ ֆայլեր բացելու համար՝ առանց հաշվի առնելու նվազագույն անհրաժեշտ թույլտվությունները:
4. Պահանջների էվոլյուցիայի ծուղակներ
Vibe Coding-ը չունի հստակ սահմաններ: Օգտատիրոջ մեկ «ավելացրու մեկ ֆունկցիա» արտահայտությունը, AI-ն կփորձի բավարարել, բայց այն չգիտի, թե ինչ է «սահմաններից դուրս»: AI-ն նաև չունի առաջնահերթության հասկացություն, կարող է միաժամանակ իրականացնել երեք լրացուցիչ հատկություններ, ինչի հետևանքով հիմնական ֆունկցիոնալությունը կարող է կորչել: Միևնույն ժամանակ, ամեն անգամ նոր վրիպակ ուղղելիս AI-ն չի վերանայում հին ֆունկցիաները, հաճախ առաջանում է ռեգրեսիայի խնդիր, երբ A-ն ուղղվում է, բայց B-ն փչանում է: Ամփոփելով.
- Շրջանակի տարածում. AI-ն «օգտատիրոջը գոհացնելու» համար ինքնաբերաբար ավելացնում է թվացյալ համապատասխան, բայց ոչ անհրաժեշտ ֆունկցիաներ (օրինակ՝ հաշվիչին ավելացնել պատմություն):
- Ֆունկցիոնալության վատացում. AI-ն ինչ-որ վրիպակ ուղղելիս, քանի որ չի հասկանում ընդհանուր տրամաբանությունը, փոփոխում է ընդհանուր ֆունկցիա, ինչը հանգեցնում է նրանից կախված այլ ֆունկցիաների անսարքությունների:
5. Թիմային համագործակցության ծուղակներ
Vibe Coding-ի երկխոսության գործընթացը անձնական և AI-ի միջև մասնավոր փոխազդեցություն է, որը չի թողնում փոխանցելի տեխնիկական փաստաթղթեր կամ դիզայնի որոշումների արձանագրություններ: Թիմի տարբեր անդամներ առանձին-առանձին զրուցում են AI-ի հետ և ստանում են կոդի իրենց ոճերը, որոնք միաձուլելիս առաջանում են բազմաթիվ հակասություններ: Բացի այդ, AI-ն ինքնաբերաբար չի ստեղծում commit message կամ փոփոխությունների մատյան, կոդի էվոլյուցիայի պատճառները կորչում են, և հետագա սպասարկողները ստիպված են գուշակել: Ամփոփելով.
- Չվերարտադրվող կառուցում. Տարբեր մարդիկ, տարբեր ժամանակներում օգտագործելով նույն prompt-ը, AI-ն տալիս է տարբեր իրականացումներ (ընտրանքի պատահականության պատճառով):
- Փոփոխությունների հետևելու բացակայություն. Չկան դիզայնի փաստաթղթեր, չկա commit message, որը բացատրում է «ինչու է այս փոփոխությունն արված», կոդը դառնում է սև արկղ:
评论
暂无已展示的评论。
发表评论(匿名)