Тармактык тиркемелерди түзүү үчүн фреймворктун чыгышы ErgoFramework 2.2

ErgoFramework 2.2нин кийинки релизинде Erlang тармагынын толук стекин жана анын OTP китепканасын Go тилинде ишке ашырды. Алкак иштеп чыгуучуга Gen.Application, gen.Supervisor жана gen.Server, ошондой эле адистештирилген жалпы максаттуу дизайн үлгүлөрүн колдонуу менен Go тилинде бөлүштүрүлгөн чечимдерди түзүү үчүн Erlang дүйнөсүнүн ийкемдүү куралдарын берет. Этап (бөлүштүрүлгөн паб/суб), ген.Сага (бөлүштүрүлгөн транзакциялар, SAGA дизайн үлгүсүн ишке ашыруу) жана gen.Raf (Рафт протоколунун ишке ашырылышы).

Кошумчалай кетсек, алкак Erlang/OTP жана Elixirде жеткиликтүү эмес, аягына чейин шифрлөө менен прокси функционалдуулугун камсыз кылат. Go тилинде Эрланг процессинин түз аналогу жок болгондуктан, алкак өзгөчө кырдаалдарды чечүү үчүн “калыбына келтирүү” оромосу бар gen.Server үчүн негиз катары горутиндерди колдонот. Долбоордун коду MIT лицензиясы боюнча таратылат.

ErgoFramework тармагындагы стек Erlang протоколунун DIST спецификациясын толугу менен ишке ашырат. Бул ErgoFramework негизинде жазылган тиркемелер Erlang же Elixir программалоо тилдеринде жазылган ар кандай тиркемелер менен иштейт дегенди билдирет (Erlang түйүнү менен иштешүүнүн мисалы). Ошондой эле gen.Stage дизайн үлгүсү Elixir GenStage спецификациясына ылайык ишке ашырылганын жана ага толук шайкеш келерин белгилей кетүү керек (ишке ашыруу мисалы).

Жаңы чыгарылышта:

  • Жаңы калыптар кошулду
    • gen.Web Web API шлюзи (ошондой эле Backend For Frontend катары белгилүү) дизайн үлгүсү. Мисал.
    • gen.TCP код жазууда минималдуу күч менен TCP туташуу акцепторлорунун бассейнин ишке ашырууга мүмкүндүк берген шаблон. Мисал.
    • gen.UDP - gen.TCP үлгүсүнө окшош, UDP протоколу үчүн гана. Мисал.
  • Түйүндүн ичиндеги жөнөкөй окуя шинасын ишке ашыруу менен жаңы Events функционалдуулугу сунушталды, ал локалдык процесстер арасында окуяларды (pub/sub) алмашуу механизмдерин түзүүгө мүмкүндүк берет. Мисал.
  • Түпкү Голанг маалымат түрүнө билдирүүлөрдү автоматтык түрдө сериялаштыруу/десериялаштырууга мүмкүндүк берген типти каттоо үчүн колдоо кошулду. Бул мындан ары ар бир кабыл алынган билдирүү үчүн etf.TermIntoStruct колдонуунун кереги жок дегенди билдирет. Катталган типтер автоматтык түрдө көрсөтүлгөн түргө трансформацияланат, бул бөлүштүрүлгөн түйүндөр ортосунда билдирүү алмашууну кыйла тездетет.

Source: opennet.ru

Комментарий кошуу