Callback in Node.js

Node.js ကို ရေးရင်းနဲ့ တစ်ခု ထူးခြားလာတာကို တွေ့တယ်။ Node.js ဟာ javascript နဲ့ တူသလား ဆိုတော့ ဟုတ် javascript ပါ။ သို့ပေမယ့် မတူပါဘူးလို့ ပြောရမယ့် အဆင့် တစ်ခုထိရောက်နေပြီ ဆိုတာကို သတိထားမိတယ်။ ဘာလို့ ဒီလို ဆိုရတာလဲဆိုတော့ javascript မှာ စဉ်းစားပုံနဲ့ node.js မှာ စဉ်းစားပုံက ကွာခြားလာတာတွေ ကြောင့်ပါ။

လက်ရှိ javascript မှာ ဆိုရင် အများအားဖြင့် အောက်ကလို မျိုး ရေးကြပါတယ်။

သို့ပေမယ့် node.js မှာတော့ အများအားဖြင့် callback နဲ့ ရေးကြတယ်။

callback နဲ့ function return က မတူပေမယ့် callback က ဘာ ပိုထူးလဲဆိုတော့ multi thread ပိုင်းတွေ မှာ သိသာပါတယ်။ function ကတော့ multi thread မသွားပဲ တဆင့်ခြင်းဆီ ကို သွားပါတယ်။ node.js မှာ database ဖတ်နေတဲ့ အပိုင်းနဲ့ တခြားဘက်မှာ data တွေ ထည့်နေတဲ့ အပိုင်း အပြိုင် ရေးထားလို့ရတာပေါ့။ နောက်ပြီးတော့ error checking ပိုင်းတွေမှာလည်း အသုံးဝင်လာပါတယ်။

ဒီလိုမျိုး callback တွေ အဆင့်ဆင့် ရေးရတဲ့ အခါမှာ code က ရှုပ်ထွေးလာပါတယ်။ code တွေကို သီးသန့် ခွဲရေးတဲ့ အနေနဲ့ ကိုယ်ပိုင် module တွေကို တည်ဆောက်ပြီး အသုံးပြုလို့ရပါတယ်။

အဲဒီ module ကိုတော့ ဒီလို ပြန်ပြီး ခေါ်သုံးလို့ရပါတယ်။

တနည်းပြောရင် ဒီလို modules တွေ ခွဲရေးလိုက်တဲ့ အခါမှာ callback တွေကို ချုံလို့ရသလို MVC pattern အနေနဲ့လည်း ခွဲရေးလို့ရလာပါတယ်။ နောက်ပြီး callback ရေးတဲ့ အထဲမှာ သဘောကျတဲ့ အပိုင်းက return value ကို တစ်ခုထက် မက ပြန်လာလို့ရတယ်။ ဒါဟာ တော်တော်လေးကို အဆင်ပြေတယ်လို့ ဆိုရမယ်။

Node.js နဲ့ ပတ်သက်ပြီးတော့

post ၂ ခုကို ဖတ်လိုက်တဲ့ အခါမှာ ပိုပြီး နားလည်လာပါလိမ့်မယ်။ အခုအချိန်မှာတော့ node.js ဟာ windows ပေါ်မှာ မရသေးတဲ့အတွက်ကြောင့် windows သမားတွေ အနေနဲ့ စမ်းမရဖြစ်နေတယ်။ မကြာခင်မှာတော့ ရလာလိမ့်မယ်။ နောက်ပြီး nodeup podcast မှာ ပြောသွားတဲ့ အထဲမှာ အံဩစရာ အချက်တစ်ခု ပါတယ်။ windows server က 60% လောက် ကမ္ဘာပေါ်မှာ အသုံးပြုနေတယ် ဆိုတဲ့ အချက်ပဲ။ ကျွန်တော် လုံးဝ ကို မထင်ထားတဲ့ အချက်ပါ။ ဒါကြောင့် node.js ကို သူတို့ windows ပေါ်မှာ ရမှ ဖြစ်မယ်ဆိုပြီး ပြောသွားတာလေးကို နားထောင်လိုက်ရတယ်။

အခုအချိန်မှာ node.js က အရမ်းပဲ ငယ်လွန်းနေသေးတယ်။ တနည်းပြောရင် လွန်ခဲ့တဲ့ ၃ နှစ်လောက်က ROR လိုပေါ့ဗျာ။ နောင်တချိန်မှာတော့ ROR လို ဖြစ်လာမယ်လို့ မျှော်လင့်ရင်းနဲ့ လက်ရှိ ရုံးက server side တွေကို node.js နဲ့ပဲ ရေးနေမိတယ်။

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.