AI အင်တာဗျူးစီးရီး ၁၅: Vibe Coding ၏ အဖြစ်များသော အန္တရာယ်များ
Vibe Coding ၏ "ခံစားချက်/လှုံ့ဆော်မှု" မောင်းနှင်သည့် ပုံစံသည် လျင်မြန်သော ပရောတိုက်ပုံစံနှင့် တီထွင်ဖန်တီးမှု စူးစမ်းရှာဖွေရာတွင် ပျော်စရာကောင်းသော်လည်း ထိန်းချုပ်မှုမရှိပါက ပုံမှန်အန္တရာယ်များစွာသို့ ကျရောက်နိုင်သည်။ အောက်တွင် ကုဒ်အရည်အသွေး၊ ထိန်းသိမ်းနိုင်မှု၊ လုံခြုံရေး၊ လိုအပ်ချက်ပြောင်းလဲမှု၊ အဖွဲ့လိုက်ပူးပေါင်းဆောင်ရွက်မှု ဟူသော အတိုင်းအတာငါးခုမှ အကျဉ်းချုပ်ဖော်ပြထားသည်။
တစ်၊ ကုဒ်အရည်အသွေး အန္တရာယ်
Vibe Coding သည် စကားဝိုင်းပုံစံ ထပ်ခါထပ်ခါပြုလုပ်ခြင်းအပေါ် မှီခိုသောကြောင့် သုံးစွဲသူတစ်ဦးက မရှင်းလင်းသော ပြင်ဆင်မှုတောင်းဆိုချက်များ (ဥပမာ "ဤခလုတ်ကို ပိုမိုနည်းပညာဆန်သောခံစားမှုဖြစ်စေပါ") ပေးသောအခါ AI သည် မူလလော့ဂ်ကို ပြန်လည်စီစဉ်ခြင်းထက် ကုဒ်အသစ်ထပ်ထည့်ရန် လေ့ရှိသည်။ မည်သည့်ကုဒ်ဟောင်းများ အလုပ်မလုပ်တော့သည်ကို ၎င်းမသိနိုင်၊ ဖျက်ရန်လည်း မရဲဝံ့သောကြောင့် ထပ်နေသော၊ သေနေသောကုဒ်များ စုပုံလာသည်။ တစ်ချိန်တည်းတွင် AI တွင် တစ်ပြေးညီသော "ကုဒ်စတိုင် မှတ်ဉာဏ်" မရှိသောကြောင့် ထုတ်လုပ်မှုတစ်ခုစီသည် မတူညီသော အမည်ပေးခြင်းအလေ့အထများ (လေ့ကျင့်ရေးဒေတာ၏ ကျပန်းဖြစ်မှုပေါ်မူတည်၍) ကိုလိုက်နာနိုင်ပြီး သုံးစွဲသူအနေဖြင့် ရှင်းလင်းသော စည်းမျဉ်းကန့်သတ်ချက်များ မပေးလေ့ရှိသောကြောင့် နောက်ဆုံးကုဒ်သည် ရှုပ်ထွေးပြီး ခန့်မှန်းရခက်လာသည်။ အောက်ပါအတိုင်း အကျဉ်းချုပ်နိုင်သည်-
- ထပ်နေသောနှင့် သေနေသောကုဒ် - အကြိမ်ကြိမ် ပြုပြင်ပြီးနောက် AI သည် ဟောင်းနွမ်းသော အကောင်အထည်ဖော်မှုများ၊ မှတ်ချက်ဖြုတ်ထားသော ကုဒ်တုံးများ၊ အသုံးမပြုသော import များကို ချန်ထားခဲ့သည်၊ အကြောင်းမှာ ဖျက်ပစ်ခြင်းသည် အန္တရာယ်များသောကြောင့် ၎င်းသည် ထိန်းသိမ်းထားရန် ရွေးချယ်သည်။
- မကိုက်ညီသော အမည်ပေးခြင်းနှင့် စတိုင် - AI သည် မတူညီသော အကြိမ်များတွင် လေ့ကျင့်ရေးဒေတာမှ ကျပန်းစတိုင်များကို ထုတ်ယူသည်၊ သုံးစွဲသူအနေဖြင့် စည်းမျဉ်းများကို အတင်းအကျပ်မလုပ်ပါက camelCase၊ underscore၊ space များ ရောနှောသုံးစွဲလာနိုင်သည်။
- ဝှက်ထားသော ယုတ္တိအမှားများ - AI သည် "ပုံမှန်လမ်းကြောင်း" မှန်ကန်သော ကုဒ်ကို ထုတ်လုပ်ရန် လေ့ရှိသော်လည်း နယ်နိမိတ်အခြေအနေများ (null တန်ဖိုး၊ အလွန်အမင်းတန်ဖိုး၊ concurrent) ကို မကြာခဏ လျစ်လျူရှုသည်၊ အကြောင်းမှာ လေ့ကျင့်ရေးဒေတာတွင် ဤကဲ့သို့သော နမူနာများ နည်းပါးသောကြောင့်ဖြစ်သည်။
နှစ်၊ ထိန်းသိမ်းနိုင်မှု အန္တရာယ်
Vibe Coding ၏ ထပ်ခါထပ်ခါပြုလုပ်မှုအမြန်နှုန်းသည် အလွန်မြန်ဆန်သောကြောင့် သုံးစွဲသူနှင့် AI နှစ်ဦးစလုံးသည် "လက်ရှိလုပ်ဆောင်ချက် အလုပ်လုပ်ခြင်း ရှိ/မရှိ" ကိုသာ အာရုံစိုက်ကြပြီး စာရွက်စာတမ်း၊ မှတ်ချက်ရေးခြင်း သို့မဟုတ် ပြန်လည်စီစဉ်ခြင်းအတွက် အချိန်မရှိသလောက်ဖြစ်သည်။ AI တွင် ရေရှည်မှတ်ဉာဏ်မရှိသောကြောင့် function များအတွက် docstring ကို တက်ကြွစွာထည့်သွင်းမည်မဟုတ်သလို နောက်လက်ဆင့်ကမ်းမည့် developer ကိုလည်း ထည့်သွင်းစဉ်းစားမည်မဟုတ်ပါ။ ထို့အပြင် AI သည် "လက်ရှိလိုအပ်ချက်ကို ဖြေရှင်းရန်" လေ့ရှိပြီး ယေဘုယျ framework တစ်ခုကို over-design လုပ်ခြင်း (သုံးစွဲသူ နောက်ပိုင်းတွင် လိုအပ်လိမ့်မည်ဟု ထင်မှတ်၍) သို့မဟုတ် လျင်မြန်စွာ အကောင်အထည်ဖော်ရန် copy-paste ပြုလုပ်ခြင်းတို့ကြောင့် abstraction အဆင့်များ ရှုပ်ထွေးလာသည်။ အောက်ပါအတိုင်း အကျဉ်းချုပ်နိုင်သည်-
- စာရွက်စာတမ်းနှင့် မှတ်ချက်များ မရှိခြင်း - AI သည် ပုံမှန်အားဖြင့် "မိမိကိုယ်ကိုရှင်းပြသော" ကုဒ်ကို ထုတ်လုပ်သော်လည်း အမှန်တကယ် ရှုပ်ထွေးသော regex သို့မဟုတ် algorithm များကို နားလည်ရန်ခက်ခဲသည်။ သုံးစွဲသူက တောင်းဆိုခြင်းမရှိပါက ၎င်းသည် စာရွက်စာတမ်းရေးမည်မဟုတ်ပါ။
- အလွန်အကျွံ abstraction သို့မဟုတ် abstraction မလုံလောက်ခြင်း - AI သည် တစ်ခါတစ်ရံတွင် ရိုးရှင်းသောပြဿနာများအတွက်ပင် သာမာန် design pattern များ (ဥပမာ Factory, Strategy) ကို အသုံးပြုသည်။ တစ်ခါတစ်ရံတွင် ဘုံ function ကို ထုတ်ယူရန် ပျင်းရိသောကြောင့် ကုဒ်တုံးများကို တိုက်ရိုက် copy လုပ်သည်။
သုံး၊ လုံခြုံရေး အန္တရာယ်
AI ၏ လေ့ကျင့်ရေးဒေတာတွင် open source ကုဒ်များစွာပါဝင်ပြီး ၎င်းတို့တွင် သမိုင်းဝင် အားနည်းချက်များ (ဥပမာ SQL concatenation, hardcoded keys) မပါဝင်တော့ပေ။ Vibe Coding တွင် သုံးစွဲသူအနေဖြင့် "parameterized query ကိုသုံးပါ" သို့မဟုတ် "environment variable မှ key ကိုဖတ်ပါ" ဟု တက်ကြွစွာတောင်းဆိုခဲသောကြောင့် AI သည် အသုံးအများဆုံး (မကြာခဏ မလုံခြုံသော) ပုံစံကို ကျင့်သုံးလိမ့်မည်။ ထို့အပြင် AI တွင် "ခြိမ်းခြောက်မှုပုံစံ" အသိစိတ်မရှိသောကြောင့် input filtering, အခွင့်ထူးအနည်းဆုံး စသည်တို့ကို တက်ကြွစွာစစ်ဆေးမည်မဟုတ်ပါ၊ ၎င်းသည် လုပ်ဆောင်ချက်အကောင်အထည်ဖော်မှုကိုသာ ဂရုစိုက်သည်။ အောက်ပါအတိုင်း အကျဉ်းချုပ်နိုင်သည်-
- Injection အားနည်းချက် - AI သည် ပုံမှန်အားဖြင့် string concatenation ကိုသုံး၍ SQL/command များကို တည်ဆောက်သည်၊ အကြောင်းမှာ ဤနည်းလမ်းသည် ရိုးရှင်းသော သင်ခန်းစာများတွင် အသုံးအများဆုံးဖြစ်သောကြောင့်ဖြစ်သည်။
- အရေးကြီးသောအချက်အလက်များကို hardcode လုပ်ခြင်း - လေ့ကျင့်ရေးနမူနာများတွင် API Key ကို မကြာခဏ တိုက်ရိုက်ရေးသားထားသောကြောင့် AI သည် ဤပုံစံကို အတုယူလိမ့်မည်။
- အခွင့်ထူးလွန်ကဲခြင်း - AI သည် အဆင်ပြေစေရန်အတွက်
sudoသို့မဟုတ်w+မုဒ်ကို မကြာခဏသုံး၍ ဖိုင်များကိုဖွင့်ပြီး အနည်းဆုံးလိုအပ်သောအခွင့်ထူးကို ထည့်မစဉ်းစားပါ။
လေး၊ လိုအပ်ချက်ပြောင်းလဲမှု အန္တရာယ်
Vibe Coding တွင် ရှင်းလင်းသော နယ်နိမိတ်မရှိပါ။ သုံးစွဲသူက "နောက်ထပ်လုပ်ဆောင်ချက်တစ်ခု ထည့်ပါ" ဟုပြောလျှင် AI သည် တတ်နိုင်သမျှ ဖြည့်ဆည်းပေးမည်ဖြစ်သော်လည်း "နယ်ပယ်ပြင်ပ" ဆိုသည်ကို မသိပါ။ AI တွင် ဦးစားပေးအဆင့်သတ်မှတ်ချက်လည်းမရှိသောကြောင့် တစ်ပြိုင်နက် ထပ်တိုးလုပ်ဆောင်ချက်သုံးခုကို အကောင်အထည်ဖော်နိုင်ပြီး အဓိကလုပ်ဆောင်ချက်ကို ဖုံးလွှမ်းသွားစေနိုင်သည်။ တစ်ချိန်တည်းတွင် bug အသစ်တစ်ခုကို ပြုပြင်သည့်အခါ AI သည် လုပ်ဆောင်ချက်ဟောင်းများကို ပြန်လည်သုံးသပ်မည်မဟုတ်သောကြောင့် A ကိုပြုပြင်ပြီး B ကိုပျက်စီးစေသည့် regression ပြဿနာများ မကြာခဏဖြစ်ပေါ်သည်။ အောက်ပါအတိုင်း အကျဉ်းချုပ်နိုင်သည်-
- နယ်ပယ်ပျံ့နှံ့ခြင်း - AI သည် "သုံးစွဲသူကိုကျေနပ်စေရန်" အတွက် ဆက်စပ်ပုံပေါ်သော်လည်း မလိုအပ်သော လုပ်ဆောင်ချက်များ (ဥပမာ ဂဏန်းတွက်စက်တွင် မှတ်တမ်းထည့်ခြင်း) ကို တက်ကြွစွာထည့်သွင်းသည်။
- လုပ်ဆောင်ချက်ပျက်စီးခြင်း - AI သည် bug တစ်ခုကို ပြုပြင်ရာတွင် ကမ္ဘာ့အဆင့်ယုတ္တိကို နားမလည်သောကြောင့် ဘုံ function တစ်ခုကို ပြုပြင်မိပြီး ၎င်းအပေါ်မှီခိုသော အခြားလုပ်ဆောင်ချက်များ ပုံမှန်မဟုတ်တော့ပါ။
ငါး၊ အဖွဲ့လိုက်ပူးပေါင်းဆောင်ရွက်မှု အန္တရာယ်
Vibe Coding ၏ စကားဝိုင်းလုပ်ငန်းစဉ်သည် တစ်ဦးချင်းနှင့် AI အကြား သီးသန့်အပြန်အလှန်ဆက်သွယ်မှု ဖြစ်ပြီး လွှဲပြောင်းနိုင်သော သတ်မှတ်ချက်စာရွက်စာတမ်း သို့မဟုတ် ဒီဇိုင်းဆုံးဖြတ်ချက်မှတ်တမ်းများ မကျန်ရစ်ပါ။ အဖွဲ့ဝင်များသည် AI နှင့် သီးခြားစီ စကားပြောကြသောကြောင့် မိမိတို့၏ ကိုယ်ပိုင်စတိုင်ဖြင့် ကုဒ်များရရှိပြီး ပေါင်းစည်းသည့်အခါ ပဋိပက္ခများစွာဖြစ်ပေါ်သည်။ ထို့အပြင် AI သည် commit message သို့မဟုတ် ပြောင်းလဲမှုမှတ်တမ်းကို အလိုအလျောက်ထုတ်လုပ်မည်မဟုတ်သောကြောင့် ကုဒ်ပြောင်းလဲမှု၏ အကြောင်းရင်းများ ပျောက်ဆုံးသွားပြီး နောက်ပိုင်းထိန်းသိမ်းသူများသည် ခန့်မှန်းရုံသာ လုပ်နိုင်တော့သည်။ အောက်ပါအတိုင်း အကျဉ်းချုပ်နိုင်သည်-
- ပြန်လည်ထုတ်လုပ်နိုင်သော တည်ဆောက်မှု မရှိခြင်း - မတူညီသောသူများ၊ မတူညီသောအချိန်များတွင် တူညီသော prompt ကိုသုံးလျှင်ပင် AI သည် မတူညီသောအကောင်အထည်ဖော်မှုများကို ထုတ်လုပ်သည် (sampling randomness ကြောင့်)။
- ပြောင်းလဲမှုခြေရာခံခြင်း မရှိခြင်း - ဒီဇိုင်းစာရွက်စာတမ်း မရှိ၊ "ဘာကြောင့်ဤသို့ပြောင်းလဲခဲ့သည်" ကိုရှင်းပြသော commit message မရှိသောကြောင့် ကုဒ်သည် black box ဖြစ်လာသည်။
评论
暂无已展示的评论。
发表评论(匿名)