Ride-Sharing App တစ်ခုကို ဒီဇိုင်းဆွဲခြင်း
ဒီအခန်းမှာတော့ အခုထိလေ့လာခဲ့သမျှတွေကို လက်တွေ့အသုံးချကြည့်ကြပါမယ်။ Uber ဒါမှမဟုတ် Grab လိုမျိုး Ride-sharing Application တစ်ခုကို အစအဆုံး ဘယ်လိုဒီဇိုင်းဆွဲမလဲဆိုတာကို Architect တစ်ယောက်ရဲ့ နေရာကနေ တွေးကြည့်ကြပါမယ်။ လိုအပ်ချက်တွေကို နားလည်တာကနေစပြီး၊ အရေးကြီးတဲ့ ဆုံးဖြတ်ချက်တွေ ချမှတ်တဲ့အထိ အဆင့်ဆင့် သွားကြပါမယ်။
စိန်ခေါ်မှု - “Sloth-Rider” App ကို တည်ဆောက်ခြင်း
Section titled “စိန်ခေါ်မှု - “Sloth-Rider” App ကို တည်ဆောက်ခြင်း”ကျွန်တော်တို့ App ရဲ့ နာမည်ကို “Sloth-Rider” လို့ ပေးလိုက်ကြရအောင်။
အဆင့် 1: ဘာတွေလုပ်ပေးရမလဲ? (Functional Requirements)
Section titled “အဆင့် 1: ဘာတွေလုပ်ပေးရမလဲ? (Functional Requirements)”App တစ်ခုမရေးခင် သူက ဘာတွေလုပ်ပေးရမလဲဆိုတာ အရင်သိဖို့လိုပါတယ်။
-
ကားငှားသူ (Rider) အတွက်:
- အကောင့်ဖွင့်ပြီး Login ဝင်လို့ရရမယ်။
- အနီးအနားမှာ ကားဘယ်နှစ်စီး အားနေလဲဆိုတာ မြေပုံပေါ်မှာ ကြည့်လို့ရရမယ်။
- သွားချင်တဲ့နေရာကို ရွေးပြီး ကားခေါ်လို့ရရမယ်။
- ကားသမား လာနေတာကို မြေပုံပေါ်မှာ အချိန်နဲ့တစ်ပြေးညီ (Real-time) ကြည့်လို့ရရမယ်။
-
ကားသမား (Driver) အတွက်:
- အကောင့်ဖွင့်ပြီး ကားအချက်အလက်တွေ တင်လို့ရရမယ်။
- ကိုယ်က ကားဆွဲဖို့ အဆင်သင့်ဖြစ်နေပြီ (Available) ဆိုတာကို အဖွင့်/အပိတ် လုပ်လို့ရရမယ်။
- ခရီးသည်ဆီက အော်ဒါဝင်လာရင် လက်ခံမလား/ငြင်းမလား ရွေးလို့ရရမယ်။
- ကိုယ်ဘယ်ရောက်နေလဲဆိုတာကို App ပေါ်မှာ အမြဲတမ်း Update ဖြစ်နေရမယ်။
အဆင့် 2: ဘယ်လောက်ကောင်းကောင်း အလုပ်လုပ်ရမလဲ? (Quality Attributes)
Section titled “အဆင့် 2: ဘယ်လောက်ကောင်းကောင်း အလုပ်လုပ်ရမလဲ? (Quality Attributes)”လုပ်ပေးရမယ့် Feature တွေ သိပြီဆိုရင်၊ ဒီ System ကြီးက ဘယ်လောက်ခိုင်မာဖို့လိုလဲ ဆိုတာကို ဆုံးဖြတ်ရပါမယ်။ Ride-sharing App တစ်ခုမှာ အောက်ပါအချက်တွေက သိပ်အရေးကြီးပါတယ်။
- အချိန်မရွေး သုံးလို့ရရမယ် (High Availability): App က ၂၄ နာရီလုံး လုံးဝ Error တက်လို့မရပါဘူး။ App ပျက်သွားရင် ကားငှားသူလည်း ဒုက္ခရောက်သလို၊ ကားသမားလည်း ပိုက်ဆံရှာလို့မရတော့ပါဘူး။
- လူအများကြီး တစ်ပြိုင်နက်သုံးရင် ခံနိုင်ရမယ် (High Scalability): ရုံးဆင်းချိန်၊ မိုးရွာတဲ့အချိန်မျိုးမှာ လူတွေအများကြီး ပြိုင်တူ ကားခေါ်ကြပါလိမ့်မယ်။ အဲ့ဒီလို ရုတ်တရက် အသုံးပြုသူများလာရင်လည်း App က မနှေးသွားဘဲ ကောင်းကောင်း အလုပ်လုပ်နိုင်ရပါမယ်。
- ချက်ချင်း သိနေရမယ် (Real-time Performance): ကားသမား ဘယ်ရောက်နေလဲဆိုတာ မြေပုံပေါ်မှာ ရွေ့နေတာကို ချက်ချင်းမြင်နေရပါမယ်။ လိုင်းနှေးနေလို့ ကားက တစ်နေရာတည်းမှာ ရပ်နေတာမျိုး မဖြစ်ရပါဘူး။
- လုံခြုံရေး (Security): User တွေရဲ့ ဖုန်းနံပါတ်၊ ငွေပေးချေမယ့် ကတ်အချက်အလက်၊ သွားခဲ့တဲ့ ခရီးစဉ်မှတ်တမ်း စတာတွေကို လုံလုံခြုံခြုံ သိမ်းဆည်းပေးထားရပါမယ်။