ИздаванС Π½Π° Ρ€Π°ΠΌΠΊΠ°Ρ‚Π° Π·Π° създаванС Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ прилоТСния ErgoFramework 2.2

ИзлСзС слСдващото ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° ErgoFramework 2.2, ΠΊΠΎΠ΅Ρ‚ΠΎ внСдрява пълния ΠΌΡ€Π΅ΠΆΠΎΠ² стСк Erlang ΠΈ Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° OTP Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π½Π° Π΅Π·ΠΈΠΊΠ° Go. Π Π°ΠΌΠΊΠ°Ρ‚Π° прСдоставя Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° гъвкави инструмСнти ΠΎΡ‚ свСта Π½Π° Erlang Π·Π° създаванС Π½Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° Π΅Π·ΠΈΠΊΠ° Go, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Π³ΠΎΡ‚ΠΎΠ²ΠΈ шаблони Π·Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½Π΅ с ΠΎΠ±Ρ‰ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ gen.Application, gen.Supervisor ΠΈ gen.Server, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ спСциализирани - gen. Stage (Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ pub/sub), gen. Saga (Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, имплСмСнтация Π½Π° шаблона Π·Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½Π΅ SAGA) ΠΈ gen.Raft (имплСмСнтация Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Raft).

ОсвСн Ρ‚ΠΎΠ²Π° Ρ€Π°ΠΌΠΊΠ°Ρ‚Π° прСдоставя прокси функционалност с ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅ ΠΎΡ‚ ΠΊΡ€Π°ΠΉ Π΄ΠΎ ΠΊΡ€Π°ΠΉ, ΠΊΠΎΠ΅Ρ‚ΠΎ Π½Π΅ Π΅ Π½Π°Π»ΠΈΡ‡Π½ΠΎ Π² Erlang/OTP ΠΈ Elixir. Въй ΠΊΠ°Ρ‚ΠΎ Π΅Π·ΠΈΠΊΡŠΡ‚ Go няма пряк Π°Π½Π°Π»ΠΎΠ³ Π½Π° процСса Erlang, Ρ€Π°ΠΌΠΊΠ°Ρ‚Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° goroutines ΠΊΠ°Ρ‚ΠΎ основа Π·Π° 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 ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°. ΠŸΡ€ΠΈΠΌΠ΅Ρ€.
  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π΅ Π½ΠΎΠ²Π° функционалност Π·Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΡ с внСдряванСто Π½Π° проста шина Π·Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΡ Π²ΡŠΡ‚Ρ€Π΅ Π² възСл, която Π²ΠΈ позволява Π΄Π° ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° ΠΎΠ±ΠΌΠ΅Π½ Π½Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΡ (pub/sub) ΠΌΠ΅ΠΆΠ΄Ρƒ Π»ΠΎΠΊΠ°Π»Π½ΠΈ процСси. ΠŸΡ€ΠΈΠΌΠ΅Ρ€.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° рСгистрация Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅, която позволява Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ сСриализиранС/дСсСриализиранС Π½Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ Π² собствСн Ρ‚ΠΈΠΏ Π΄Π°Π½Π½ΠΈ Π½Π° Golang. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ Π²Π΅Ρ‡Π΅ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ etf.TermIntoStruct Π·Π° всяко ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅. РСгистриранитС Ρ‚ΠΈΠΏΠΎΠ²Π΅ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ трансформирани Π² посочСния Ρ‚ΠΈΠΏ, ΠΊΠΎΠ΅Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ускорява производитСлността Π½Π° ΠΎΠ±ΠΌΠ΅Π½Π° Π½Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ възли.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€