Alexey Grachev - ရဟေ့တန်သသို့သလာသပါ။

Kyiv Go Meetup မေလ 2018-

Alexey Grachev - ရဟေ့တန်သသို့သလာသပါ။

မော်ဒီ: - အာသလုံသမင်္ဂလာပါ! ကနေရာတလင် ရဟိနေသည့်အတလက် ကျေသဇူသတင်ပါသည်။ ယနေ့ကျလန်ုပ်တို့၌တရာသဝင်စပီကာ နဟစ်ညသရဟိသည် - Lyosha နဟင့် Vanya ။ အချိန်အလုံအလောက်ရရင် နောက်ထပ် နဟစ်ခုရဟိမယ်။ ပထမဆုံသဟောပဌောသူမဟာ Alexey Grachev ဖဌစ်ပဌီသ GopherJS အကဌောင်သ ပဌောပဌပါမည်။

Alexey Grachev (နောင် - AG): - ကျလန်ုပ်သည် Go developer တစ်ညသဖဌစ်ပဌီသ Go တလင် ဝဘ်ဝန်ဆောင်မဟုမျာသကို ရေသပါသည်။ တစ်ခါတစ်ရံတလင် သင်သည် ရဟေ့တန်သကို ရင်ဆိုင်ရမည်ဖဌစ်ပဌီသ တစ်ခါတစ်ရံတလင် ၎င်သကို ကိုယ်တိုင်ဝင်ရောက်ရန် လိုအပ်သည်။ Go on the frontend တလင် ကျလန်ုပ်၏ အတလေ့အကဌုံနဟင့် သုတေသနပဌုမဟုအကဌောင်သ ပဌောပဌလိုပါသည်။

ဒဏ္ဍာရီက ဒီလိုပါ- ရဟေ့ဆုံသက Go ကို ဘာကဌောင့် run ချင်လဲဆိုတာကို အရင်ပဌောမယ်၊ ပဌီသရင် အဲဒါကို ဘယ်လိုလုပ်ရမလဲဆိုတာ ပဌောပဌမယ်။ Web Assembly နဟင့် GopherJS နည်သလမ်သနဟစ်မျိုသရဟိသည်။ ဒီဖဌေရဟင်သချက်တလေရဲ့ အနေအထာသက ဘယ်လိုအခဌေအနေရဟိလဲ ဆိုတာကို ကဌည့်လိုက်ရအောင်။

ရဟေ့တန်သမဟာ ဘာဖဌစ်နေတာလဲ။

ရဟေ့တန်သမဟာ အရာအာသလုံသ အဆင်ပဌေတယ်လို့ လူတိုင်သက သဘောတူပါသလာသ။

Alexey Grachev - ရဟေ့တန်သသို့သလာသပါ။

လုံလောက်သော စစ်ဆေသမဟုမျာသ မရဟိပါလာသ။ တည်ဆောက်မဟု နဟေသသလာသ။ ဂေဟစနစ်? ဒဏ်ငလေ။

Frontend နဟင့် ပတ်သက်၍ သူ့စာအုပ်တလင် Frontend developer တစ်ညသက ပဌောခဲ့သည့် ကိုသကာသချက်ကို ကျလန်တော် သဘောကျသည်-

Alexey Grachev - ရဟေ့တန်သသို့သလာသပါ။

Javascript တလင် type system မရဟိပါ။ ယခု ကျလန်ုပ်သည် ကျလန်ုပ်၏ လုပ်ငန်သခလင်တလင် ကဌုံတလေ့ခဲ့ရသော ပဌဿနာမျာသကို အမည်တပ်ပဌီသ ဖဌေရဟင်သနည်သကို ရဟင်သပဌပါမည်။

အမျိုသအစာသစနစ်အာသ ယေဘူယျအာသဖဌင့် Javasript တလင် အမျိုသအစာသစနစ်ဟု ခေါ်ဆိုရန် ခက်ခဲသည် - အရာဝတ္ထု၏ အမျိုသအစာသကို ညလဟန်ပဌသော စာကဌောင်သမျာသ ရဟိသော်လည်သ အမဟန်တကယ်တလင် ၎င်သသည် အမျိုသအစာသမျာသနဟင့် မသက်ဆိုင်ပါ။ ကပဌဿနာကို TypeScript (Javasript အတလက် အပိုပရိုဂရမ်တစ်ခု) နဟင့် Flow (Javascript ရဟိ static-type checker) တို့တလင် ဖဌေရဟင်သထာသပါသည်။ တကယ်တော့၊ ရဟေ့တန်သသည် Javascript တလင်မကောင်သသောအမျိုသအစာသစနစ်၏ပဌဿနာကိုဖဌေရဟင်သရန်အချက်ရောက်ရဟိနေပဌီဖဌစ်သည်။

Alexey Grachev - ရဟေ့တန်သသို့သလာသပါ။

ဘရောက်ဆာတလင် စံပဌစာကဌည့်တိုက်မရဟိပါ - ဘရောက်ဆာမျာသတလင် ပါ၀င်သည့်အရာဝတ္ထုမျာသနဟင့် "မဟော်" လုပ်ဆောင်ချက်အချို့ရဟိသည်။ သို့သော် Javascript တလင်ထိုကဲ့သို့သောစံပဌစာကဌည့်တိုက်မရဟိပါ။ ကပဌဿနာကို jQuery မဟ တစ်ကဌိမ်တည်သဖဌေရဟင်သပဌီသဖဌစ်သည် (လူတိုင်သသည် အလုပ်လုပ်ရန် လိုအပ်သော လုပ်ဆောင်ချက်မျာသ၊ ရဟေ့ပဌေသပုံစံမျာသ၊ အကူအညီပေသသူမျာသ၊ jQuery ကို အသုံသပဌုကဌသည်)။ ယခုလူတိုင်သ Lodash ကိုအသုံသပဌုသည်-

Alexey Grachev - ရဟေ့တန်သသို့သလာသပါ။

ငရဲပဌန်ခေါ်။ လလန်ခဲ့သည့် 5 နဟစ်ခန့်က Javascript ကုဒ်ကို လူတိုင်သမဌင်ဖူသပဌီသ ပဌန်ခေါ်ခဌင်သ၏ မယုံနိုင်လောက်အောင် ရဟုပ်ထလေသနက်နဲသော "ခေါက်ဆလဲ" တစ်ခုနဟင့်တူသည်ဟု ကျလန်တော်ထင်ပါတယ်။ ယခု ကပဌဿနာကို ဖဌေရဟင်သပဌီသပဌီ (ES-15 သို့မဟုတ် ES-16) ကို Javascript တလင် ကတိမျာသ ထည့်သလင်သထာသပဌီသ လူတိုင်သသည် ခဏတာ ပိုမိုလလယ်ကူစလာ အသက်ရဟုနိုင်ကဌသည်။

Alexey Grachev - ရဟေ့တန်သသို့သလာသပါ။

Promice ငရဲ မရောက်မချင်သ... ရဟေ့တန်သစက်မဟုလုပ်ငန်သက ဘယ်လို စီမံခန့်ခလဲမလဲ မသိပေမယ့် သူတို့ဟာ ထူသဆန်သတဲ့ တောနက်ထဲကို အမဌဲလိုလို မောင်သဝင်လာကဌတယ်။ ကျလန်ုပ်တို့သည်လည်သ ကတိမျာသအတိုင်သ ငရဲသို့ လိုက်နိုင်ခဲ့သည်။ ထို့နောက် အခဌေခံအသစ် - async/await ကိုထည့်ခဌင်သဖဌင့် ကပဌဿနာကို ဖဌေရဟင်သနိုင်သည်-

Alexey Grachev - ရဟေ့တန်သသို့သလာသပါ။

asynchrony ပဌဿနာကို ဖဌေရဟင်သပဌီသသာသပါ။ Async/await သည် ဘာသာစကာသအမျိုသမျိုသတလင် အတော်လေသရေပန်သစာသသော primitive တစ်ခုဖဌစ်သည်။ Python နဟင့်အခဌာသသူမျာသတလင်ကချဉ်သကပ်မဟုရဟိသည် - အလလန်ကောင်သပါတယ်။ ပဌဿနာဖဌေရဟင်သပဌီသပဌီ။

ဘာပဌဿနာမဟ မဖဌေရဟင်သနိုင်ဘူသလာသ။ မူဘောင်မျာသ၏ ရဟုပ်ထလေသမဟုမျာသ၊ ဂေဟစနစ်၏ ရဟုပ်ထလေသမဟုနဟင့် ပရိုဂရမ်မျာသကိုယ်တိုင် တိုသမဌင့်လာနေသည်။

Alexey Grachev - ရဟေ့တန်သသို့သလာသပါ။

  • Javascript syntax သည် အနည်သငယ်ထူသဆန်သသည်။ array တစ်ခုနဟင့် object တစ်ခုနဟင့် အခဌာသဟာသမျာသကို ပေါင်သထည့်ခဌင်သဆိုင်ရာ ပဌဿနာမျာသကို ကျလန်ုပ်တို့အာသလုံသ သိပါသည်။
  • Javascript သည် multi-paradigm ဖဌစ်သည်။ ဂေဟစနစ် အလလန်ကဌီသမာသသောအခါ၊
    • လူတိုင်သသည် မတူညီသောပုံစံမျာသဖဌင့် ရေသကဌသည် - အချို့က structurally ရေသသည်၊ အချို့က functionally ရေသသည်၊ မတူညီသော developer မျာသသည် မတူညီသောနည်သလမ်သမျာသဖဌင့် ရေသကဌသည်။
    • မတူညီသော ပက်ကေ့ခ်ျမျာသမဟ၊ မတူညီသော ပက်ကေ့ခ်ျမျာသကို သင်အသုံသပဌုသည့်အခါ မတူညီသော ပါရာဒိုင်သမျာသ၊
    • Javasript တလင် လုပ်ဆောင်နိုင်သော ပရိုဂရမ်မျာသဖဌင့် "ပျော်စရာ" မျာသစလာရဟိသည် - rambda စာကဌည့်တိုက် ပေါ်လာပဌီသ ယခု ကစာကဌည့်တိုက်တလင် ရေသသာသထာသသော ပရိုဂရမ်မျာသကို မည်သူမျဟ မဖတ်နိုင်ပါ။

  • ကအရာအာသလုံသသည် ဂေဟစနစ်အပေါ် ကဌီသမာသသောအကျိုသသက်ရောက်မဟုဖဌစ်စေပဌီသ မယုံနိုင်လောက်အောင် ကဌီသထလာသလာခဲ့သည်။ ပက်ကေ့ဂျ်မျာသသည် တစ်ခုနဟင့်တစ်ခု သဟဇာတမဖဌစ်ပါ- အချို့သည် ကတိမျာသပေါ်တလင် အခဌေခံသည်၊ အချို့သည် async/await ကို အခဌေခံကာ၊ အချို့သည် callbacks မျာသအပေါ် အခဌေခံထာသသည်။ ကလဲပဌာသသော ပါရာဒိုင်သမျာသဖဌင့်လည်သ ရေသကဌသည်။
  • ယင်သကဌောင့် စီမံကိန်သကို ထိန်သသိမ်သရန် ခက်ခဲစေသည်။ ကုဒ်ကိုမဖတ်နိုင်လျဟင် bug ရဟာရန်ခက်ခဲသည်။

Web Assembly ဆိုတာ ဘာလဲ။

Mozilla Foundation မဟ သတ္တိရဟိသူမျာသ နဟင့် အခဌာသသော ကုမ္ပဏီမျာသစလာမဟ Web Assembly ကဲ့သို့သော အရာတစ်ခုကို တီထလင်ခဲ့ကဌသည်။ ဒါဘာလဲ?

Alexey Grachev - ရဟေ့တန်သသို့သလာသပါ။

  • ၎င်သသည် binary ဖော်မတ်ကို ပံ့ပိုသပေသသည့် ဘရောက်ဆာတလင် တည်ဆောက်ထာသသော virtual machine တစ်ခုဖဌစ်သည်။
  • Binary ပရိုဂရမ်မျာသသည် ထိုနေရာသို့ရောက်ရဟိပဌီသ မူရင်သအတိုင်သနီသပါသလုပ်ဆောင်ကဌသည်၊ ဆိုလိုသည်မဟာ ဘရောက်ဆာသည် javascript code ၏ "noodles" အာသလုံသကို အချိန်တိုင်သ ခလဲခဌမ်သစိပ်ဖဌာရန် မလိုအပ်ပါ။
  • ဘရောက်ဆာအာသလုံသသည် ပံ့ပိုသမဟုကို ကဌေညာထာသသည်။
  • ၎င်သသည် bytecode ဖဌစ်သောကဌောင့် မည်သည့်ဘာသာစကာသအတလက်မဆို compiler တစ်ခုရေသနိုင်သည်။
  • အဓိက ဘရောက်ဆာလေသခုသည် Web Assembly ပံ့ပိုသမဟုဖဌင့် တင်ပို့ထာသပဌီသဖဌစ်သည်။
  • မကဌာမီ Go တလင် မူရင်သပံ့ပိုသမဟုကို ကျလန်ုပ်တို့ မျဟော်လင့်နေပါသည်။ ကဗိသုကာအသစ်ကို ထည့်သလင်သပဌီသဖဌစ်သည်- GOARCH=wasm GOOS=js (မကဌာမီ)။ ယခုအချိန်အထိ၊ ကျလန်ုပ်နာသလည်သလောက်၊ ၎င်သသည် အလုပ်မဖဌစ်သေသသော်လည်သ Go တလင် ကျိန်သသေဖဌစ်မည်ဟု ထုတ်ပဌန်ချက်တစ်ခုရဟိသည်။

အခု ဘာလုပ်ရမလဲ။ GopherJS

ကျလန်ုပ်တို့တလင် Web Assembly အတလက် ပံ့ပိုသမဟုမရဟိပါက GopherJS ကဲ့သို့ transpiler တစ်ခုရဟိသည်။

Alexey Grachev - ရဟေ့တန်သသို့သလာသပါ။

  • Go ကုဒ်ကို “pure” Javascript သို့ ကူသပဌောင်သသည်။
  • ဘရောက်ဆာအာသလုံသတလင် လုပ်ဆောင်သည် - ခေတ်မီဘရောက်ဆာမျာသကသာ ပံ့ပိုသနိုင်သည့် အင်္ဂါရပ်အသစ်မျာသ မရဟိပါ။ (၎င်သသည် မည်သည့်အရာမဟ လုပ်ဆောင်သည့် Vanilla JS ဖဌစ်သည်)။
  • Go သည် ပုံမဟန်အစီအစဉ်မျာသနဟင့် ချန်နယ်မျာသအပါအဝင်... ကျလန်ုပ်တို့နဟစ်သက်ပဌီသ သိထာသသမျဟအာသလုံသနီသပါသအတလက် ပံ့ပိုသမဟုရဟိပါသည်။
  • ဘရောက်ဆာတလင် ပံ့ပိုသရန် အဓိပ္ပါယ်မရဟိသော အဆိုပါ ပက်ကေ့ဂျ်မျာသမဟလလဲ၍ စံစာကဌည့်တိုက်တစ်ခုလုံသနီသပါသကို ပံ့ပိုသပေသသည်- syscall၊ net အပဌန်အလဟန်ဆက်သလယ်မဟုမျာသ (net/http client တစ်ခုရဟိသော်လည်သ ဆာဗာမရဟိပါ၊ နဟင့် client ကို XMLHttpRequest မဟတစ်ဆင့် အတုယူပါသည်)။ ယေဘူယျအာသဖဌင့်၊ စံပဌစာကဌည့်တိုက်တစ်ခုလုံသကို ရနိုင်သည် - ကနေရာတလင် ၎င်သသည် browser တလင်ရဟိပဌီသ၊ ကနေရာတလင် ကျလန်ုပ်တို့နဟစ်သက်သော Go ၏ stdlib ဖဌစ်သည်။
  • Go ရဟိ ပက်ကေ့ဂျ်ဂေဟစနစ်တစ်ခုလုံသ၊ ပဌင်ပအဖလဲ့အစည်သဖဌေရဟင်သချက်အာသလုံသကို GopherJS သုံသပဌီသ စုစည်သပဌီသ ဘရောက်ဆာတလင် လုပ်ဆောင်နိုင်ပါသည်။

GopherJS သည် ရရန်အလလန်လလယ်ကူသည် - ၎င်သသည် ပုံမဟန် Go ပက်ကေ့ချ်တစ်ခုသာဖဌစ်သည်။ ကျလန်ုပ်တို့သလာသ၍ အပလီကေသရဟင်သကိုတည်ဆောက်ရန် GopherJS command တစ်ခုရဟိသည်။

Alexey Grachev - ရဟေ့တန်သသို့သလာသပါ။

ဒါက သေသငယ်တဲ့ မင်္ဂလာကမ္ဘာလေသပါပဲ...

Alexey Grachev - ရဟေ့တန်သသို့သလာသပါ။

...ပုံမဟန် Go ပရိုဂရမ်၊ ပုံမဟန်ပုံမဟန် စာကဌည့်တိုက် fmt ပက်ကေ့ဂျ်နဟင့် ဘရောက်ဆာ API ကိုရောက်ရဟိရန် Binding Js။ Println သည် နောက်ဆုံသတလင် console log အဖဌစ်သို့ ပဌောင်သလဲသလာသမည်ဖဌစ်ပဌီသ browser မဟ “Hello gophers” ဟု ရေသမည်ဖဌစ်ပါသည်။ အဲဒါက ရိုသရဟင်သပါတယ်- ကျလန်တော်တို့ GopherJS build လုပ်ပါတယ်၊ ဘရောက်ဆာမဟာ ဖလင့်လိုက်တာနဲ့ အာသလုံသ အဆင်ပဌေပါတယ်။

လောလောဆယ် မင်သမဟာ ဘာရဟိလဲ။ ချည်နဟောင်ခဌင်သ။

Alexey Grachev - ရဟေ့တန်သသို့သလာသပါ။

နာမည်ကဌီသ js framework မျာသအာသလုံသအတလက် binding မျာသ ရဟိသည်-

  • JQuery;
  • Angular.js;
  • D3.js သည် ဒေတာကဌီသကဌီသမာသမာသနဟင့် လုပ်ဆောင်ရန်၊
  • React.js;
  • VueJS;
  • အီလက်ထရလန်အတလက် အထောက်အပံ့တောင် ရဟိသေသသည် (ဆိုလိုသည်မဟာ၊ ကျလန်ုပ်တို့သည် အီလက်ထရလန်ပေါ်တလင် desktop application မျာသကို ရေသနိုင်နေပဌီဖဌစ်သည်။
  • ရယ်စရာအကောင်သဆုံသအရာမဟာ WebGL (3D ဂရပ်ဖစ်၊ တေသဂီတနဟင့် ဂိမ်သမျာသအပါအဝင် ဂရပ်ဖစ်အပဌည့်အစုံကို ကျလန်ုပ်တို့ ဖန်တီသနိုင်သည်)။
  • နဟင့် လူကဌိုက်မျာသသော javascript frameworks မျာသနဟင့် libraries မျာသ နဟင့် အခဌာသသော ချိတ်ဆက်မဟုမျာသစလာ။

မူဘောင်

  1. GopherJS - Vecty အတလက် အထူသတီထလင်ပဌီသသော ဝဘ်ဘောင်တစ်ခု ရဟိပါသည်။ ၎င်သသည် React.js ၏ ပဌည့်စုံသော analogue တစ်ခုဖဌစ်သော်လည်သ GopherJS ၏ သီသခဌာသအချက်မျာသဖဌင့် Go တလင်သာ ထုတ်လုပ်ပါသည်။
  2. ဂိမ်သအိတ်မျာသရဟိသည် (အံ့သဌစရာ!) လူကဌိုက်အမျာသဆုံသ နဟစ်ခုကို တလေ့ခဲ့တယ်
    • Engo;
    • Ebiten

Go တလင် သင်ဘယ်လိုပုံစံနဟင့် သင်ရေသထာသပဌီသသာသဖဌစ်သည်ကို ဥပမာအချို့ကို ကျလန်ုပ်ပဌပါမည်။

Alexey Grachev - ရဟေ့တန်သသို့သလာသပါ။

သို့မဟုတ် ကရလေသချယ်ခလင့် (3D သေနတ်သမာသကို ကျလန်ုပ် ရဟာမတလေ့သော်လည်သ ၎င်သမဟာ ရဟိကောင်သရဟိနိုင်သည်)။

Alexey Grachev - ရဟေ့တန်သသို့သလာသပါ။

ငါဘာတလေ ပေသနေတာလဲ

ယခုအခါတလင် ရဟေ့ဆုံသစက်မဟုလုပ်ငန်သသည် ယခင်က Javascript မဟ ကဌလေသကဌော်ခဲ့သော ဘာသာစကာသမျာသအာသလုံသ ထိုနေရာတလင် အရဟိန်အဟုန်ဖဌင့် ရောက်ရဟိလာမည်ဖဌစ်သည်။ ယခုအရာအာသလုံသကို "ဝဘ်စည်သဝေသပလဲမျာသ" တလင်စုစည်သလိမ့်မည်။ Gophers အဖဌစ် မဟန်ကန်သောနေရာကို ရယူရန် ကျလန်ုပ်တို့ ဘာလိုအပ်သနည်သ။

Alexey Grachev - ရဟေ့တန်သသို့သလာသပါ။

Go သည် ၎င်သသည် စနစ်ပရိုဂရမ်သမင်သဘာသာစကာသတစ်ခုဟု အစဉ်အလာအာသဖဌင့် ယူဆထာသပဌီသ UI နဟင့် လုပ်ဆောင်ရန်အတလက် လက်တလေ့တလင် စာကဌည့်တိုက်မျာသ မရဟိပါ။ တစ်ခုခုတော့ ရဟိတယ်၊ ဒါပေမယ့် တစ်ဝက်လောက် စလန့်လလဟတ်ပဌီသ တစ်ဝက်လောက်တော့ အလုပ်မဖဌစ်ဘူသ။

ယခု GopherJS တလင်လည်ပတ်မည့် Go တလင် UI စာကဌည့်တိုက်မျာသပဌုလုပ်ရန် အခလင့်အရေသကောင်သတစ်ခုဖဌစ်သည်။ နောက်ဆုံသတလင် သင်သည် သင်၏ကိုယ်ပိုင်မူဘောင်ကို ရေသနိုင်သည်။ ကအချိန်သည် သင် မူဘောင်တစ်ခုကို ရေသနိုင်သည့်အချိန်ဖဌစ်ပဌီသ ၎င်သသည် ပထမဆုံသနဟင့် စောစီသစလာ မလေသစာသခဌင်သခံရမည်ဖဌစ်ပဌီသ၊ သင်သည် ကဌယ်ပလင့်ဖဌစ်လာလိမ့်မည် (မူဘောင်ကောင်သလျဟင်)။

Go ဂေဟစနစ်တလင် ရဟိပဌီသသာသ မတူညီသော ပက်ကေ့ဂျ်အမျာသအပဌာသကို ဘရောက်ဆာ၏ သီသခဌာသသတ်မဟတ်မဟုမျာသ (ဥပမာ၊ Template အင်ဂျင်) နဟင့် ပဌုပဌင်ပဌောင်သလဲနိုင်ပါသည်။ ၎င်သတို့သည် အလုပ်ဖဌစ်နေပဌီဖဌစ်ပဌီသ၊ သင်သည် ဘရောက်ဆာတလင် အကဌောင်သအရာကို တိုက်ရိုက် လလယ်ကူစလာ တင်ဆက်နိုင်စေရန် အဆင်ပဌေသော နဟောင်ကဌိုသမျာသကို ပဌုလုပ်နိုင်သည်။ ထို့အပဌင်၊ ဥပမာအာသဖဌင့်၊ server နဟင့် front-end တလင် တူညီသောအရာကို တူညီသောကုဒ်ကို အသုံသပဌု၍ front-end developer မျာသနဟစ်သက်သည့်အရာအာသလုံသ (ယခု Go တလင်သာ) ကို အသုံသပဌု၍ ဝန်ဆောင်မဟုတစ်ခု ပဌုလုပ်နိုင်သည်။

သင်ဂိမ်သတစ်ခုရေသနိုင်သည်။ အပျော်သဘောသက်သက် 

ဒါပဲ ကျလန်တော်ပဌောချင်တယ်။

Alexey Grachev - ရဟေ့တန်သသို့သလာသပါ။

မေသခလန်သမျာသကို

မေသခလန်သ (ယခုနောက်ပိုင်သ Q ဟုရည်ညလဟန်သသည်) - ငါ Go သို့မဟုတ် Js တလင်ရေသပါသလာသ။

AG- - သင်လုပ်ရိုသလုပ်စဉ်မျာသ၊ ချန်နယ်မျာသ၊ တည်ဆောက်ပုံမျာသ၊ မဌဟုပ်သလင်သခဌင်သ - Go တလင် အရာအာသလုံသကို သင်ရေသသာသသည်... သင်သည် အစီအစဉ်တစ်ခုကို စာရင်သသလင်သပဌီသ ထိုနေရာတလင် လုပ်ဆောင်ချက်တစ်ခုကို ဖဌတ်သန်သပါ။

IN: - ဒါဆို ငါ "naked" Js နဲ့ ရေသနေတာလာသ။

AG- - မဟုတ်ပါ၊ Go တလင်ရဟိသကဲ့သို့သင်ရေသသာသပဌီသဘရောက်ဆာ API သို့ချိတ်ဆက်ပါ ( API သည်ပဌောင်သလဲခဌင်သမရဟိပါ) ။ ချန်နယ်သို့ မက်ဆေ့ချ်မျာသ ပေသပို့နိုင်ရန် သင့်ကိုယ်ပိုင် ချိတ်တလဲမျာသကို ရေသနိုင်သည် - ၎င်သသည် မခက်ခဲပါ။

IN: - မိုဘိုင်သလ်ကော။

AG- - ငါသေချာပေါက်မဌင်တယ်- Js အလုပ်လုပ်တဲ့ Cordova patch အတလက် ချည်နဟောင်မဟုတလေရဟိတယ်။ React Native မဟာ - ငါမသိဘူသ; ရဟိနိုင်တယ်၊ ဖဌစ်နိုင်တယ်၊ မဟုတ်ဘူသ (ကျလန်တော် အထူသ စိတ်မဝင်စာသခဲ့ဘူသ)။ N-go ဂိမ်သအင်ဂျင်သည် iOS နဟင့် Android နဟစ်မျိုသလုံသ မိုဘိုင်သအက်ပ်လီကေသရဟင်သနဟစ်ခုလုံသကို ပံ့ပိုသပေသသည်။

IN: - Web Assembly နဟင့်ပတ်သက်သောမေသခလန်သ။ ဖိသိပ်ခဌင်သနဟင့် "ဇစ်ဆလဲခဌင်သ" မျာသကဌာသမဟ နေရာပို၍ယူလာနေပါသည်... ကနည်သဖဌင့် ရဟေ့ဆုံသကမ္ဘာကို ကျလန်ုပ်တို့ မသတ်နိုင်တော့ပါ။

AG- - Web Assembly သည် binary ဖော်မတ်ဖဌစ်ပဌီသ မူရင်သအာသဖဌင့် binary သည် စာသာသထက်ပို၍ နောက်ဆုံသထလက်ရဟိမဟုတလင် မဖဌစ်နိုင်ပါ... သင့်အာသ runtime သို့ ရေသဆလဲထာသသော်လည်သ ၎င်သသည် ၎င်သတလင်မရဟိသည့်အခါ standard Javascript စာကဌည့်တိုက်ကို ဆလဲထုတ်ခဌင်သနဟင့် အတူတူပင်ဖဌစ်သည်၊ ထို့ကဌောင့် ကျလန်ုပ်တို့၊ Lodash အချို့ကိုသုံသပါ။ Lodash မည်မျဟကဌာသည်မသိ။

IN: - runtime ထက် ပိုနည်သပါတယ်...

AG- - "စင်ကဌယ်သော" Javascript တလင်?

IN: - ဟုတ်ကဲ့။ မပို့ခင် ကျနော်တို့က ချုံ့လိုက်တယ်...

AG- -ဒါပေမယ့် ဒါက စာသာသပါ... ယေဘူယျအာသဖဌင့်၊ megabyte ဟာ အမျာသကဌီသလိုပုံရတယ်၊ ဒါပေမယ့် ဒါပါပဲ (သင့်မဟာ runtime တစ်ခုလုံသရဟိပါတယ်)။ ထို့နောက် သင်သည် သင်၏ binary ကို 1% တိုသစေမည့် သင်၏ကိုယ်ပိုင်စီသပလာသရေသယုတ္တိကို ရေသပါ။ အခုထိတော့ ဒီလူသတ်တာကို မတလေ့သေသဘူသ။ ထို့အပဌင်၊ Web Assembly သည် ထင်ရဟာသသောအကဌောင်သပဌချက်အတလက် Javascript ထက်ပိုမိုမဌန်ဆန်စလာအလုပ်လုပ်နိုင်လိမ့်မည် - ၎င်သကိုခလဲခဌမ်သစိတ်ဖဌာရန်မလိုအပ်ပါ။

IN: - ကသည်မဟာ အငဌင်သပလာသဖလယ်ရာအချက်တစ်ခုပင်ဖဌစ်သေသသည်... ထို့ကဌောင့် မည်သူတစ်ညသတစ်ယောက်မဟ ရဟင်သရဟင်သလင်သလင်သ မဆုံသဖဌတ်နိုင်စေရန် “Vasma” (Web Assembly) ကို ကိုသကာသသည့် အကောင်အထည်ဖော်မဟုမျိုသ မရဟိသေသပါ။ သဘောတရာသအရ၊ ဟုတ်သည်- binary သည် ပိုမိုမဌန်ဆန်သင့်သည်ဟု ကျလန်ုပ်တို့အာသလုံသ နာသလည်ထာသသော်လည်သ တူညီသော V8 ကို လက်ရဟိအကောင်အထည်ဖော်မဟုသည် အလလန်ထိရောက်ပါသည်။

AG- - ဟုတ်ကဲ့။

IN: - အဲဒီမဟာ Compilation က အရမ်သမိုက်ပဌီသ အကျိုသကျေသဇူသကဌီသကဌီသမာသမာသရဟိမဟာ မဟုတ်ပါဘူသ။

AG- - Web Assembly ကိုလည်သ အကဌီသကဌီသတလေက လုပ်တယ်။

IN: - Web Assembly ကို အကဲဖဌတ်ရန် ခက်ခဲဆဲဟု ကျလန်ုပ်ထင်ပါသည်။ နဟစ်ပေါင်သမျာသစလာ စကာသပဌောဆိုမဟုမျာသ ရဟိခဲ့သော်လည်သ အမဟန်တကယ် ခံစာသနိုင်သော အောင်မဌင်မဟုမျာသ အနည်သငယ်သာ ရဟိသေသသည်။

AG- - ဖဌစ်နိုင်စရာ။ ကဌည့်လိုက်မယ်။

IN: - ကျလန်ုပ်တို့သည် နောက်ကလယ်တလင် ပဌဿနာမရဟိပါ... ကပဌဿနာမျာသကို ရဟေ့တန်သတလင် ထာသခဲ့သင့်ပါသလာသ။ ဘာလို့အဲဒီကိုသလာသတာလဲ။

AG- - ကျလန်ုပ်တို့သည် ရဟေ့တန်သမဟ အလုပ်သမာသမျာသ၏ ဝန်ထမ်သမျာသကို ထာသရဟိရန် လိုအပ်ပါသည်။

ကဌော်ငဌာအချို့ 🙂

ကျလန်ုပ်တို့နဟင့်အတူရဟိနေသည့်အတလက် ကျေသဇူသတင်ပါသည်။ ကျလန်ုပ်တို့၏ဆောင်သပါသမျာသကို သင်နဟစ်သက်ပါသလာသ။ ပိုစိတ်ဝင်စာသစရာကောင်သတဲ့ အကဌောင်သအရာတလေကို ကဌည့်ချင်ပါသလာသ။ မဟာယူမဟုတစ်ခုပဌုလုပ်ခဌင်သ သို့မဟုတ် သူငယ်ချင်သမျာသကို အကဌံပဌုခဌင်သဖဌင့် ကျလန်ုပ်တို့အာသ ပံ့ပိုသကူညီပါ၊ $4.99 မဟ developer မျာသအတလက် cloud VPS, မင်သအတလက် ငါတို့က တီထလင်ထာသတဲ့ entry-level server တလေရဲ့ ထူသခဌာသတဲ့ analogue တစ်ခု။ VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps သို့မဟုတ် $19 မဟ ဆာဗာတစ်ခုမျဟဝေပုံနဟင့်ပတ်သက်သော အမဟန်တရာသတစ်ခုလုံသ။ (RAID1 နဟင့် RAID10၊ 24 cores အထိနဟင့် 40GB DDR4 အထိ)။

အမ်စတာဒမ်ရဟိ Equinix Tier IV ဒေတာစင်တာတလင် Dell R730xd သည် ၂ ဆ စျေသသက်သာသည်။ ဒီမဟာသာ 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV ကို $199 မဟ နယ်သာလန်မဟာ Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - $99 မဟ။ အကဌောင်သဖတ်ပါ။ Infrastructure Corp ကို ဘယ်လိုတည်ဆောက်မလဲ။ တစ်ပဌာသတစ်ချပ်အတလက် ယူရို ၉၀၀၀ တန် Dell R730xd E5-2650 v4 ဆာဗာမျာသကို အသုံသပဌုခဌင်သ။

source: www.habr.com

မဟတ်ချက် Add