ErgoFramework желілік қосымшаларды құруға арналған фреймворкты шығару 2.2

ErgoFramework 2.2-нің келесі шығарылымы толық Erlang желі стегі мен оның Go тілінде OTP кітапханасын іске асырды. Фреймворк әзірлеушіге gen.Application, gen.Supervisor және gen.Server жалпы мақсаттағы дайын дизайн үлгілерін, сондай-ақ мамандандырылған - gen. Кезең (таратылған паб/қосалқы), ген.Сага (таратылған транзакциялар, SAGA дизайн үлгісінің жүзеге асырылуы) және gen.Raf (Raf хаттамасының орындалуы).

Бұған қоса, фреймворк Erlang/OTP және Elixir жүйелерінде қол жетімді емес, түпкілікті шифрлаумен прокси функциясын қамтамасыз етеді. Go тілінде Erlang процесінің тікелей аналогы болмағандықтан, фреймворк ерекше жағдайларды өңдеу үшін «қалпына келтіру» орамасы бар 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 пайдалану қажет емес дегенді білдіреді. Тіркелген түрлер автоматты түрде көрсетілген түрге түрлендіріледі, бұл таратылған түйіндер арасында хабарлама алмасу өнімділігін айтарлықтай жылдамдатады.

Ақпарат көзі: opennet.ru

пікір қалдыру