Tinklo taikomųjų programų kūrimo sistemos išleidimas ErgoFramework 2.2

Buvo išleistas kitas ErgoFramework 2.2 leidimas, kuriame buvo įdiegtas visas Erlang tinklo krūvas ir jo OTP biblioteka Go kalba. Sistema kūrėjui suteikia lanksčius Erlang pasaulio įrankius, skirtus paskirstytiems sprendimams Go kalba kurti naudojant paruoštus bendrosios paskirties projektavimo modelius gen.Application, gen.Supervisor ir gen.Server, taip pat specializuotus – gen. Stage (distributed pub/sub), gen. Saga (platinami sandoriai, SAGA dizaino modelio įgyvendinimas) ir gen.Raft (Praft protokolo įgyvendinimas).

Be to, sistema teikia tarpinio serverio funkcijas su galutiniu šifravimu, kurio nėra Erlang/OTP ir Elixir. Kadangi Go kalba neturi tiesioginio Erlang proceso analogo, sistema naudoja gorutinas kaip gen.Server pagrindą su „atkūrimo“ paketu, kad būtų galima tvarkyti išimtines situacijas. Projekto kodas platinamas pagal MIT licenciją.

ErgoFramework tinklo krūva visiškai įgyvendina Erlang protokolo DIST specifikaciją. Tai reiškia, kad programos, parašytos ErgoFramework pagrindu, veikia su visomis programomis, parašytomis Erlang arba Elixir programavimo kalbomis (sąveikos su Erlang mazgu pavyzdys). Taip pat verta paminėti, kad gen.Stage dizaino modelis yra įgyvendintas pagal Elixir GenStage specifikaciją ir yra visiškai su ja suderinamas (diegimo pavyzdys).

Naujame leidime:

  • Pridėta naujų šablonų
    • gen.Web yra žiniatinklio API šliuzo (taip pat žinomo kaip „Backend For Frontend“) dizaino modelis. Pavyzdys.
    • gen.TCP yra šablonas, leidžiantis įdiegti TCP ryšio akceptorių telkinį su minimaliomis pastangomis rašant kodą. Pavyzdys.
    • gen.UDP – panašus į gen.TCP šabloną, tik UDP protokolui. Pavyzdys.
  • Buvo pasiūlyta nauja Events funkcija, mazgo viduje įdiegus paprastą įvykių magistralę, kuri leidžia sukurti mechanizmus, kaip keistis įvykiais (pub/sub) tarp vietinių procesų. Pavyzdys.
  • Pridėtas tipo registracijos palaikymas, leidžiantis automatiškai serializuoti / deserializuoti pranešimus į vietinį Golang duomenų tipą. Tai reiškia, kad jums nebereikia naudoti etf.TermIntoStruct kiekvienam gautam pranešimui. Registruoti tipai bus automatiškai transformuojami į nurodytą tipą, o tai žymiai pagreitina pranešimų mainus tarp paskirstytų mazgų.

Šaltinis: opennet.ru

Добавить комментарий