แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™แž€แŸ’แžšแž”แžแŸแžŽแŸ’แžŒแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž”แž„แŸ’แž€แžพแžแž€แž˜แŸ’แž˜แžœแžทแž’แžธแž”แžŽแŸ’แžแžถแž‰ ErgoFramework 2.2

แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™แž”แž“แŸ’แž‘แžถแž”แŸ‹แž“แŸƒ ErgoFramework 2.2 แž”แžถแž“แž€แžพแžแžกแžพแž„ แžŠแŸ„แž™แžขแž“แžปแžœแžแŸ’แžแž”แžŽแŸ’แžแžปแŸ†แž”แžŽแŸ’แžแžถแž‰ Erlang แž–แŸแž‰แž›แŸแž‰ แž“แžทแž„แž”แžŽแŸ’แžŽแžถแž›แŸแž™ OTP แžšแž”แžŸแŸ‹แžœแžถแž‡แžถแž—แžถแžŸแžถ Go แŸ” แž€แŸ’แžšแž”แžแŸแžŽแŸ’แžŒแž•แŸ’แžแž›แŸ‹แžฑแŸ’แž™แžขแŸ’แž“แž€แžขแž—แžทแžœแžŒแŸ’แžแž“แŸแž“แžผแžœแžงแž”แž€แžšแžŽแŸแžŠแŸ‚แž›แžขแžถแž…แž”แžแŸ‹แž”แŸ‚แž“แž”แžถแž“แž–แžธแž–แžทแž—แž– Erlang แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž”แž„แŸ’แž€แžพแžแžŠแŸ†แžŽแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แž…แŸ‚แž€แž…แžถแž™แž‡แžถแž—แžถแžŸแžถ Go แžŠแŸ„แž™แž”แŸ’แžšแžพแž‚แŸ†แžšแžผแžšแž…แž“แžถแž‚แŸ„แž›แž”แŸ†แžŽแž„แž‘แžผแž‘แŸ…แžŠแŸ‚แž›แžแŸ’แžšแŸ€แž˜แžšแžฝแž…แž‡แžถแžŸแŸ’แžšแŸแž… gen.Application, gen.Supervisor แž“แžทแž„ gen.Server แž€แŸแžŠแžผแž…แž‡แžถแžฏแž€แž‘แŸแžŸ - gen. แžŠแŸ†แžŽแžถแž€แŸ‹แž€แžถแž› (แž…แŸ‚แž€แž…แžถแž™ pub/sub), gen.

แž›แžพแžŸแž–แžธแž“แŸแŸ‡แž‘แŸ€แž แž€แŸ’แžšแž”แžแŸแžŽแŸ’แžŒแž•แŸ’แžแž›แŸ‹แž“แžผแžœแž˜แžปแžแž„แžถแžšแž”แŸ’แžšแžผแž€แžŸแŸŠแžธแž‡แžถแž˜แžฝแž™แž“แžนแž„แž€แžถแžšแžขแŸŠแžทแž“แž‚แŸ’แžšแžธแž”แž–แžธแž…แžปแž„แžŠแž›แŸ‹แž…แžปแž„ แžŠแŸ‚แž›แž˜แžทแž“แž˜แžถแž“แž“แŸ…แž€แŸ’แž“แžปแž„ Erlang/OTP แž“แžทแž„ Elixir แŸ” แžŠแŸ„แž™แžŸแžถแžšแž—แžถแžŸแžถ Go แž˜แžทแž“แž˜แžถแž“ analogue แž•แŸ’แž‘แžถแž›แŸ‹แž“แŸƒแžŠแŸ†แžŽแžพแžšแž€แžถแžš Erlang แž“แŸ„แŸ‡แž€แŸ’แžšแž”แžแŸแžŽแŸ’แžŒแž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹ goroutines แž‡แžถแž˜แžผแž›แžŠแŸ’แž‹แžถแž“แžŸแž˜แŸ’แžšแžถแž”แŸ‹ gen.Server แž‡แžถแž˜แžฝแž™แž“แžนแž„แž€แž‰แŸ’แž…แž”แŸ‹ "recover" แžŠแžพแž˜แŸ’แž”แžธแžŠแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แžŸแŸ’แžแžถแž“แž—แžถแž–แž€แžšแžŽแžธแž›แžพแž€แž›แŸ‚แž„แŸ” แž›แŸแžแž€แžผแžŠแž‚แž˜แŸ’แžšแŸ„แž„แžแŸ’แžšแžผแžœแž”แžถแž“แž…แŸ‚แž€แž…แžถแž™แž€แŸ’แžšแŸ„แž˜แžขแžถแž‡แŸ’แž‰แžถแž”แŸแžŽแŸ’แžŽ 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

แž”แž“แŸ’แžแŸ‚แž˜แž˜แžแžทแž™แŸ„แž”แž›แŸ‹