Kutolewa kwa mfumo wa kuunda programu za mtandao ErgoFramework 2.2

Toleo lililofuata la ErgoFramework 2.2 lilifanyika, kwa kutekeleza mkusanyiko kamili wa mtandao wa Erlang na maktaba yake ya OTP katika lugha ya Go. Mfumo huu unampa msanidi zana zinazonyumbulika kutoka ulimwengu wa Erlang kwa ajili ya kuunda masuluhisho yanayosambazwa katika lugha ya Go kwa kutumia mifumo ya muundo wa madhumuni ya jumla iliyotengenezwa tayari gen.Application, gen.Supervisor na gen.Server, pamoja na zile maalum - gen. Hatua (baa/ndogo iliyosambazwa), aina. Saga (miamala iliyosambazwa, utekelezaji wa muundo wa SAGA) na gen.Raft (utekelezaji wa itifaki ya Raft).

Kwa kuongeza, mfumo huu hutoa utendakazi wa proksi na usimbaji fiche kutoka mwanzo hadi mwisho, ambao haupatikani katika Erlang/OTP na Elixir. Kwa kuwa lugha ya Go haina mlinganisho wa moja kwa moja wa mchakato wa Erlang, mfumo huu hutumia goroutines kama msingi wa gen.Server iliyo na kanga ya "kuokoa" kushughulikia hali zisizo za kawaida. Nambari ya mradi inasambazwa chini ya leseni ya MIT.

Rafu ya mtandao katika ErgoFramework hutekeleza kikamilifu vipimo vya DIST vya itifaki ya Erlang. Hii inamaanisha kuwa programu zilizoandikwa kwa misingi ya ErgoFramework hufanya kazi kienyeji na programu zozote zilizoandikwa katika lugha za programu za Erlang au Elixir (mfano wa mwingiliano na nodi ya Erlang). Inafaa pia kuzingatia kuwa muundo wa muundo wa gen.Stage unatekelezwa kulingana na maelezo ya Elixir GenStage na inaendana nayo kikamilifu (mfano wa utekelezaji).

Katika toleo jipya:

  • Violezo vipya vimeongezwa
    • gen.Web ni Lango la API ya Wavuti (pia inajulikana kama muundo wa Backend For Frontend). Mfano.
    • gen.TCP ni kiolezo kinachokuruhusu kutekeleza idadi kubwa ya vipokeaji muunganisho wa TCP kwa juhudi ndogo katika kuandika msimbo. Mfano.
    • gen.UDP - sawa na kiolezo cha gen.TCP, kwa itifaki ya UDP pekee. Mfano.
  • Utendaji mpya wa Matukio umependekezwa kwa utekelezaji wa basi rahisi la tukio ndani ya nodi, ambayo hukuruhusu kuunda mbinu za kubadilishana matukio (baa/ndogo) kati ya michakato ya ndani. Mfano.
  • Usaidizi ulioongezwa wa usajili wa aina, ambao unaruhusu usanifu otomatiki/uondoaji wa ujumbe katika aina asilia ya data ya Golang. Hii inamaanisha huhitaji tena kutumia etf.TermIntoStruct kwa kila ujumbe unaopokelewa. Aina zilizosajiliwa zitabadilishwa kuwa aina maalum kiotomatiki, ambayo huongeza kasi ya ubadilishanaji wa ujumbe kati ya nodi zilizosambazwa.

Chanzo: opennet.ru

Kuongeza maoni