Deep-Dive The Frameworks

Search for a command to run...

No comments yet. Be the first to comment.
ဒီ post လေးထဲမှာတော့ Regional NAT Gateway နဲ့ Zonal NAT Gateway ကွာခြားချက်တွေကို နှိုင်းယှဉ်ပြသွားမှာဘဲ ဖြစ်ပါတယ်။ ပထဆုံးအနေနဲ့ NAT Gateway ဆိုတာ ဘာလဲ ဘာအတွက် လိုအပ်တာလဲဆိုတာကို အရင်ပြောပြပေးပါမယ်။ P

High Level ရေးထားတာပါ ဒါပေမဲ့ လွယ်ပါတယ် ကိုယ့်မှာ AWS Infra တွေရှိတယ်ဆို တွေ့သမျှ metric တွေကို alarms တွေလုပ်ပြီး notification ယူမနေဘဲ တကယ် effective ဖြစ်တဲ့ metric တွေကိုမှ CloudWatch ရဲ့ alarm feature တွေနဲ့ ပေါင်းပြီး ပို့စေချင်ပါတယ်။ ဥပမာ prod...

ကိုယ့်ရဲ့ data center (on-prem) network နဲ့ AWS ချိတ်ဆက်ဖို့ လိုလာပြီဆိုရင် ဘယ်လို ချိတ်ဆက်ကြမလဲ? အပိုင်း (၂) မှာ တော့ Direct connect အကြောင်းကို ဆွေးနွေး သွားမှာ ဖြစ်ပါတယ်။ အပိုင်း (၁) Site-to-site VPN အကြောင်းကို လေ့လာချင်ရင်တော့ အောက်ပါ link မှာ ...

ကိုယ့်ရဲ့ data center (on-prem) network နဲ့ AWS ချိတ်ဆက်ဖို့ လိုလာပြီဆိုရင် ချိတ်ဆက်နိုင်တဲ့ နည်း (၂) နည်း ရှိပါတယ်။ 1. Site-to-Site VPN (Virtual Private Network) 2. Direct connect Site-to-Site VPN - On-prem network နဲ့ AWS resources တွေ ချိတ်ဆက်တဲ့...

လွန်ခဲ့တဲ့အပတ်က ရုံးက Designer တွေနဲ့ တော်ကီပွားရင်း Accessibility နဲ့ပတ်သတ်တာတွေ သူတို့ကို ရှင်းပြဖြစ်တယ်။ ကိုယ်တိုင်ကလည်း အရင်ကတည်းက ဒီ topic ကိုစိတ်ဝင်စားလို့ လေ့လာနေတာဆိုတော့ အခွင့်အရေးရရင် ရသလို sharing လုပ်ဖြစ်တယ်။ အဓိကက Accessibility နဲ့ပတ်သတ်...

ရှင်းလင်းချက် - ဒီဆောင်းပါးက Frameworks (Laravel, Django, Flask and so on.) တွေရဲ့အရေးပါပုံ ကို တည်ရေးထားတာဖြစ်ပြီး ကျွန်တော့် အမြင်နဲ့ တစ်ခြား Articles အချို့ကနေ ကောက်နှုတ်ထားတာတွေကိုပဲ ဖော်ပြထားတာဖြစ်ပါတယ်။ မှန်သည် မှားသည်ကို အခြေခံတာမဟုတ်ပဲ ကိုယ်သုံးနေတဲ့ Framework တွေကို သေချာ deep-dive လုပ်ဖို့ တွန်းအားတစ်ခုပေးဖို့ ရည်ရွယ်တာဖြစ်ပါတယ်။
ကျွန်တော်တို့ Developer တွေက Application တွေရေးသားတဲ့အခါမှာ ပိုပြီးမြန်ဆန်၊ တိကျ၊ သေသပ်အောင် Frameworks တွေကို အသုံးပြုကြပါတယ်။ Pure ရေးတဲ့ Developers တွေရှိပေမယ့် အများစုကတော့ သက်ဆိုင်ရာ Programming Languages တွေရဲ့ နာမည်ကြီး Framework တွေကိုအသုံးပြုနေကြတာဖြစ်ပါတယ်။ ဒီနေရာမှာ ကျွန်တော်တို့ဘာလို့ Framework တွေကို သုံးကြတာလဲဆိုတာကို အရင် စဥ်းစားကြည့်ကြဖို့လိုပါတယ်။ Framework တွေကို သုံးရင် -
Efficiency,
Consistency,
Security,
Scalability,
Maintainable,
Future Proof &
Support from community
စတာတွေမှာ သိသိသာသာ အကျိုးခံစားရလို့ပဲဖြစ်ပါတယ်။ ဒါပေမယ့် Frameworks တွေကိုသုံးရင် trade-offs တွေလည်းပါလာမယ်ဆိုတာကို သတိထားမိ ဖို့လိုပါလိမ့်မယ်။ Framework တစ်ခုနဲ့တစ်ခု မှာ trade-offs တွေမတူကြပေမယ့် အများအားဖြင့်ကတော့ အောက်မှာဖော်ပြထားတဲ့ အပိုင်းတွေတော့ရှိလေ့ရှိကြပါတယ်။
Learning Curve (သူ့မှာပါတဲ့ features, functions တွေကို သီးသန့် အချိန်ပေးလေ့လာရမယ်)
Limitations (အကန့်အသတ်တွေ - ကိုယ်လိုချင်တာကို လုပ်ဖို့ခက်ခဲ၊ support မပေးတာမျိုး)
Bloated Code (ကိုယ်အသုံးမလိုတာတွေ ပါနေတာတွေ)
Dependency Management (တစ်ချို့ Frameworks တွေက external libraries တွေပေါ်မှာ ပြန်ဆောက်ထားတာဆိုတော့ သက်ဆိုင်ရာ Libraries တွေကို up-to-date ဖြစ်အောင် Manage လုပ်ရတာတွေ)
Maintenance (Regular updates of the Framework တွေမှာ ကိုယ့် App ကို up-to-date and maintainable ဖြစ်အောင်လိုက်လုပ်ရတာတွေ)
Cost (ဒါကတော့ ထည့်တွက်ဖို့ အနည်းဆုံးအစိတ်အပိုင်းဖြစ်ပါတယ်။ Paid-feature တွေ Paid-course တွေမှာ ကုန်ကျစရိတ် ရှိနိုင်တာမျိုးတွေ)
အဲ့လို trade-off တွေကို ကိုယ့်ဘက်ကထိန်းဖို့ လိုအပ်တာလာတွေရှိတယ်။ ဆိုတော့ ဘယ်လိုထိန်းကြမလဲ။ တစ်ခုသတိထားဖို့လိုတာက လိုက်မထိန်းလဲ ကိုယ့် app က သက်ဆိုင်ရာ Framework, Library တွေရဲ့ version တစ်ခုမှာတော့ အလုပ်လုပ်ဆဲ လုပ်မြဲ ဖြစ်တယ်။ ဒါပေမယ့် တစ်ချိန် ကိုယ်လိုချင်တာတွေကို Framework က support မလုပ်ထား/ မလုပ်သေးတဲ့ အချိန်တွေ မှာ Framework ကို Customize/ Override/ Extend လုပ်တော့မယ်ဆိုရင် လွယ်ကူခြင်း မလွယ်ကူခြင်းကို ကိုယ်သုံးထားတဲ့ Framework ကို ဘယ်လောက် deep-diving လုပ်ထားသလဲဆိုတာက ဆုံးဖြတ်ပေးမှာပါ။
ဒီနေရာမှာ deep-diving ကို အလေးပေးပြီး ပြောရတဲ့ အကြောင်းက အပေါ်မှာပြောထားတဲ့ trade-offs တွေကို ဒီတစ်ခုနဲ့တင် တော်တော်လေးဖြေရှင်းပေးနိုင်လို့ပါ။ ဆိုတော့ deep-diving ဘယ်လိုလုပ်ကြမလဲကို ဆက်ရအောင်။
Learn the language (ပထမဆုံံးအနေနဲ့ကတော့ ကိုယ်သုံးမယ့် Framework ရဲ့ Programming Language ကို အကုန်မသိနေတောင် ကုဒ်ဖတ်နိုင် နားလည်နိုင်တဲ့ အနေအထားကို ရောက်ကို ရောက်နေဖို့လိုပါတယ်။ အဲ့တာမှပဲ Framework ကိုလေ့လာချဥ◌်းကပ်တဲ့နေရာမှာ လွယ်ကူမှာဖြစ်ပါတယ်။ ကိုယ်က အဆင့်ကျော်နေမိလည်း အားငယ်ဖို့မလိုပါဘူး။ ပြန်လေ့လာလို့ရတာပါပဲ။)
Powerful IDE (IDE ကောင်းကောင်း၊ Plugins ကောင်းကောင်းတွေကို အသုံးပြုဖို့လိုပါတယ်။ Frameworks တွေရဲ့ တည်ဆောက်ပုံက ပိုပိုပြီး ရှုပ်ထွေးလာတဲ့ အတွက် လိုချင်တာကို ရှာနိုင် navigate လုပ်နိုင်တဲ့ IDE ရှိဖို့လိုပါတယ်။ ကုဒ်ဖတ်ရာမှာ အရမ်းကို သိသာမြန်ဆန်စေပါတယ်။ အများအားဖြင့် JetBrains ကထုတ်တဲ့ IDE တွေက သက်ဆိုင်ရာ Language & Framework တွေမှာ သိသိသာသာကို ကောင်းကောင်း အလုပ်ဖြစ်ပါတယ်။ ဝယ်သုံးဖို့လိုရင်လည်း ရင်းနှီးမြုပ်နှံတယ်လို့သာ သဘောထားစေချင်ပါတယ်။ အဲ့တာမှမဝယ်ချင်ဘူးဆိုလည်း Opensource IDE (VSCode and so on.) တို့ကိုသွင်းပြီးတော့ Plugins ကောင်းကောင်းတွေသွင်းပြီး သုံးသင့်ပါတယ်။)
Documentation (သက်ဆိုင်ရာ Framework ရဲ့ docs ကို ကောင်းကောင်းဖတ်ထားသင့်ပါတယ်။ လိုမှ ရှာလို့ရပါတယ်ဆိုတာက တစ်ကယ်တမ်း tight timeline နဲ့အလုပ်လုပ်နေချိန်မှာ အခက်အခဲဖြစ်စေမှာပါ။)
Architecture (သေချာတာတစ်ခုက Framework ရဲ့တည်ဆောက်ထားပုံတွေ၊ Design Pattern တွေကို သိထားဖို့လိုပါတယ်။)
Starter examples (ကိုယ်က အခုမှ ဒီ Framework ကို စသုံးဖူးတာဆိုရင် example လေးတွေအရင်ဖတ်ပြီးမှ ဘယ်လို customize လုပ်ရမလဲဆိုတာကို စဉ်းစားသင့်ပါတယ်။ ခြေလှမ်းကျဲတိုင်း မကောင်းပါဘူး။)
Community (Framework devs တွေက အများအားဖြင့် community တစ်ခုကို ဖန်တီးထားကြပြီး ဆွေးနွေး၊ ငြင်းခုန်၊ အကြံပြု၊ သုံးသပ် လေ့ရှိကြပါတယ်။ အဲ့လို community ကို join ပြီးတော့ မတူညီတဲ့ အမြင်တွေ အကြံပြုချက်တွေကို အမြဲ လိုက်ဖတ်နေသင့်ပါတယ်။ ကိုယ်တိုင်က contribute လုပ်နိုင်ရင်တော့ အကောင်းဆုံးပေါ့။)
Read & Debug the framework (ဒါကတော့ အရေးအကြီးဆုံးအပိုင်းပေါ့။ Framework ထဲက ကိုယ်သုံးတဲ့ features, functions တွေရဲ့ အလုပ်လုပ်ပုံကို ဖတ်ထားနိုင်မှ အဆင်ပြေပါမယ်။ မဟုတ်ရင် Level တစ်ခုမှာရပ်တန့်နေပါလိမ့်မယ်။ ကုဒ်တွေကို လိုက်ဖတ်ထားမှ ကိုယ်လိုတာရှိရင် ယူသုံးသင့် မသုံးသင့်ဆိုတာကို ဆုံးဖြတ်နိင်၊ ပြုပြင်နိုင်မှာ ဖြစ်ပါတယ်။)
Get someone to discuss (ဒီအချက်က community တွေမှာ လုပ်လေ့ရှိကြပေမယ့် ကိုယ့်အနီးအနား က experience ပိုများ၊ ပိုတော်တဲ့ developer တွေ နဲ့ အမြဲ ဆွေးနွေး တိုင်ပင်နေသင့်ပါတယ်။ ဒီအချက်ကလည််း ကိုယ်ကော ကိုယ့် partner တွေပါ ပိုပြီးတော့ ကျွမ်းကျင်လာဖို့ အထောက်အကူပြုပါတယ်။ Senior/Colleague တွေရဲ့ အမြင်နဲ့ ကိုယ့်အမြင်ကွာခြားနေတဲ့ အခါ ငြင်းခုန် သုံးသပ်ရတာကလည်း developer တွေ အတွက် တစ်ကယ်ကို motivated ဖြစ်စေပါတယ်။)
ဒီအချက်တွေကိုလိုက်နာနိုင်တယ်ဆိုရင်တော့ Framework အသစ်တစ်ခုကို ပြောင်းတာဖြစ်ဖြစ် လက်ရှိ Framework ရဲ့နောက်တစ်ဆင့်ကို ထပ်လှမ်းချင်တာ ဖြစ်ဖြစ်၊ အဲအချိန်တွေကြရင် ပိုပြီးတော့ လွယ်ကူနေမယ်လို့ ကျွန်တော်မြင်မိပါတယ်။
နောက် အပိုင်းတွေမှာတော့ Frameworks တွေကို နားလည်နိုင်ဖို့ အထောက်အကူပြုနိုင်တဲ့ design pattern တွေကို လက်လှမ်းမီသလောက် ဆွေနွေးပါဦးမယ်။
Nay Thu Khant
Solution Architect @ onenex.co