business-software
သိမ်းမယ်ခလုတ်ကို နှစ်ကြိမ်နှိပ်မိရင် အော်ဒါနှစ်ခု ဖြစ်သွားသလား?
· Aung Ko Man
အော်ဒါတစ်ခု ဖြည့်ပြီး “သိမ်းမယ်” ကို နှိပ်လိုက်ပါတယ်။ ခလုတ်က လည်နေတယ်။ အောင်မြင်ကြောင်း စာမပေါ်သေးဘူး။ လိုင်းမကောင်းတာလား၊ မသိမ်းရသေးတာလား မသေချာလို့ ထပ်နှိပ်လိုက်ပါတယ်။
ခဏကြာတော့ အော်ဒါနှစ်ခု ပေါ်လာတယ်။
ဝန်ထမ်းဘက်က အော်ဒါတစ်ခုပဲ တင်ချင်တာပါ။ ဒါပေမယ့် စနစ်ဘက်က ပို့လာတဲ့အကြိမ်တိုင်းကို အော်ဒါအသစ်လို့ ယူဆလိုက်တဲ့အခါ အလုပ်တစ်ခုက စာရင်းနှစ်ခု ဖြစ်သွားနိုင်ပါတယ်။
အော်ဒါဆိုရင် ပစ္စည်းနှစ်ကြိမ် ပြင်ဆင်မိနိုင်တယ်။ ငွေလက်ခံစာဆိုရင် ဝင်ငွေ နှစ်ကြိမ်စာရင်းဝင်နိုင်တယ်။ ပစ္စည်းအထုတ်ဆိုရင် လက်ကျန်နှစ်ကြိမ် လျော့သွားနိုင်တယ်။ စာရင်းထပ်တာကို နောက်မှဖျက်ရတာထက် မထပ်အောင် ကြိုကာကွယ်ထားတာက လုပ်ငန်းအတွက် ပိုအဆင်ပြေပါတယ်။
နမူနာ — ငွေလက်ခံစာ သိမ်းပြီးပေမယ့် အကြောင်းပြန်မရတဲ့အချိန်
ဖောက်သည်တစ်ယောက်က ကျပ် ၅၀,၀၀၀ ပေးပါတယ်။ ဝန်ထမ်းက ငွေလက်ခံစာ သိမ်းလိုက်တယ်။ Server မှာ သိမ်းပြီးသားဖြစ်ပေမယ့် ဖုန်းဘက်က အောင်မြင်ကြောင်း အကြောင်းပြန်ကို မရလိုက်ဘူးဆိုပါစို့။
ဝန်ထမ်းက ထပ်စမ်းလိုက်တဲ့အခါ စနစ်က နောက်ထပ် ကျပ် ၅၀,၀၀၀ ဝင်လာသလို စာရင်းသွင်းမိရင် လက်တွေ့လက်ခံငွေနဲ့ report မကိုက်တော့ပါဘူး။
ဒီနမူနာမှာ ပျောက်သွားတာက အောင်မြင်ကြောင်း အကြောင်းပြန်ပါ။ ငွေလက်ခံစာက မူလကတည်းက သိမ်းပြီးသားဖြစ်နိုင်ပါတယ်။ ဒါကြောင့် “အကြောင်းပြန်မရခြင်း” ကို “မသိမ်းရသေးခြင်း” လို့ အမြဲယူဆလို့မရပါဘူး။
ခလုတ်ပိတ်ထားတာက အစပဲ ဖြစ်ပါတယ်
သိမ်းနေချိန်မှာ ခလုတ်ကို ခေတ္တပိတ်ထားတာ၊ လုပ်ဆောင်နေကြောင်း ပြတာနဲ့ အောင်မြင်တဲ့စာရင်းကို ပြန်ဖွင့်ပေးတာတွေက အသုံးပြုသူအတွက် အထောက်အကူဖြစ်ပါတယ်။
ဒါပေမယ့် စာမျက်နှာကို ပြန်ဖွင့်တာ၊ ဖုန်းက အလိုအလျောက် ထပ်ပို့တာနဲ့ လိုင်းပြန်ရချိန်မှာ စောင့်နေတဲ့လုပ်ဆောင်ချက်ကို ပြန်ပို့တာတွေ ရှိနိုင်ပါတယ်။ ခလုတ်ပိတ်ထားရုံနဲ့ အခြေအနေအားလုံးကို မကာကွယ်နိုင်ပါဘူး။
မူလလုပ်ဆောင်ချက်ကို Server က မှတ်မိနိုင်တဲ့ နည်းလမ်းလည်း လိုပါတယ်။
လုပ်ငန်းရှင်နဲ့ Developer ညှိထားသင့်တဲ့ အချက်များ
- တူညီတဲ့လုပ်ဆောင်ချက်ဆိုတာ ဘာလဲ။ မူလအော်ဒါကို လိုင်းပြန်ရလို့ ထပ်ပို့တာနဲ့ ဖောက်သည်က အော်ဒါအသစ် ထပ်မှာတာကို ခွဲရပါမယ်။
- လုပ်ဆောင်ချက်အမှတ်တစ်ခု သတ်မှတ်ထားမလား။ တူညီတဲ့တင်သွင်းမှုကို ပြန်စမ်းတဲ့အခါ အမှတ်တူကို အသုံးပြုပြီး မူလရလဒ် ပြန်ရအောင် စီစဉ်နိုင်ပါတယ်။ ဒီသဘောတရားကို နည်းပညာဘက်မှာ idempotency လို့ ခေါ်ပါတယ်။
- အမှတ်တူနဲ့ အချက်အလက်မတူရင် ဘာလုပ်မလဲ။ ပမာဏပြောင်းထားတာကို မူလလုပ်ဆောင်ချက်လို့ တိတ်တိတ်လက်မခံဘဲ စစ်ဆေးဖို့ လိုပါတယ်။
- တစ်ချိန်တည်း ထပ်ဝင်လာရင် ဘယ်လိုကာကွယ်မလဲ။ “ရှိပြီးသားလား” စစ်ပြီးမှ သိမ်းတာတစ်ခုတည်းကို အားမကိုးဘဲ Database ကန့်သတ်ချက်နဲ့ သက်ဆိုင်ရာလုပ်ဆောင်ချက်တွေ အတူတကွအောင်မြင်စေတဲ့ စီမံပုံကို Developer က စစ်ရပါမယ်။
- မသေချာတဲ့အခြေအနေကို ဝန်ထမ်း ဘယ်မှာပြန်ကြည့်မလဲ။ “အသစ်ထပ်တင်ပါ” လို့ပဲ ပြမယ့်အစား လုပ်ဆောင်ချက်အမှတ်နဲ့ မူလစာရင်းကို ပြန်စစ်နိုင်ဖို့ လိုပါတယ်။
ဖောက်သည်အမည်နဲ့ ငွေပမာဏတူရုံနဲ့ ထပ်နေတယ်လို့ မဆုံးဖြတ်သင့်ပါဘူး။ ဖောက်သည်တစ်ယောက်က ပမာဏတူကို တကယ်နှစ်ကြိမ် ပေးနိုင်ပါတယ်။ ကာကွယ်ချင်တာက လုပ်ဆောင်ချက်တစ်ခုကို မတော်တဆ ထပ်စာရင်းသွင်းခြင်း ဖြစ်ပါတယ်။
အပြင်ဘက် ငွေပေးချေမှုဝန်ဆောင်မှု ပါလာရင် အဲဒီဝန်ဆောင်မှုရဲ့ အခြေအနေနဲ့ အထောက်အထားကိုပါ စစ်ရပါမယ်။ ကိုယ့် Database ထဲ စာရင်းမထပ်တာနဲ့ အပြင်ဘက်မှာ ငွေမထပ်ဖြတ်ကြောင်း အာမခံလို့မရပါဘူး။
လက်ခံစမ်းသပ်ချိန်မှာ ဒီအခြေအနေတွေ ထည့်ပါ
စမ်းသပ်ဒေတာနဲ့ သီးခြားစမ်းသပ်နေရာမှာ အောက်ပါအချက်တွေ စစ်ကြည့်နိုင်ပါတယ်။
- သိမ်းမယ်ခလုတ်ကို ဆက်တိုက်နှိပ်မိလည်း မူလလုပ်ဆောင်ချက်အတွက် စာရင်းတစ်ခုသာ ဖြစ်ရမယ်။
- သိမ်းပြီးမှ အကြောင်းပြန်ပြတ်သွားပြီး ထပ်စမ်းလည်း မူလစာရင်းကို ပြန်ရမယ်။
- တူညီတဲ့အမှတ်နဲ့ တစ်ချိန်တည်းပို့လည်း လက်ကျန်နဲ့ ငွေစာရင်း တစ်ကြိမ်သာ ပြောင်းရမယ်။
- အော်ဒါအသစ် တကယ်ထပ်တင်ရင်တော့ မှန်မှန်ကန်ကန် အသစ်ဖန်တီးနိုင်ရမယ်။
အမှတ်တွေကို ဘယ်လောက်ကြာ မှတ်ထားမလဲ၊ ဘယ်အခြေအနေမှာ ပြန်စမ်းခွင့်ပေးမလဲဆိုတာလည်း လုပ်ငန်းလိုအပ်ချက်နဲ့ ညှိထားပါ။
ဒီနေ့လုပ်ကြည့်ရန် — ငွေလက်ခံ၊ အော်ဒါတင်၊ ပစ္စည်းထုတ် စတဲ့ အရေးကြီးလုပ်ဆောင်ချက်တစ်ခုကို ရွေးပါ။ “လိုင်းပြတ်လို့ ထပ်စမ်းရင် ဒီအလုပ် နှစ်ကြိမ်ဖြစ်သွားနိုင်သလား” လို့ စနစ်ရေးသားသူနဲ့ ဆွေးနွေးပြီး စမ်းသပ်ရလဒ်ကို မှတ်ထားပါ။
မိမိလုပ်ငန်းနဲ့ ချိတ်ဆက်ဆွေးနွေးရန်
အော်ဒါ၊ ငွေလက်ခံစာ သို့မဟုတ် ပစ္စည်းစာရင်း ထပ်ဝင်တဲ့ပြဿနာကို ဖြေရှင်းလိုပါက လုပ်ငန်း Software အကြောင်း ဆက်သွယ်မေးမြန်းရန် မှာ မိမိလုပ်ငန်းအမျိုးအစားနဲ့ ထပ်နေတတ်တဲ့ လုပ်ဆောင်ချက်ကို ပြောပြနိုင်ပါတယ်။ ဖောက်သည်ဒေတာနဲ့ စကားဝှက်တွေ ပေးပို့ဖို့ မလိုပါဘူး။