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 run တဲ့ Cordova patch အတွက် binding တွေ ရှိတယ်။ React Native မှာတော့ ကျွန်တော် မသိဘူး။ ရှိကောင်းရှိမယ်၊ မရှိလည်း ရှိနိုင်တယ် (ကျွန်တော် အများကြီး မကြည့်လိုက်ရသေးဘူး)။ N-go game engine က မိုဘိုင်းအက်ပ်တွေကိုလည်း support လုပ်တယ် - 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

DDoS ကာကွယ်ရေး၊ VPS VDS ဆာဗာများပါသည့် ဆိုက်များအတွက် ယုံကြည်စိတ်ချရသော hosting ကို ဝယ်ယူပါ။ 🔥 DDoS ကာကွယ်မှု၊ VPS VDS ဆာဗာများပါရှိသော ယုံကြည်စိတ်ချရသော ဝဘ်ဆိုက် hosting ကို ဝယ်ယူပါ | ProHoster