ErgoFramework 2.2-ի վերջին թողարկումը տեղի է ունեցել, որը Go-ում ներդնում է Erlang ցանցային ամբողջական փաթեթը և դրա OTP գրադարանը: Շրջանակը մշակողին տրամադրում է Erlang աշխարհից ճկուն գործիքակազմ՝ Go-ում բաշխված լուծումներ ստեղծելու համար՝ օգտագործելով պատրաստի ընդհանուր նշանակության gen.Application, gen.Supervisor և gen.Server նախագծման ձևանմուշներ, ինչպես նաև մասնագիտացված՝ gen.Stage (բաշխված pub/sub), gen.Saga (բաշխված գործարքներ, SAGA նախագծման ձևանմուշի ներդրում) և gen.Raft (Raft արձանագրության ներդրում):
Բացի այդ, շրջանակը ապահովում է պրոքսի ֆունկցիոնալություն՝ ծայրից ծայր կոդավորման հնարավորություններով, որոնք հասանելի չեն Erlang/OTP-ում և Elixir-ում: Քանի որ Go-ն չունի Erlang գործընթացի ուղղակի անալոգ, շրջանակը օգտագործում է գորութիններ որպես gen.Server-ի հիմք՝ «վերականգնման» փաթաթանով՝ բացառությունները կարգավորելու համար: Նախագծի կոդը տարածվում է MIT լիցենզիայի ներքո:
ErgoFramework-ի ցանցային փաթեթը լիովին իրականացնում է Erlang արձանագրության DIST սպեցիֆիկացիան։ Սա նշանակում է, որ ErgoFramework-ի հիման վրա գրված հավելվածները բնիկ կերպով աշխատում են Erlang կամ Elixir ծրագրավորման լեզուներով գրված ցանկացած հավելվածի հետ (Erlang հանգույցի հետ փոխազդեցության օրինակ)։ Նաև հարկ է նշել, որ gen.Stage նախագծման ձևանմուշը իրականացվում է Elixir GenStage սպեցիֆիկացիայի համաձայն և լիովին համատեղելի է դրա հետ (իրականացման օրինակ)։
Նոր թողարկումում.
- Ավելացվել են նոր ձևանմուշներ
- gen.Web - Web API Gateway (հայտնի է նաև որպես Backend For Frontend) դիզայնի ձևանմուշ։ Օրինակ։
- gen.TCP-ն ձևանմուշ է, որը թույլ է տալիս իրականացնել TCP կապի ընդունիչների մի ամբողջ խումբ՝ կոդավորման նվազագույն ջանքերով: Օրինակ:
- gen.UDP - նման է gen.TCP ձևանմուշին, միայն UDP արձանագրության համար։ Օրինակ։
- Առաջարկվում է նոր «Միջոցառումներ» ֆունկցիոնալություն՝ հանգույցի ներսում պարզ իրադարձությունների ավտոբուսի ներդրմամբ, որը թույլ է տալիս ստեղծել մեխանիզմներ տեղական պրոցեսների միջև իրադարձությունների (pub/sub) փոխանակման համար: Օրինակ:
- Ավելացվել է տեսակի գրանցման աջակցություն, որը թույլ է տալիս հաղորդագրությունների ավտոմատ սերիականացում/դեսերիականացում բնօրինակ Golang տվյալների տեսակի մեջ։ Սա նշանակում է, որ դուք այլևս կարիք չունեք օգտագործել etf.TermIntoStruct-ը յուրաքանչյուր ստացված հաղորդագրության համար։ Գրանցված տեսակները ավտոմատ կերպով կվերածվեն նշված տեսակի, ինչը զգալիորեն արագացնում է բաշխված հանգույցների միջև հաղորդագրությունների փոխանակման աշխատանքը։
Source: opennet.ru
