DEV Community

Aung Myat Moe
Aung Myat Moe

Posted on • Originally published at aungmyatmoe.me on

Paradigm Shift in Software Engineering

ဘာလို့ Developer တွေက Language တစ်ခုထဲမှာ Stuck နေတာလဲဆိုရင် Willing To Learn မဖြစ်ကြလို့ချည်းပဲပြောရင်လည်းမှားတယ်လို့ပြောလို့ရသလို Paradigm Shift လို့ခေါ်တဲ့‌ တွေးခေါ်နည်းပုံစံ အသစ်ကိုလိုက်မပြောင်းနိုင်ကြလို့လည်းပါတယ်လို့ပြောလို့ရတယ်။

တစ်ခုထဲမှာပဲနေရတာကိုသဘောကျတဲ့အခါ ဒီလိုမျိုးလုပ်တာက အန္တာရယ်များတဲ့ Mindset လို့ပြောလို့ရတယ်။ Software Engineer တွေလည်းတခြား Field ကလူတွေလိုမျိုး Secure ဖြစ်တဲ့ Job ကိုလိုအပ်ပါတယ်။ Secure ဖြစ်ဖို့အတွက်က ကိုယ့်ဖက်က လိုတဲ့ Skills တွေပြည့်နေဖို့လည်းလိုအပ်ပါတယ်။ Skill တွေဘယ်လိုဖြည့်မလဲပေါ့။ Programming Language ဟာ Natural Language လိုမျိုးမဟုတ်တာကြောင့် တစ်ခုခုနဲ့ တစ်ခု Jump လို့ရတယ်ဆိုတာကိုသိထားဖို့လိုအပ်ပါတယ်။

ဘယ်လို Jump မလဲ။ ပထမဆုံး Language အသစ်ကို စပြီးကြည့်ဖို့လေ့လာတယ်ဆိုပါစို့။ သူက Paradigm အတူတူပဲလား။ Paradigm တူတယ်ဆိုတာရေးနည်းတူတယ်၊ တွေးခေါ်ပုံတူတယ်လို့ပြောလို့ရတယ်။ တူတယ်ဆိုရင်ပြောင်းကြည့်တဲ့အခါ Syntax ကလွဲရင် Theory, Concept ကတူတူပါပဲ။ ဆိုပါစို့ ကိုယ်က Java ရတယ်ဆိုရင် Object Oriented Programming မှာ Strong ဖြစ်တယ်လို့ပြောလို့ရတယ်။ ဒီအခါ C# လို၊ Typescript လိုကောင်ကိုလေ့လာပြီဆိုရင်လည်းအခက်အခဲရှိမှာမဟုတ်ပါဘူး။ ဘာလို့ဆိုရင် ရေးနည်းပုံစံနဲ့အတွေးအခေါ်အတူတူပဲဖြစ်တဲ့ Programming Language ဖြစ်နေတာကြောင့်ပါ။

ဒီတော့ကိုယ်က JavaScript Developer ဆိုရင်တော့ Java လိုကောင်ကိုကြည့်ရတာလက်ပေါက်ကပ်မှာပါ။ Functional Spaghetti Code တွေပဲရေးလာရတော့ကိုယ်က OOP လို Concept တွေတစ်ခုလုံးကိုခေါင်းထဲထည့်ဖို့ကအရှေ့က Paradigm ကိုပါမေ့ပစ်မှရမှာပါ။ မဟုတ်ရင်ရောသွားမှာဖြစ်သလို Verbose လည်းဖြစ်စရာလို့ပြောလို့ရတယ်။ OOP သမားက FP ကိုပြောင်းတဲ့အခါမှာလည်းပုံစံတူပဲဖြစ်မှာပါ။ OOP က Mutable Nature ကိုဖျောက်ပြီးတော့ Immutable Nature ကိုပြောင်းရမှာဖြစ်တာကြောင့် Metal တစ်ခုလုံးကိုပြောင်းလဲပစ်ဖို့လိုအပ်ပါတယ်။

အခုနောက်ပိုင်းမှာ OOP + FP ကို ရောသုံးတဲ့ Hybrid ရေးနည်းပုံစံတွေရှိလာပြီဖြစ်တာကြောင့်မို့လို့ မိမိ အနေနဲ့ နှစ်ခုလုံးကိုနားလည်ထားဖို့လိုအပ်ပါတယ်။ OOP နဲ့ FP အပြင် Reactive Programming ကိုလည်းသိထားသင့်တယ်။ Reactive Nature ရှိမှုကို Application တိုင်းမှာတွေ့နေရတာဖြစ်သလို Event Driven Architecture (EDA) မှာလည်း Reactive Programming ကိုထဲထဲဝင်ဝင်သုံးတာကြောင့် ဒါကိုပါလေ့လာထားဖို့လိုအပ်ပါတယ်။

ဒီလိုမျိုး Paradigm Shift ဖြစ်တဲ့အရွေ့တွေမှာ SWE တွေအနေနဲ့ ပြောင်းလွယ်ပြင်လွယ် လိုက်လျောညီထွေလုပ်နိုင်ဖို့လိုတယ်။ မနေနိုင်ဘူးဆိုရင် ကိုယ့်ရဲ့အလုပ်က ကိုယ့်ရဲ့တစ်ခုထဲမှာတွယ်ကပ်တတ်တဲ့စိတ်ကြောင့် Secure ဖြစ်မှာမဟုတ်ပါဘူး။

Top comments (0)