Web Application, Application နဲ့ Web Developer
ကျွန်တော်တို့ ရေးလိုက်တဲ့ code တွေက သူ့ဟာသူနဲ့ဆိုရင် စာလုံးတွေသက်သက်ပဲဖြစ်တဲ့အတွက် ဘာအဓိပ္ပါယ်မှ မရှိပါဘူး။ ဒီစာလုံးတွေရဲ့ အဖြတ်အရပ်နဲ့ လိုရင်းကို နားလည်ပြီး machine instruction တွေဖြစ်အောင် ပြန်ထုတ်ပေးနိုင်တဲ့ ကြားခံ program တွေသာမရှိဘူးဆိုရင် ဒီ code တွေက သာမန်ဖိုင်တခုထက် ပိုမှာမဟုတ်ဘူးပေါ့။ ဒီ program တွေကို compiler, interpreter စသဖြင့် ခေါ်ကြတယ်။ တချို့ language တွေကို compiler သုံးပြီး binary format ဖြစ်အောင် တခါတည်း ပြောင်းဖို့ ရည်ရွယ်ပြီး သက်ဆိုင်ရာ compiler တွေရေးထားကြတယ်။ ဥပမာ C, Go, Rust
တချို့ language တွေကိုတော့ interpreter သုံးပြီး တကယ် code ကို run တဲ့အချိန်မှ စာလုံးတွေကိုဖတ်၊ precompiled လုပ်ပြီးသား low level routine တွေကိုခေါ်သုံးရင်း အလုပ်လုပ်စေဖို့ interpreter တွေရေးထားကြတယ်။ ပြောရရင် ကြားက စကားပြန်ထားသလိုမျိုးပေါ့။ ဒါမျိုးပုံစံကို ဟိုးတုန်းက JavaScript, php နဲ့နောက်တခြား scripting language တွေမှာ မြင်ခဲ့ရပေမယ့် နောက်ပိုင်းတော့ ဘာသာမပြန်ခင် တဆင့်အရင် low-level bytecode ထုတ်ရင်ထုတ် (ဥပမာ Java, C#, Python) ဒါမှမဟုတ်လည်း Just in time compilation သုံးပြီး ပိုမြန်မြန်အလုပ်လုပ်နိုင်တဲ့ hybrid ပုံစံတွေကသာ နေရာယူလာတယ်။
အဓိကအချက်က ဘာနဲ့ဘယ်လိုလုပ်လုပ်၊ ဘယ်လောက်ပဲရှုပ်ထွေးတဲ့ program ဖြစ်ဖြစ် ရည်ရွယ်ချက်က data တွေ သယ်ဆောင်ဖို့ data တွေကိုင်တွယ်ဖို့ data တွေဖတ်ဖို့ပါပဲ။ program တခု data တွေကို ဘယ်လိုစိစစ်မလဲ ကိုင်တွယ်မလဲဆိုတဲ့ logic ကိုတော့ စောစောကပြောတဲ့ programming language တွေနဲ့ ရေးရတာပေါ့။ Data ကို ဘယ်လိုလက်ခံမှာလဲ ဒါမှမဟုတ် user တွေ အဲဒီ program ကိုဘယ်လိုသုံးလို့ရလဲဆိုတာက user interface ကိုအဆုံးအဖြတ်ပေးတယ်။ GUI လို့ခေါ်တဲ့ screen ပေါ်မှာ ခလုတ်ကလေးတွေ နှိပ်ရမှာလား။ process signal တွေနဲ့လား။ ဒါမှမဟုတ်ပဲ network ပေါ်ကနေ invoke လုပ်ရမှာလား။
ဒီထဲမှာ တချို့ program တွေကိုတော့ network ကိုဖြတ်ပြီး socket တခုခုဆီ ပို့လာတဲ့ data တွေကို OS ကတဆင့်ဖတ်ယူပြီး user တွေသုံးနိုင်အောင် တည်ဆောက်ထားတယ်။ ဒါဘယ်လို app လို့ထင်လို့လဲ။ Web App ဆိုတာ ဒါပါပဲ။ API ဆိုတာ network ပေါ်က ပို့လိုက်တဲ့ data တွေက ဘယ်လိုပုံ ဘယ်လို structure ဘယ် information တွေပါရမယ်ဆိုတဲ့ သတ်မှတ်ချက်တွေပဲ ဖြစ်တယ်။
HTTP ဆိုတာ network ပေါ်ကတဆင့် data တွေပေးပို့ရာမှာ နှစ်ဖက်လုံးက နားလည်နိုင်မယ့် လုပ်ထုံးတွေဖြစ်အောင် ကြိုသတ်မှတ်ထားတဲ့ စည်းမျဥ်း protocol တခုဖြစ်ပြီး RESTful API ဆိုတာကကျ data structure နဲ့ communication point (API) တွေကို သတ်မှတ်ပုံတွေထဲက စတိုင်တခုပါ။
Application developer တယောက်အနေနဲ့ 70% လောက်က ကိုယ့် program ရဲ့ data transformation နဲ့ manipulation logic တွေကို ကိုင်တွယ်ရဖို့လိုပြီး 30% လောက်က security နဲ့ technical concern (ဥပမာ database, authentication, authorization, logging, metric စသဖြင့်) ဖြစ်နေနိုင်တယ်။ Web Applications ဆိုတာ application တွေပါပဲ။ ဘယ်သူမဆို တည်ဆောက်နိုင်တယ်။ Web App တခုဖြစ်လာဖို့ တဆင့်ပြီးတဆင့် functionality တွေ ချိတ်ဆက်သွားရတယ်။ ဘာမှော်မှ မရှိပါဘူး။