ကွန်ရက်အက်ပလီကေးရှင်းများဖန်တီးရန်အတွက် ErgoFramework 2.2

ErgoFramework 2.2 ၏နောက်ထွက်ရှိမှုသည် Erlang network stack နှင့် ၎င်း၏ OTP စာကြည့်တိုက်ကို Go ဘာသာစကားဖြင့် အကောင်အထည်ဖော်ခဲ့သည်။ မူဘောင်သည် ဆော့ဖ်ဝဲအင်ဂျင်နီယာအား gen.Application၊ gen.Supervisor နှင့် gen.Server တို့အပြင် အထူးပြုထားသော gen.gen.Server နှင့် အထူးပြုထားသော gen. အဆင့် (ဖြန့်ဝေထားသော အရက်ဆိုင်/ခွဲများ)၊ gen. Saga (ဖြန့်ဝေထားသော အရောင်းအ၀ယ်များ၊ SAGA ဒီဇိုင်းပုံစံကို အကောင်အထည်ဖော်မှု) နှင့် gen.Raft ( Raft ပရိုတိုကောကို အကောင်အထည်ဖော်မှုတစ်ခု)။

ထို့အပြင်၊ framework သည် Erlang/OTP နှင့် Elixir တို့တွင်မရနိုင်သော end-to-end encryption ဖြင့် proxy လုပ်ဆောင်နိုင်စွမ်းကို ပံ့ပိုးပေးပါသည်။ Go ဘာသာစကားတွင် Erlang လုပ်ငန်းစဉ်၏ တိုက်ရိုက် analogue မပါရှိသောကြောင့်၊ မူဘောင်သည် ခြွင်းချက်အခြေအနေများကိုကိုင်တွယ်ရန် gen.Server အတွက် အခြေခံအဖြစ် "recover" wrapper ဖြင့် gooutines ကိုအသုံးပြုပါသည်။ ပရောဂျက်ကုဒ်ကို MIT လိုင်စင်အောက်တွင် ဖြန့်ဝေထားသည်။

ErgoFramework ရှိ ကွန်ရက် stack သည် Erlang ပရိုတိုကော၏ DIST သတ်မှတ်ချက်ကို အပြည့်အဝအကောင်အထည်ဖော်သည်။ ဆိုလိုသည်မှာ ErgoFramework ကို အခြေခံ၍ ရေးသားထားသော အပလီကေးရှင်းများသည် Erlang သို့မဟုတ် Elixir ပရိုဂရမ်းမင်းဘာသာစကားများဖြင့် ရေးသားထားသော မည်သည့် application များနှင့်မဆို မူရင်းအတိုင်း အလုပ်လုပ်သည် (Erlang node နှင့် အပြန်အလှန်ဆက်ဆံခြင်း ဥပမာ)။ gen.Stage ဒီဇိုင်းပုံစံကို Elixir GenStage သတ်မှတ်ချက်အတိုင်း လုပ်ဆောင်ထားပြီး ၎င်းနှင့် အပြည့်အဝ တွဲဖက်အသုံးပြုနိုင်သည် (အကောင်အထည်ဖော်မှု ဥပမာ) ကိုလည်း သတိပြုသင့်သည်။

ထုတ်ဝေမှုအသစ်တွင်-

  • နမူနာပုံစံအသစ်များ ထည့်ထားသည်။
    • gen.Web သည် Web API Gateway (Backend For Frontend ဟုလည်းလူသိများသည်) ဒီဇိုင်းပုံစံတစ်ခုဖြစ်သည်။ ဥပမာ။
    • gen.TCP သည် ကုဒ်ရေးရာတွင် အနည်းငယ်သာ အားစိုက်ထုတ်ခြင်းဖြင့် TCP ချိတ်ဆက်မှု လက်ခံသူများ၏ အစုအဝေးကို အကောင်အထည်ဖော်ရန် ခွင့်ပြုသည့် ပုံစံပလိတ်တစ်ခုဖြစ်သည်။ ဥပမာ။
    • gen.UDP - UDP ပရိုတိုကောအတွက်သာ gen.TCP နမူနာပုံစံနှင့် ဆင်တူသည်။ ဥပမာ။
  • ဒေသဆိုင်ရာ လုပ်ငန်းစဉ်များအကြား ဖြစ်ရပ်များ (pub/sub) ဖလှယ်ခြင်းအတွက် ယန္တရားများကို ဖန်တီးနိုင်စေမည့် node အတွင်းရှိ ရိုးရှင်းသောဖြစ်ရပ်ဘတ်စ်ကို အကောင်အထည်ဖော်ခြင်းဖြင့် Events လုပ်ဆောင်ချက်အသစ်ကို အဆိုပြုထားပါသည်။ ဥပမာ။
  • မူရင်း Golang ဒေတာအမျိုးအစားသို့ မက်ဆေ့ချ်များကို အလိုအလျောက် အမှတ်အသားပြုခြင်း/ ဖယ်ထုတ်ခြင်းကို ခွင့်ပြုသည့် အမျိုးအစား မှတ်ပုံတင်ခြင်းအတွက် ပံ့ပိုးမှု ထပ်ထည့်ထားသည်။ ဆိုလိုသည်မှာ သင်လက်ခံရရှိသည့် မက်ဆေ့ချ်တိုင်းအတွက် etf.TermIntoStruct ကို အသုံးပြုရန် မလိုအပ်တော့ပါ။ မှတ်ပုံတင်ထားသော အမျိုးအစားများကို သတ်မှတ်ထားသော အမျိုးအစားသို့ အလိုအလျောက် ပြောင်းလဲသွားမည်ဖြစ်ပြီး၊ ဖြန့်ဝေထားသော ဆုံမှတ်များကြား မက်ဆေ့ချ်ဖလှယ်ခြင်း၏ စွမ်းဆောင်ရည်ကို သိသိသာသာ မြန်ဆန်စေသည်။

source: opennet.ru

မှတ်ချက် Add