Skip to content
GitHub

Ride-Sharing App တစ်ခုကို ဒီဇိုင်းဆွဲခြင်း

ဒီအခန်းကတော့ ကျွန်တော်တို့သင်ယူခဲ့သမျှကို အတူတကွပေါင်းစပ်ရမယ့်နေရာပါပဲ။ ဒီအခန်းမှာ၊ ကျွန်တော်တို့ architect တစ်ယောက်အနေနဲ့ software system တစ်ခုကို အစအဆုံး ဒီဇိုင်းဆွဲကြပါမယ်။ အရင်အခန်းတွေက သင်ယူခဲ့တဲ့ pattern တွေ၊ နိယာမတွေ၊ tool တွေကိုသုံးပြီး၊ လိုအပ်ချက်တွေကို နားလည်ခြင်းကနေ အဓိက architectural ဆုံးဖြတ်ချက်တွေချမှတ်ခြင်းအထိ လုပ်ငန်းစဉ်တစ်ခုလုံးကို အဆင့်ဆင့်လေ့လာသွားပါမယ်။

စိန်ခေါ်မှု - “Sloth-Rider” ကို တည်ဆောက်ခြင်း

Section titled “စိန်ခေါ်မှု - “Sloth-Rider” ကို တည်ဆောက်ခြင်း”

ကျွန်တော်တို့ရဲ့ project ကတော့ Uber သို့မဟုတ် Lyft နဲ့ဆင်တူတဲ့ ရိုးရှင်းသော ride-sharing application တစ်ခုအတွက် architecture ကို ဒီဇိုင်းဆွဲဖို့ပါပဲ။ သူ့ကို “Sloth-Rider” လို့ နာမည်ပေးကြရအောင်။

အဆင့် ၁: ‘ဘာလုပ်ရမလဲ’ ကို နားလည်ခြင်း - Functional Requirements

Section titled “အဆင့် ၁: ‘ဘာလုပ်ရမလဲ’ ကို နားလည်ခြင်း - Functional Requirements”

ပထမဆုံးအနေနဲ့၊ system က ဘာတွေလုပ်ဆောင်ပေးရမလဲ ဆိုတာကို နားလည်ဖို့လိုပါတယ်။ ဒါတွေကတော့ functional requirements တွေဖြစ်ပြီး၊ များသောအားဖြင့် user stories ပုံစံနဲ့ ဖော်ပြလေ့ရှိပါတယ်။

  • ကားငှားသူ (Rider) အတွက်:

    • “ကားငှားသူတစ်ယောက်အနေနဲ့ account ကို sign up လုပ်ပြီး log in ဝင်ချင်တယ်။”

    • “ကားငှားသူတစ်ယောက်အနေနဲ့ အနီးအနားမှာ အဆင်သင့်ဖြစ်နေတဲ့ ကားသမားတွေကို မြေပုံပေါ်မှာ မြင်ချင်တယ်။”

    • “ကားငှားသူတစ်ယောက်အနေနဲ့ တည်နေရာကနေ သွားချင်တဲ့နေရာကို ကားငှားဖို့ တောင်းဆိုချင်တယ်။”

    • “ကားငှားသူတစ်ယောက်အနေနဲ့ ကားသမား သူ့ဆီလာနေတာကို real-time တည်နေရာနဲ့တကွ မြင်ချင်တယ်။”

  • ကားသမား (Driver) အတွက်:

    • “ကားသမားတစ်ယောက်အနေနဲ့ sign up လုပ်ပြီး သူ့ကားကို အတည်ပြုချက်ရယူချင်တယ်။”

    • “ကားသမားတစ်ယောက်အနေနဲ့ ခရီးသည်တောင်းဆိုမှုတွေ လက်ခံရရှိဖို့ status ကို available လို့ သတ်မှတ်ထားချင်တယ်။”

    • “ကားသမားတစ်ယောက်အနေနဲ့ ဝင်လာတဲ့ ခရီးသည်တောင်းဆိုမှုတွေကို ကြည့်ပြီး လက်ခံမလား၊ ငြင်းပယ်မလား ရွေးချယ်ချင်တယ်။”

    • “ကားသမားတစ်ယောက်အနေနဲ့ တည်နေရာကို platform ပေါ်မှာ အဆက်မပြတ် update လုပ်နေရမယ်။“

အဆင့် ၂: ‘ဘယ်လောက်ကောင်းကောင်း’ လုပ်ရမလဲ နားလည်ခြင်း - Quality Attributes

Section titled “အဆင့် ၂: ‘ဘယ်လောက်ကောင်းကောင်း’ လုပ်ရမလဲ နားလည်ခြင်း - Quality Attributes”

နောက်တစ်ဆင့်ကတော့ system က သူ့ရဲ့တာဝန်တွေကို ဘယ်လောက်ကောင်းကောင်း လုပ်ဆောင်ရမလဲ ဆိုတာကို သတ်မှတ်ဖို့ပါပဲ။ Ride-sharing app တစ်ခုအတွက်၊ အချို့ quality attributes တွေက တခြားဟာတွေထက် ပိုအရေးကြီးပါတယ်။

  • High Availability (၂၄ နာရီပတ်လုံး အမြဲတမ်းရရှိနိုင်မှု) - Service က တစ်ရက် ၂၄ နာရီ၊ တစ်ပတ် ၇ ရက်လုံး online မှာ ရှိနေရပါမယ်။ App သာပျက်နေရင်၊ ကားငှားသူတွေက ကားငှားလို့မရသလို၊ ကားသမားတွေလည်း ပိုက်ဆံရှာလို့မရပါဘူး။ ဒါက ထိပ်တန်းဦးစားပေးတစ်ခုပါ။

  • High Scalability (ဝန်အားကို ကောင်းစွာကိုင်တွယ်နိုင်မှု) - System က ရုံးတက်ရုံးဆင်းချိန်၊ အားလပ်ရက်တွေ၊ ဒါမှမဟုတ် တကယ့် အရေးကြီးတဲ့ အချိန်တွေမှာ ရုတ်တရက်တိုးလာတဲ့ အသုံးပြုမှုများကို ကိုင်တွယ်နိုင်ရပါမယ်။

  • Real-time Performance (ချက်ချင်းတုံ့ပြန်မှု မြန်ဆန်ခြင်း) - ကားသမားတွေဆီက location update တွေနဲ့ ကားငှားသူတွေဆီက request တွေကို ကြန့်ကြာမှု (latency) အနည်းဆုံး နဲ့ process လုပ်ပေးနိုင်ရပါမယ်။

  • Security (လုံခြုံရေး) - အသုံးပြုသူရဲ့ ကိုယ်ရေးကိုယ်တာအချက်အလက်၊ သွားလာခဲ့တဲ့ location မှတ်တမ်း၊ နဲ့ ငွေပေးချေမှုအချက်အလက်တွေကို ကာကွယ်ပေးဖို့ကတော့ သေချာပေါက်ပြုလုပ်ပေးရမယ့် အချက်ပါ။

Sloth-Rider Requirements