Express.js in production

NSMag ရဲ့ backend ကို Express.js သုံးပြီး ရေးထားတယ်။ Node.js ကို production မှာ မသုံးဖူးတာရယ် experience ရအောင် ရယ်ဆိုပြီးတော့ သုံးဖြစ်သွားတယ်။ အဲဒီ အကြောင်းကို Experience from NSMag မှာ ရေးထားဖူးတယ်။ Express.js ဟာ ထင်တာထက် ပိုပြီး သုံးရတာ အဆင်ပြေတယ်။ documentation ထက် example code တွေကို လေ့လာပြီး ရေးရတယ်။ Express.js ဟာ Connect middleware ကို အသုံးပြုထားတဲ့အတွက် Connect Middleware document ကို အရင်ဖတ်ပြီး သုံးရင် ပိုပြီး နားလည်လွယ်ပါတယ်။

Apple ကို nsmag app update လုပ်တဲ့ အခါမှာ review လုပ်တော့ reject ဖြစ်တယ်။ ဘာဖြစ်လို့လည်းဆိုတော့ subscribe လုပ်လို့ မရတာကြောင့်လို့ ဆိုတယ်။ ကျွန်တော့် ဆီမှာတော့ ရတယ်။ သူ့မှာတော့ မရဘူး။ ဘာဖြစ်လို့လည်း လိုက်ရှာတော့ apple က review လုပ်တဲ့ အခါမှာ sandbox ကို အသုံးပြုတယ်။ ကျွန်တော်က production ကို on ထားတယ်။ ဒါကြောင့် မရဘူး ဖြစ်နေတယ်။ ဒါကြောင့် production မှာ status 21007 လာရင် sandbox ကနေ နောက်တဆင့် ပြန်စစ်ရတယ်။

Express.js မှာ အဓိက ကျွန်တော့် အတွက် ပြဿနာကတော့ callback ပြန်ပေးဖို့ မေ့တာပဲ။ async အနေနဲ့ ရေးရင် ရပေမယ့် sync အနေနဲ့ပဲ ရေးချင်တာကြောင့် callback တွေကို ပြန်ပေးဖို့ သတိထားရတယ်။ callback မပြန်တော့ client က connection timeout ဖြစ်ကုန်တယ်။ push notification အတွက် device token ရှိမရှိ စစ်ထားပြီး မရှိရင် callback ပြန်ပေးဖို့ မေ့သွားတာကြောင့် push notification allow မလုပ်ထားတဲ့သူတွေ NSMag ကို subscribe လုပ်မရဘူး ဖြစ်ကုန်တယ်။ ဒါနဲ့ သေချာ အစအဆုံး ပြန်စစ်ကြည့်မှ callback ပြန်ဖို့ တနေရာလေး ကျန်သွားတာကြောင့် ဖြစ်မှန်း သိတယ်။ ဒါကြောင့်လည်း apple က ခဏခဏ reject လုပ်နေတာ ဖြစ်လိမ့်မယ်။ apple က push allow မလုပ်ထားတဲ့ အတွက် connection timeout ဖြစ်ပြီး subscribe လုပ်မရဘူး ဖြစ်နေတာကြောင့် app ကို အမြဲ reject ပဲ လုပ်တယ်။ ပြန်ပြင်ပြီးတော့ apple မှာ ငါ server side မှာ ပြန်ပြင်ပြီးပြီ။ နောက်မှ app ကို ပြန်ပြီး submit လုပ်ပါ့မယ်လို့ ပြောထားခဲ့တော့ နောက်နေ့ မှာ apple က ချက်ခြင်းပဲ review ပြန်လုပ်ပေးတယ်။ ပြန်ပြီးတော့ app ကို submit လုပ်စရာ မလိုဘူး။ လိုအပ်တာတွေ စစ်ပြီး ၁ ရက် အတွင်းမှာ approve ဖြစ်သွားတယ်။

Express.js ဟာ RESTFUL API အတွက်ကော web အတွက်ပါ တော်တော် အသုံးဝင်တယ်။ ကျွန်တော့် အတွက် ရေးရတာ တော်တော်အဆင်ပြေတယ်။ ဒါပေမယ့် HTML syntax တွေအစား jade template နဲ့ ရေးရတာ ကြောင့် ရေးရတာ မြန်ပေမယ့် ဘဝင်မကျလှဘူး။ Jade ကလည်း မဆိုးလှဘူး။ ဒါပေမယ့် Handlebars နဲ့ နောက် ပြောင်းသုံးဖို့ စိတ်ကူးရှိတယ်။

Node.js ဟာ အခုအချိန်မှာ တော်တော် stable ဖြစ်တဲ့ အထိ အဆင့်ရောက်လာသလို Express.js ဟာ လည်း တော်တော်လေးကို ကောင်းလာပါတယ်။ လက်ရှိ production မှာ တော်တော်များများက express.js ကို အသုံးပြုကြတယ်။ နောက် အချိန်ရရင်တော့ meteor js နဲ့ production လေး တစ်ခု ရအောင် ဖန်တီး ရမယ်။

2 Comments

  1. Ye Maw says:

    Jade ကိုကျွန်တော်လဲမကြိုက်ဘူး။ အရမ်းကြီးထူးထူးခြားခြား အဆင်ပြေသွားတာမျိုးမဟုတ်ပဲ အပိုတစ်ခုကို learn လုပ်နေရသလိုပဲ။ Node.js Template ထဲမှာဆိုရင်တော့ Swig ကိုတော်တော်ကြိုက်တယ်။ Native နဲ့ပဲရေးရပြီးတော့ လိုချင်တဲ့ feature လဲတော်တော်စုံတယ်။ High scale performance တွေအတွက်တော့မပြောတတ်ဘူး။

    1. saturngod says:

      ဟုတ်တယ်။ သီးသန့် ထပ်လေ့လာနေရတယ်။ Handlebars ကို ပြောင်းသုံးဖို့ စဉ်းစားနေတယ်။ meteor js ကလည်း Handlebars ပဲ သုံးထားတော့ ၂ ခု ရော မနေအောင် နောက်ပိုင်း Handlebars နဲ့ ပဲ ရေးဖို့ စဉ်းစားထားတယ်။

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.