Нашри чаҳорчӯба барои эҷоди замимаҳои шабакавӣ ErgoFramework 2.2

Нашри навбатии ErgoFramework 2.2 сурат гирифт, ки стеки пурраи шабакаи Erlang ва китобхонаи OTP-и онро бо забони Go амалӣ мекард. Чаҳорчӯба ба таҳиякунанда асбобҳои фасеҳ аз ҷаҳони Эрланг барои эҷоди қарорҳои тақсимшуда дар забони Go бо истифода аз намунаҳои тарроҳии умумӣ таъиншудаи gen.Application, gen.Supervisor ва gen.Server, инчунин махсусгардонидашуда - gen. Марҳила (pab/sub тақсимшуда), ген.Сага (муомилоти тақсимшуда, амалисозии намунаи тарҳрезии SAGA) ва gen.Raf (амалисозии протоколи Raft).

Илова бар ин, чаҳорчӯба функсияи проксиро бо рамзгузории охири ба охир таъмин мекунад, ки дар Erlang/OTP ва Elixir дастрас нест. Азбаски забони Go аналоги мустақими раванди Эрланг надорад, чаҳорчӯба барои коркарди ҳолатҳои истисноӣ горутинҳоро ҳамчун асос барои gen.Server бо парпечи "барқарор" истифода мебарад. Рамзи лоиҳа тибқи иҷозатномаи MIT паҳн карда мешавад.

Стеки шабакавӣ дар ErgoFramework мушаххасоти DIST-и протоколи Erlang-ро пурра иҷро мекунад. Ин маънои онро дорад, ки замимаҳои дар асоси ErgoFramework навишташуда ба таври аслӣ бо ҳама гуна замимаҳо бо забонҳои барномасозии Erlang ё Elixir навишташуда кор мекунанд (намунаи ҳамкорӣ бо гиреҳи Erlang). Инчунин бояд қайд кард, ки намунаи тарроҳии gen.Stage мувофиқи мушаххасоти Elixir GenStage амалӣ карда мешавад ва бо он комилан мувофиқ аст (мисоли татбиқ).

Дар нашри нав:

  • Шаблонҳои нав илова карда шуданд
    • gen.Web як намунаи тарроҳии Web API Gateway аст (инчунин бо номи Backend For Frontend маълум аст). Мисол.
    • gen.TCP як қолабест, ки ба шумо имкон медиҳад ҳавзи қабулкунандагони пайвасти TCP бо кӯшиши ҳадди ақал дар навиштани код амалӣ карда шавад. Мисол.
    • gen.UDP - шаблони gen.TCP, танҳо барои протоколи UDP. Мисол.
  • Функсияи нави Events бо татбиқи автобуси оддии рӯйдодҳо дар дохили гиреҳ пешниҳод шудааст, ки ба шумо имкон медиҳад механизмҳои табодули рӯйдодҳо (pub/sub) байни равандҳои маҳаллӣ эҷод кунед. Мисол.
  • Дастгирии иловашуда барои бақайдгирии намуд, ки имкон медиҳад, ки силсилаи автоматӣ/сериализатсияи паёмҳоро ба як навъи додаҳои аслии Golang таъмин кунад. Ин маънои онро дорад, ки ба шумо дигар лозим нест, ки барои ҳар як паёми гирифташуда etf.TermIntoStruct-ро истифода баред. Навъҳои ба қайд гирифташуда ба намуди муқарраршуда ба таври худкор табдил дода мешаванд, ки ин кори мубодилаи паёмҳоро байни гиреҳҳои тақсимшуда ба таври назаррас суръат мебахшад.

Манбаъ: opennet.ru

Илова Эзоҳ