ဘလော့ဂ်

GitHub Copilot နဲ့ Baby Monitor Timmy ကို ဘယ်လိုတည်ဆောက်နေလဲ

AI က ကျွန်တော့်ကို ပိုမြန်မြန်လုပ်နိုင်စေတယ်။ Timmy အတွက် တာဝန်ကတော့ ကျွန်တော့်ဆီမှာပဲ ရှိနေဆဲပါ။

Baby Monitor Timmy က ရိုးရှင်းတဲ့ အကြံတစ်ခုကနေ စတင်ခဲ့တာပါ—အိမ်မှာ ကိုယ်ရေးကိုယ်တာလုံခြုံမှုကို လေးစားတဲ့ ကလေးစောင့်ကြည့်စက်တစ်ခုပါ။ cloud မှာ မှတ်တမ်းတင်တာမရှိ၊ ကလေးအခန်းကနေ မလိုအပ်ဘဲ ဒေတာထွက်သွားတဲ့ လမ်းကြောင်းတွေလည်း မရှိပါဘူး။ လူအများ မမြင်ကြတာကတော့ Timmy ကို Zurich မှာ ကျွန်တော်တစ်ယောက်တည်း တည်ဆောက်နေတာဖြစ်ပြီး၊ GitHub Copilot ကတော့ ကျွန်တော့်ရဲ့ အလွန်မြန်တဲ့ တွဲဖက်ပရိုဂရမ်မာပါ။

လူနဲ့ AI အတူလုပ်တဲ့ လုပ်ငန်းစဉ်

တာဝန်ခွဲဝေမှုက ရှင်းပါတယ်—လုပ်ဆောင်ချက်တွေကို ကျွန်တော်သတ်မှတ်တယ်၊ ဦးစားပေးတွေ သတ်မှတ်တယ်၊ architecture ဆိုင်ရာ ဆုံးဖြတ်ချက်တွေ ချတယ်။ Copilot က အကောင်အထည်ဖော်ရာမှာ ကူညီတယ်—ကုဒ်ရေးခြင်း၊ စမ်းသပ်မှုတွေ ထည့်ခြင်း၊ bug ဖြစ်ရတဲ့အကြောင်းရင်းကို ရှာဖွေဖော်ထုတ်ခြင်းနဲ့ ဖြန့်ချိရေးအဆင့်တွေ ပြင်ဆင်ခြင်းတို့ပါ။

ပုံမှန် sprint တစ်ခုမှာ ကျွန်တော့်အတွက် အကြမ်းဖျင်း ဒီလိုပါ—

  1. လုပ်ဆောင်ချက်ဖော်ပြချက်: လုပ်ဆောင်ချက်က ဘာလုပ်ရမလဲဆိုတာကို ခြွင်းချက်အခြေအနေတွေနဲ့ ကန့်သတ်ချက်တွေအပါအဝင် ကျွန်တော် ဖော်ပြပါတယ်။
  2. အကောင်အထည်ဖော်ခြင်း: Copilot က ကုဒ်အကြံပြုပြီး ပရောဂျက်မှာ ရှိပြီးသား စည်းကမ်းပုံစံတွေကို လိုက်နာပါတယ်။
  3. စမ်းသပ်ခြင်း: အလိုအလျောက် end-to-end စမ်းသပ်မှုတွေက emulator နှစ်ခုမှာ လုပ်ဆောင်ပြီး ကလေးစက်/မိဘစက်တို့ကြား တကယ့်ချိတ်ဆက်မှုကို စစ်ဆေးပါတယ်။
  4. ဖြန့်ချိခြင်း: စမ်းသပ်မှုတွေ အောင်မြင်ရင် Android နဲ့ iOS build တွေကို သက်ဆိုင်ရာ store နဲ့ စမ်းသပ်ရေး track တွေအတွက် ပြင်ဆင်ပါတယ်။

ဒီစက်ဝန်းက လုပ်ဆောင်ချက်အသစ်တွေနဲ့ bug ပြင်ဆင်မှုတွေအတွက် ထပ်ခါတလဲလဲ လုပ်ဆောင်ပါတယ်။ ကုဒ်တစ်ကြောင်းစီကို ကျွန်တော်ကိုယ်တိုင် မရေးပေမယ့်၊ ဘာကို တည်ဆောက်မလဲ၊ ဘာကြောင့် တည်ဆောက်မလဲ၊ အကြံပြုချက်တစ်ခုက Timmy နဲ့ ကိုက်ညီမညီကိုတော့ ကျွန်တော် ဆုံးဖြတ်ပါတယ်။

စိတ်ကူးမှ WebRTC အထိ

အဓိက နည်းပညာတာဝန်က အစကတည်းက ရှင်းပါတယ်—ဖုန်းနှစ်လုံးကြား အချိန်နှင့်တပြေးညီ အသံနဲ့ ဗီဒီယိုပို့ဆက်ခြင်းပါ။ WebRTC က သိသာတဲ့ရွေးချယ်မှုဖြစ်ပေမယ့် Flutter နဲ့ ပေါင်းစပ်ဖို့က မလွယ်ပါဘူး—ICE candidates၊ SDP negotiation၊ TURN fallback နဲ့ DataChannels တွေက မှန်ကန်တဲ့အစဉ်အတိုင်း အတူတကွ အလုပ်လုပ်ရပါတယ်။

Copilot က ဒီအပိုင်းတွေကို တစ်ဆင့်ချင်း ပေါင်းစပ်ရာမှာ ကူညီခဲ့ပါတယ်—peer connection တည်ဆောက်ခြင်း၊ အရေးကြီးတဲ့ အစဉ်ကို မှန်ကန်စွာထားခြင်း (offer မတိုင်မီ DataChannel၊ setRemoteDescription မတိုင်မီ onTrack) နဲ့ signaling ကို Firebase Firestore ပေါ်မှာ ထားခြင်းတို့ပါ။ နောက်တစ်ဆင့်မသွားခင် အပိုင်းတိုင်းကို emulator နှစ်ခုလုံးမှာ အလုပ်လုပ်စေခဲ့ရပါတယ်။

ECDH ဖြင့် လုံခြုံစွာ ချိတ်ဆက်ခြင်း

အရေးအကြီးဆုံး လုပ်ဆောင်ချက်တွေထဲက တစ်ခုက လုံခြုံတဲ့ ချိတ်ဆက်မှုစနစ်ပါ။ စက်နှစ်လုံးက ၎င်းတို့ရဲ့ အထောက်အထားကို အလယ်ဗဟို server တစ်ခုက အာမခံပေးစရာမလိုဘဲ အပြန်အလှန် ယုံကြည်မှုတည်ဆောက်ရပါတယ်။ ဖြေရှင်းနည်းကတော့ Firebase မှတစ်ဆင့် ECDH P-256 key exchange ပြုလုပ်ပြီး ကြားခံတိုက်ခိုက်မှု (man-in-the-middle attack) ကို ရှာဖွေသိရှိနိုင်တဲ့ မျက်မြင်အတည်ပြုနံပါတ် (SAS) နဲ့ ပေါင်းစပ်အသုံးပြုခြင်းပါ။

Copilot က cryptographic chain ကို အကောင်အထည်ဖော်ရာမှာ ကူညီခဲ့ပါတယ်—key ထုတ်လုပ်ခြင်း၊ public key ဖလှယ်ခြင်း၊ shared secret ရယူခြင်း၊ SAS တွက်ချက်ခြင်းနဲ့ နောက်ပိုင်း signaling data အားလုံးအတွက် AES-256-GCM encryption ပြုလုပ်ခြင်းတို့ပါ။ pairing key ကို backend ဆီ မပို့ပါဘူး—၎င်းရဲ့ SHA-256 hash ကိုသာ Firestore document identifier အဖြစ် သုံးပါတယ်။

လုံခြုံရေးစစ်ဆေးမှု: အားနည်းချက်များကို ရှာဖွေပြီး ပြင်ဆင်ခြင်း

AI အကူအညီနဲ့ ဖွံ့ဖြိုးတိုးတက်ရေးဆိုတာ ကျွန်တော့်အတွက် စာရိုက်တာ ပိုမြန်လာရုံမဟုတ်ပါဘူး။ စနစ်တကျ bug ရှာဖွေရာမှာလည်း ကူညီပါတယ်။ အာရုံစိုက်လုပ်ဆောင်ခဲ့တဲ့ security audit sprint တစ်ခုမှာ Copilot က codebase ကို ခွဲခြမ်းစိတ်ဖြာပြီး ပြင်ရမယ့် ပြဿနာ ခြောက်ခု ကို တွေ့ရှိခဲ့ပါတယ်—

ဒီပြဿနာ ခြောက်ခုလုံးကို sprint တစ်ခုတည်းမှာ ပြင်ဆင်ခဲ့ပါတယ်။ ဒီနေရာမှာ Copilot က အားကောင်းပါတယ်—ဖိုင်အများကြီးဖတ်ခြင်း၊ ပုံစံတွေကို နှိုင်းယှဉ်ခြင်းနဲ့ ကျွန်တော် ပိုမိုနီးကပ်စွာ စစ်ဆေးရမယ့်နေရာတွေကို အမှတ်အသားပြုခြင်းပါ။

အဆင့်လိုက် Sprint များ: အက်ပ် ဘယ်လိုတိုးတက်လာခဲ့လဲ

Timmy က မြန်ဆန်ပေမယ့် နယ်နိမိတ်ရှင်းလင်းတဲ့ sprint တွေကနေ တိုးတက်လာခဲ့ပါတယ်။ အရေးကြီးမှတ်တိုင်တချို့ကတော့—

sprint တိုင်းက အခြေခံပုံစံတူပါတယ်—ရည်မှန်းချက်ကို ဖော်ပြ၊ အကြံပြုချက်တွေကို ပြန်လည်သုံးသပ်၊ အလိုအလျောက် စမ်းသပ်၊ ပြီးရင် စမ်းသပ်အသုံးပြုသူတွေဆီ ဖြန့်ချိပါတယ်။

စက်များစွာတွင် E2E စမ်းသပ်ခြင်း

ကလေးစောင့်ကြည့်စက်ကို စက်တစ်လုံးတည်းနဲ့ မှန်ကန်စွာ မစမ်းသပ်နိုင်ပါဘူး။ ကလေးစက်တစ်လုံးနဲ့ မိဘစက်တစ်လုံး လိုပါတယ်။ ပရောဂျက်က တစ်ပြိုင်နက် လည်ပတ်နေတဲ့ Android emulator နှစ်ခုနဲ့ စတင်ခဲ့ပြီး အခုတော့ local iOS simulator နဲ့ စက်အစစ် စစ်ဆေးမှုတွေပါ ထပ်ဖြည့်ထားပါတယ်။ အလိုအလျောက် Android test script ကတော့—

  1. emulator နှစ်ခုလုံးမှာ အက်ပ်ကို ထည့်သွင်းတယ်
  2. စက်နှစ်လုံးလုံးမှာ ချိတ်ဆက်မှုအဆင့်တွေကို ဖြတ်သန်းတယ်
  3. အသံနဲ့ ဗီဒီယိုချိတ်ဆက်မှု တည်ဆောက်ပြီးကြောင်း စစ်ဆေးတယ်
  4. push-to-talk၊ ကင်မရာထိန်းချုပ်မှုနဲ့ အခြားလုပ်ဆောင်ချက်တွေကို စမ်းသပ်တယ်

emulator နှစ်ခုလုံးက IP address တစ်ခုတည်းကို မျှဝေသုံးထားတာကြောင့် (10.0.2.15)၊ STUN ကနေတစ်ဆင့် direct peer-to-peer ချိတ်ဆက်မှု မဖြစ်နိုင်ပါဘူး။ စမ်းသပ်မှုတိုင်းက Cloudflare TURN relay ကို ဖြတ်သန်းရပါတယ်။ ဒါက စိတ်အနှောင့်အယှက်ဖြစ်ပေမယ့် အသုံးဝင်ပါတယ်—အရှုပ်ထွေးဆုံး ချိတ်ဆက်လမ်းကြောင်းကို အကြိမ်တိုင်း စမ်းသပ်ပြီးသား ဖြစ်စေလို့ပါ။

ကျွန်တော် သင်ယူခဲ့တာများ

AI တွဲဖက်ပရိုဂရမ်မာနဲ့ အက်ပ်တစ်ခုလုံး တည်ဆောက်ရင်း အချက်အနည်းငယ် သင်ယူခဲ့ပါတယ်—

ရှေ့ဆက်မည့်အရာများ

Baby Monitor Timmy က ဆက်လက်တိုးတက်နေပါတယ်။ iOS ဖြန့်ချိမှုက နီးကပ်လာပြီဖြစ်ပြီး၊ အဲဒီနောက်မှာ sensor လုပ်ဆောင်ချက်အသစ်တွေ နဲ့ လုံခြုံရေးကို ဆက်လက်ခိုင်မာအောင်လုပ်သွားပါမယ်။ လုပ်ငန်းစဉ်ကတော့ အလားတူပါပဲ—ဦးတည်ချက်နဲ့ နယ်နိမိတ်တွေကို ကျွန်တော်သတ်မှတ်ပြီး Copilot က မြန်မြန် အကောင်အထည်ဖော်၊ စစ်ဆေးရာမှာ ကူညီပါတယ်။

လုံခြုံရေးနှင့်ဆိုင်သော အဓိကအစိတ်အပိုင်းတွေကို အခု ရှင်းရှင်းလင်းလင်း အပိုင်းခွဲပြီး အများပြည်သူ ကြည့်ရှုနိုင်တဲ့ baby-monitor-timmy-core repositoryထဲမှာ ထားရှိထားပါတယ်။ အဲဒီနေရာမှာပဲ pairing၊ signaling နဲ့ backend interface တွေအတွက် architecture ဆိုင်ရာ ဆုံးဖြတ်ချက်တွေကို မှတ်တမ်းတင်ထားပါတယ်။


နောက်ထပ်ဆောင်းပါးများ