သမားရိုးကျ ဆော့ဖ်ဝဲလ်တည်ဆောက်တယ်ဆိုတာ တကယ်တော့ အချိန်တော်တော်များများက၊ အရင်ကရှိပြီးသား ဗဟုသုတတွေ၊ အရင်းအမြစ်တွေကို ပြန်ပြန်သုံးပြီး အသစ်တွေဖန်တီးတာပါ။
Developer တွေအနေနဲ့ REST API တစ်ခုဆောက်တာပဲဖြစ်ဖြစ်၊ UI (User Interface) အစိတ်အပိုင်းတစ်ခု ဖန်တီးတာပဲဖြစ်ဖြစ်၊ ဒါမှမဟုတ် build system တစ်ခုပြင်တာပဲဖြစ်ဖြစ်လုပ်ကြတဲ့အခါမှာ React, Laravel, NumPy လို လူတော်တွေ ရေးဆွဲထားပြီးသား library တွေကို ယူသုံးကြတယ်။ ကိုယ်တိုင် JSON parser တစ်ခုကို အစကနေပြန်ရေးနေစရာမလိုတော့သလို၊ HTTP client တစ်ခုကိုလည်း အသစ်ပြန်တီထွင်နေစရာမလိုပါဘူး။
လူအများစုက ဝိုင်းဝန်းတည်ဆောက်ထားကြတဲ့ စစ်ဆေးပြီးသား၊ ယုံကြည်ရတဲ့ အရာတွေကို ယူသုံးလိုက်ကြတာပါပဲ။
Stack Overflow မှာ မေးခွန်းမေးတာတို့၊ GitHub မှာ issue တွေ လိုက်ဖတ်တာတို့ဆိုတာလည်း ကိုယ်တိုင်အစကနေ ပြန်မလုပ်ဘဲ လူအများရဲ့ အတွေ့အကြုံကို ယူသုံးတာပဲ။ ဒါတွေအားလုံးက ရှိပြီးသားအရာတွေကို ပြန်သုံးတဲ့ သဘောတရားတွေပါပဲ။
အခုခေတ်မှာ AI ရဲ့ အကူအညီနဲ့ code ရေးတယ်ဆိုတာကလည်း အဲ့ဒီ ပြန်သုံးတဲ့မူ၊ အသိပညာတွေကို စုစည်းအသုံးချတဲ့မူကို တိုးချဲ့လိုက်တာပါပဲ။
ပိုမြန်တယ်၊ ပိုပြီးတော့ ကိုယ့် Project နဲ့ ဆီလျော်အောင် လုပ်ပေးလာနိုင်တယ်။
Copy-Paste → Comprehension + Coordination
AI တွေက Repository သန်းချီ၊ forum post တွေ၊ documentation တွေ အကုန်လုံးကို "ဖတ်" ထားပြီးသားဆိုတော့၊ အဲ့ဒီအသိပညာတွေ အကုန်ပေါင်းပြီး လိုအပ်တဲ့ code တွေ ထုတ်ပေးနိုင်တာပေါ့။ ဒါကြောင့် ပြန်သုံးရတာ ပိုမြန်၊ ပိုအဆင်ပြေသွားတာပေါ့။ အရင်ကဆို Copy-Paste လုပ်တာ၊ အခုကျတော့ AI ကပဲ နားလည်ပြီး ကိုယ့်ဘာသာကိုယ် ညှိနှိုင်းစီမံပေးလိုက်တာပါပဲ။
အရင်တုန်းကဆို developer တစ်ယောက်က သောကြာနေ့ demo မတိုင်ခင် animation တစ်ခုကို အပြီးထည့်ပေးရမယ်ဆိုရင် "iOS parallax effect animation example" ဆိုပြီး Google မှာ ရှာ၊ ပြီးရင် Stack Overflow မှာ တွေ့တဲ့အဖြေတွေထဲက တစ်ဝက်တစ်ပျက်လောက်ပဲ ပြည့်စုံတဲ့ code snippet ကိုယူ၊ ကိုယ့် project ရဲ့ style နဲ့ ကိုက်အောင် ပြင်ဆင်ပြီး error မရှိအောင်လုပ်။ app မှာ ပြဿနာမဖြစ်ပါစေနဲ့လို့ ဆုတောင်းရင်း နာရီပေါင်းများစွာ အချိန်လုပြီး စမ်းကြရတာပေါ့။
အခုကျတော့ ဘာမှအများကြီးလုပ်စရာမလိုဘဲ ခက်ခဲတဲ့ feature မျိုးကိုတောင်မှပဲ ရိုးရိုးလေးရေးပြီးခိုင်းကြရုံပါပဲ- “ကျွန်တော်တို့ရဲ့ TransactionService နဲ့ AuthInterceptor ကိုသုံးပြီး user role အရစစ်ထုတ်ထားတဲ့ date အလိုက်စီထားတဲ့ transaction data တွေအတွက် paginated REST endpoint တစ်ခု ဒီဇိုင်းလုပ်ပေးပါ” လို့ပြောလိုက်တာနဲ့ စက္ကန့်ပိုင်းအတွင်းမှာပဲ AI က ကိုယ့်ရဲ့ naming convention တွေ၊ codebase structure တွေ၊ dependency တွေကို အကုန်သိပြီးသား working code တစ်ခုကို ထုတ်ပေးလာနိုင်ပါတယ်။ ဒါကို context-aware development လို့ ခေါ်နိုင်တယ်။ AI က အဖြေတစ်ခုတည်း၊ ပုံသေ solution ကြီး မပေးတော့ဘဲ၊ ကိုယ့် project ရဲ့ လက်ရှိအခြေအနေနဲ့ တကယ့်လိုအပ်ချက်နဲ့ ကိုက်ညီတဲ့ အဖြေတွေကို ထုတ်ပေးတာပါပဲ။
ဒီလိုမျိုး Context-aware tool တွေကြောင့် Developer တွေက idea တစ်ခုကနေ working code တစ်ခုအထိကို နာရီတွေအများကြီးမဟုတ်တော့ဘဲ မိနစ်ပိုင်းအတွင်း ရနိုင်တယ်။ အဲဒါကြောင့် စမ်းချင်တာ၊ အသစ်ဖန်တီးချင်တာတွေအတွက်အချိန်တွေပိုထွက်လာပါတယ်။ စာစီစာရိုက်လုပ်ရတဲ့ နေရာမှာ အချိန်မကုန်တော့ဘဲ၊ တကယ့်ပြဿနာဖြေရှင်းဖို့ အတွက် အချိန်ပိုရလာတာက ကောင်းတဲ့ အားသာချက်တွေပါပဲ။
ဒါပေမယ့် AI က ဒီလိုကောင်းတာတွေရှိပေမယ့်၊ ကျွန်တော်တို့ သတိထားရမယ့် အချက်လေးတွေရယ်၊ ကြုံလာနိုင်တဲ့ ပြဿနာလေးတွေတော့ ရှိသေးတာပေါ့။
AI က code တွေ ထုတ်ပေးလိုက်တာ မြန်ပေမယ့်၊ developer တွေအနေနဲ့ အဲ့ဒီ code တွေ ဘယ်လိုအလုပ်လုပ်လဲဆိုတာ နက်နက်နဲနဲ နားမလည်ဘဲ ကောက်သုံးမိနိုင်တယ်။ ဒါဆို ရေရှည်မှာ ကိုယ့်ရဲ့ ပြဿနာဖြေရှင်းနိုင်တဲ့ စွမ်းရည်နဲ့ error ရှာဖွေနိုင်တဲ့ စွမ်းရည်တွေ ကျသွားနိုင်တာပေါ့။ အရင်လို Stack Overflow မှာ မေးခဲ့ကြပြီး ကူးခဲ့ကြတဲ့ ခေတ်မှာတောင်မှ ကိုယ်ကူးတဲ့ code ရဲ့ နောက်ကွယ်က အလုပ်လုပ်ပုံကို နားလည်ဖို့က အရေးကြီးနေတုန်းပဲလေ။
AI ထုတ်ပေးတဲ့ code တွေက အမြဲတမ်း 100% အမှားကင်းတယ်လို့ မဆိုနိုင်ပါဘူး။ အဓိကကတော့ ခြုံရေးပြဿနာတွေဖြစ်နိုင်ပါတယ်။ အဲဒါကြောင့် AI ထုတ်ပေးတဲ့ code တွေကို သေချာပြန်စစ်ဆေးပြီး စမ်းသပ်ဖို့လိုအပ်နေတုန်းပဲ။ တစ်ချို့ကြတော့လဲ အခြေခံတွေကို နားမလည်တဲ့အခါမှာ၊ AI ကြောင့် အချိန်ကုန်သက်သာရာကနေ အချိန်ထပ်ကုန်သွားစေနိုင်တဲ့ အခြေအနေမျိုးတွေကြုံနေကြရတာကိုလဲ မြင်ဖူးကြမှာပါ။
နောက်တစ်ချက်ကတော့ AI က နည်းပညာပိုင်းဆိုင်ရာ အကြောင်းအရာတွေကို နားလည်ပေမယ့်၊ လုပ်ငန်းရဲ့ အဓိကကျတဲ့ စီးပွားရေးဆိုင်ရာ လိုအပ်ချက်တွေ (business logic)၊ team ထဲက လူတွေကြားက ပေါင်းစည်းမှုတွေ၊ ဒါမှမဟုတ် တခြား မပြောပြရသေးတဲ့ လိုအပ်ချက်တွေကိုကျတော့ နားလည်ဖို့ ခက်ခဲနေပါသေးတယ်။
ပြောရရင် AI က အရင်က ကျွန်တော်တို့ လက်နဲ့လုပ်ရတဲ့ (ဒါမှမဟုတ် copy/paste လုပ်ရတဲ့) ရှာဖွေတာ၊ ရွေးချယ်တာ၊ ပြန်ပြင်တာလိုမျိုး စဉ်းစားတွေးခေါ်ရတဲ့ အဆင့်တွေကို automate လုပ်ပေးနိုင်ပြီဆိုပေမဲ့
လူတွေကတော့ အမြဲလိုနေဦးမှာပါပဲ
ဆော့ဖ်ဝဲလ် architect အတွေ့အကြုံရှိတဲ့လူတစ်ယောက်က microservices တွေရဲ့ ကောင်းကျိုး၊ ဆိုးကျိုးတွေကို စဉ်းစားနေတယ်ဆိုပါစို့။
"ကျွန်တော်တို့ရဲ့ Kubernetes setup အတွက် observability နဲ့ low overhead ကို ချိန်ညှိပေးနိုင်မယ့် service mesh strategy တစ်ခု အကြံပြုပါဦး။" ဆိုတာမျိုးမေးမယ်။
AI ကတော့ Istio နဲ့ Linkerd architecture တွေကို diagram တွေ၊ YAML example တွေ၊ ကုန်ကျစရိတ်နှိုင်းယှဉ်ချက်တွေနဲ့အတူတူ အကြံပြုပေးလိမ့်မယ်။ ဒါပေမယ့် ဆုံးဖြတ်ချက်ကိုတော့ ဆော့ဖ်ဝဲလ် architect ကိုယ်တိုင်ကချရမှာပါပဲ။ AI က ပိုမြန်ပြီး ပိုကျယ်ပြန့်တဲ့ ခွဲခြမ်းစိတ်ဖြာမှုတွေကို ဖြစ်နိုင်အောင်လုပ်ပေးနိုင်ပေမယ့်၊ Architecture level မှာ ဘာကမှန်တယ်၊ ဘာကထိရောက်တယ်ဆိုတာကို နောက်ဆုံးအဆင့်ရွေးချယ်ရမှာကတော့ လူတွေပါပဲ။
ဒီသဘောအရ AI ဆိုတာ အရင်က ကျွန်တော်တို့သုံးနေကျ "boilerplate code + library + forum" workflow ရဲ့ ပိုပြီး အစွမ်းထက်တဲ့ တိုးတက်ပြောင်းလဲမှုတစ်ခုပဲလို့ ပြောလို့ရတယ်။ အလုပ်ရှုပ်သက်သာစေတယ်၊ iteration time တွေနည်းသွားစေတယ်၊ ဒါပေမဲ့ ကောင်းမွန်တဲ့ software design တစ်ခုရဲ့ အခြေခံဖြစ်တဲ့ တီထွင်ဖန်တီးနိုင်စွမ်းနဲ့ ဝေဖန်ပိုင်းခြားစိတ်ဖြာတွေးခေါ်နိုင်စွမ်းကိုတော့ သူက အစားမထိုးနိုင်ပါဘူး။
မကြာခင်မှာ AI assistant တွေက ကိုယ့် team ရဲ့ Slack thread တွေ၊ server log တွေ၊ on-call alert တွေ၊ git log တွေကနေ ဒီထက်ပိုပြီးသင်ယူနိုင်လာမယ်။ tech debt တွေ စုပုံနေပြီး၊ ပြဿနာတွေ အရမ်းမတက်ခင်မှာ refactoring လိုအပ်ချက်တွေကို ကြိုတင်ခန့်မှန်းနိုင်လာမယ်။ အဲဒီလိုလုပ်ပေးရင်းနဲ့ Developer တွေက ရှာတာ၊ ကူးတာ၊ ပြင်တာ အတွက် အချိန်နည်းနည်းပဲသုံး၊ ဒီဇိုင်းလုပ်တာ၊ architecture ရေးဆွဲတာ၊ တီထွင်တာအတွက် အချိန်ပိုသုံးလာနိုင်တာပေါ့။
နောက်ဆုံးအနေနဲ့ပြောရရင်တော့ development မှာ AI ကို သုံးလာတာက အရင်ကတည်းက ရှိပြီးသား အသိပညာကို ပြန်သုံးတဲ့ အခြေခံသဘောတရားကို ပြောင်းလဲသွားစေတာ မဟုတ်ပါဘူး။
အရင်က အဆင့်ဆင့်လုပ်ရတဲ့ ရှာတာ၊ ကူးတာ၊ ပြင်တာတွေကို ပိုမြန်ပြီး ပိုပြီးတော့ အကြောင်းအရာနဲ့ ဆီလျော်တဲ့ context-aware interface တစ်ခုတည်းမှာ ပေါင်းစပ်ပြီး ပြောင်းလဲပေးလိုက်တာပါ။ ကျွန်တော်တို့ အရင်ကတည်းက လုပ်နေကျ အရာတွေကို ပိုပြီး အားကောင်းသွားအောင် ချဲ့ထွင်လိုက်တာမျိုးပဲ။ ရှိပြီးသားအလုပ်တွေပေါ်မှာအခြေခံပြီး အသစ်တွေ ဖန်တီးတည်ဆောက်တာပါပဲ။
AI က ဆော့ဖ်ဝဲလ်ရေးတာကို ပိုမြန်စေ၊ ပိုအဆင်ပြေစေပေမယ့်၊ လူတွေရဲ့ စဉ်းစားတွေးခေါ်နိုင်စွမ်း၊ တီထွင်ဖန်တီးနိုင်စွမ်းနဲ့ အရေးကြီးတဲ့ ဆုံးဖြတ်ချက်တွေချနိုင်စွမ်းတွေကိုတော့ အစားထိုးနိုင်မှာမဟုတ်ပါဘူး။ တကယ်တော့ AI က လူတွေရဲ့ ဒီအရည်အချင်းတွေကို ပိုကောင်းအောင်၊ ပိုတိုးတက်အောင် ကူညီပေးမယ့် လက်ထောက်ကောင်းတစ်ယောက်ပါ။ ဒါကြောင့် သူ့ကို အရမ်းအားကိုးလွန်ပြီး ကိုယ့်ရဲ့ အဓိက အရည်အချင်းတွေ ပျောက်မသွားအောင်တော့ သတိထားရမှာပါပဲ။
Ctrl+C/Ctrl+V → Ctrl+AI