There are no solutions. There are only tradeoffs

There are no solutions. There are only trade-offs.

Thomas Sowell ရေးတဲ့ A Conflict of Visions: Ideological Origins of Political Struggles စာအုပ် ထဲက ကောက်နှုတ်ထားတဲ့ စကားတစ်ခွန်း။ ဒီစကားက နိုင်ငံရေးမှာတင်မက ဆော့ဝဲအရေးမှာပါ မှန်နေတယ်လို့ ခံစားရတယ်။

ဆော့ဝဲတစ်ခု ရေးတဲ့အခါ Language နဲ့ Project Architecture ရွေးရတယ်။ နောက် တင်သုံးမယ့် Infrastructure ပေါ့။

ဥပမာ။ Language မှာ ဆိုရင် Java, PHP, JS ဒါမှမဟုတ် Python Architecture ဆိုရင်လည်း MVC, Redux , Clean စတာတွေ ရှိမယ်။ Infrastructure ဘက်မှာဆို Monolithic, Micro Service

ဆိုတော့ ရွေးချယ် ဆုံးဖြတ်စရာတွေ များသလို ဘယ်ဟာကို ရွေးရင်တော့ ဆရာကြီး ဘယ်ဟာကိုရွေးရင်တော့ နလပိန်းတုန်း ဆိုတာမျိုး ခွဲခြားမြင်လာတာမျိုး ရှိတယ်။

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

Laravel ကနေ Express ကို ကူးတဲ့အခါ Laravel မှာ ကိုယ်ဘာမှ လုပ်စရာ မလိုပဲ အရန်သင့် သုံးလို့ရတဲ့ Feature တွေကို Express မှာ Library ပေါင်းမြောက်များစွာ ထည့်ပြီးမှ ရတဲ့အခါ Ecosystem တစ်ခုတည်းမှာပဲ ပိတ်မိနေချင်မိပြန်ရော။

Lecture ချိန်မှာ C, C++ ရဲ့ တင်းကြပ်လှတဲ့ Static Type စနစ်နဲ့ ပင်ပန်းနေတဲ့အချိန် PHP မှာ $ တစ်ခုနဲ့ ကြိုက်ရာကြေညာလို့ရတဲ့ Dynamic Type ကိုကြွေမိတဲ့ အခိုက်အတန့်တွေလည်း ရှိရဲ့။ ဒီတော့ ဘယ်ဟာကြီးကတော့ ကောင်းလှပါချည်ရဲ့ဆိုတာမျိုး တစ်ခုတည်းကို ဖက်တွယ်ပြီး ကြွေးကျော်နေဖို့ ခက်လာတယ်။

Programmer တိုင်းမှာ ကိုယ်ရင်းနှိးကျွမ်းဝင်တဲ့ ကိုယ်အမြတ်တနိုး တန်ဖိုးထားရတဲ့ Language Framework Architecture တွေဆိုတာ ရှိတက်ကြမယ်ထင်တယ်။ ကျွန်တော့မှာတော့ ရှိတယ်။ ဘေးကလူတွေကိုလည်း ကိုယ့်ထမင်းကိုယ်စားပြီး ကိုယ်သဘောကျတဲ့ ကိုယ်သုံးနေတဲ့ Language, Framework, Architecture တွေကို Promotion ဆင်းပေးတက်တယ်။ ဒီအထိက အိုကေပေမယ့် ကိုယ်သိတာသာ အမှန်ဆုံး ကိုယ်သိတာသာ အကောင်းဆုံး ဆိုတာမျိုးကတော့ ကိုယ့်တက်လမ်း ကိုယ်ပိတ်ထားသလို ဖြစ်မယ် ထင်တယ်။ နောက်ပိုဆိုးတာက ဒီ Language, Framework နဲ့ Architecture သိမှ ဆရာကြီး မသိတဲ့ သူတွေက နလပိန်းတုန်းဆိုတဲ့ အမြင်ပါ ရှိလာတာက ပြဿနာ။ ထားတော့ ဒါက Personal Issue တွေ Insecurity တွေနဲ့ ဆိုင်မယ်ထင်ပါတယ်။

နောက်ပိုင်း ကိုယ့်ရဲ့ မကောင်းတဲ့စိတ်ကို စာတွေဖတ်ရင်း/ Youtube ဗီဒီယိုတွေကြည့်ရင်း ဆုံးမရတယ်။ အဲ့မှာ Fireship ဆိုတဲ့ Youtube Channel က ဆရာသမားတစ်ယောက် ပြောထားတာကို နားဝင်သွားတယ်။ Architecture / Infra ပိုင်းနဲ့ ပက်သက်တဲ့ ဆုံးဖြတ်ချက်တွေမှာ There are no solutions. There are only trade-offs. သူက ဒီလိုပြောတယ်။ သူ့စကားတော့ မဟုတ်ဘူးပေါ့ အပေါ်က ပြောခဲ့တဲ့ နိုင်ငံရေး စာအုပ်က စာသားကို ကိုးကားထားတာ။ ဒီတော့ ကိုယ်ဖက်တွယ်ထားတဲ့အရာဆိုတာလည်း သိပ်မရှိတော့ဘူး။ အော် အရာအားလုံးမှာ Trade-offs တွေ ရှိပါလားဆိုတာမျိုး နှလုံးသွင်းဖြစ်သွားတယ်။ အပေါင်းအသင်းတွေ နီးစပ်ရာတွေကိုလည်း သိပ်ပြီး ခွဲခြားဆက်ဆံတာမျိုး သိပ်မရှိတော့ဘူး။

ဒီလိုပြောလို့လည်း ငါ့မြင်းငါစိုင်း စစ်ကိုင်းရောက်ရောက် ဆိုတာမျိုး ကိုယ်သိတာသာ အမှန်ဆိုပြီး တစ်ဘက်ပိတ်နေဖို့ ပြောတာလည်း မဟုတ်ရပါဘူး။ ကိုယ့်ရွေးချယ်မှုမှာ ဘယ်လိုမျိုး အားသာချက်တွေရှိပြီး ဘယ်လိုမျိုး အားနည်းချက်တွေရှိမယ်။ ဒီ Language, Framework , Architecture ရဲ့ Trade-offs တွေက ဘယ်နည်းဘယ်ပုံဆိုတာမျိုး သိထားရင် အဆင်ပြေမှာပါ။ နောက်ဆုံးပြောရရင်တော့ မင်းမြတ်သူရလား မင်းသိင်္ခလား မသိ ရေးတဲ့စာရှိတယ် “မည်သည်ကိုမျှ သိမ်းပိုက်မထားသော” ဆိုတာ။ ဒါတွေဟာလည်း အချိန်နဲ့အမျှ ပြောင်းလဲနေတာဖြစ်လို့ ငါ့ Language, ငါ့ Framework, ငါ့ Architecture ဆိုပြီး စွဲမနေရင် စိတ်အေးချမ်းသာရှိမယ်လို့ မျှော်လင့်ရပါရဲ့ဗျား။

ဘယ်အရာကမှ One and Only အဖြေမဟုတ်ဘူးလို့ နှလုံးသွင်းရတယ်။ း ိ

ွြွွ ဆိုတာမိတရဲ့

Dart မှာ Type System တွေနဲ့ နေသားကျလာတော့ JS ရေးတဲ့အခါ Type စနစ်ကို လွမ်းမိရဲ့။

း သွားကျလာ‌ေတာ

ါတစ်ဘက် မပိတ်ဖို့

ဘာလို့ Blame နေကြတာလဲ

ကိုယ့်ကိုယ်ကို ဆရာကြီးလို့ ထင်ကြမယ်။

ဆရာကြီး

Written on December 7, 2023