Golang Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ: ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° / Π₯Π°Π±Ρ€

ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° / Π₯Π°Π±Ρ€

Golang ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ, вмСстС с Π½ΠΈΠΌ развиваСтся ΠΈ вся экосистСма языка. Π’ частности, ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½ΠΎΠ²Ρ‹Π΅ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‚ΡΡ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ сдСлаСм нСбольшой ΠΎΠ±Π·ΠΎΡ€ Ρ‚Π΅Ρ…, Ρ‡Ρ‚ΠΎ связаны с HTTP-бэкСндом.

BeegoΒ 

Если Π½ΡƒΠΆΠ΅Π½ быстрый запуск API-интСрфСйсов REST, Π²Π΅Π±- ΠΈ сСрвСрных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Go, Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π½Π΅ Π½Π°ΠΉΡ‚ΠΈ. Golang-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ Beego с Django Π² Python. Достоинство Beego β€” отсутствиС нСобходимости установки сторонних ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ. Π­Ρ‚ΠΎ, фактичСски, ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Model-View-Controller, ΠΏΡ€ΠΈΡ‡Ρ‘ΠΌ Ρƒ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ собствСнныС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ встроСнный инструмСнт Bee, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ измСнСния ΠΊΠΎΠ΄Π°.Β 

Beego состоит ΠΈΠ· восьми ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π»ΠΈΠ±ΠΎΒ  ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Благодаря ΠΊΠ°Ρ€Ρ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ ORM-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… прилоТСния вмСстС с инструмСнтами ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сСансов ΠΈ систСмами рСгистрации.

Π’Π°ΠΊΠΆΠ΅ Beego ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ кэша ΠΈ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с элСмСнтами HTTP. Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с  инструмСнтами ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки β€” ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΊΠ°ΠΊ Django.

ΠŸΡ€Π°Π²Π΄Π°, Π΅ΡΡ‚ΡŒ ΠΈ нСдостаток. Из-Π·Π° возмоТностСй ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π½ΠΎΡΡ‚ΠΈ Beego, Π½ΠΎΠ²ΠΈΡ‡ΠΊΡƒ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅Π»Π΅Π³ΠΊΠΎ Π΅Π³ΠΎ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ это, скорСС, инструмСнт для ΠΎΠΏΡ‹Ρ‚Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°.

KitΒ 

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с микросСрвисами Π² любом ΠΌΠ°ΡΡˆΡ‚Π°Π±Π΅. ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΡ‹ часто Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ спСциализированной ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Kit Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ прСдоставляСт.

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ обСспСчиваСт Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ RPC, Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΠΎΡΡ‚ΡŒ систСмы ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ инфраструктуры. Π’ Π΅Π³ΠΎ состав Π²Ρ…ΠΎΠ΄ΠΈΡ‚ нСсколько связанных ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слуТат для построСния ΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹Ρ… сСрвис-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ (SOA), Ρ‡Ρ‚ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с микросСрвисами.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ β€” Kit с высокой ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒΡŽ вСроятности ΠΏΠΎΠ΄ΠΎΠΉΠ΄Ρ‘Ρ‚ для всСго.

Kit ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚Π°ΠΊΠΈΠ΅ слои ΠΊΠ°ΠΊ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ, трассировка, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ запросов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для запуска микросСрвисов Π½Π° ΠΏΡ€ΠΎΠ΄Π΅. Он Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ SOLID, ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΈ гСксагональной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹.

EchoΒ 

ΠžΠ±Π»Π΅Π³Ρ‡Ρ‘Π½Π½Ρ‹ΠΉ, Π³ΠΈΠ±ΠΊΠΈΠΉ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹ΠΉ Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ. ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π°Π΄Ρ‘ΠΆΠ½Ρ‹Π΅ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ RESTful API, ΠΈΠΌΠ΅Π΅Ρ‚ встроСнноС ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ΅ ПО ΠΈ Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ своё собствСнноС.Β 

Π’ числС Ρ„ΠΈΡ‡Π΅ΠΉ Echo Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ HTTP-ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π·ΡƒΠΌΠ½ΠΎ опрСдСляСт ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠ², цСнтрализованная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок HTTP ΠΈ API для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… HTTP-ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ². Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ HTTP/2 для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠΏΡ‹Ρ‚Π°.

FiberΒ 

ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ Π½ΠΎ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» создан Π½Π° Π±Π°Π·Π΅ Fasthttp β€” самого быстрого HTTP-Π΄Π²ΠΈΠΆΠΊΠ° для Go. Fiber Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ для ускорСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ распрСдСлСниСм памяти ΠΈ возмоТностями ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Плюс ΠΊΠΎ всСму, этот Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Π΅Ρ‰Ρ‘ ΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π΅Π½, ΠΎΠ½ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ позволяСт ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сторонниС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ с Martini. Fiber обСспСчиваСт Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ сокращСнии Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов.

По ΠΎΡ‚Π·Ρ‹Π²Π°ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΎΠ½ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Express.js, прСдоставляя ΠΎΡ‚Π»ΠΈΡ‡Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ, обслуТивания статичСских Ρ„Π°ΠΉΠ»ΠΎΠ², построСния REST API, Π΄Π²ΠΈΠΆΠΎΠΊ шаблонов ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π³ΠΈΠ±ΠΊΠΎΠ³ΠΎ ΠΌΠ΅ΠΆΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ПО.

FasthttpΒ 

Fasthttp обСспСчиваСт быстрый HTTP-сСрвСр ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ API. Он ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ 100 000 запросов Π² сСкунду ΠΈ ΡΠ²Ρ‹ΡˆΠ΅ 1 ΠΌΠ»Π½ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… соСдинСний. Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ рассчитан Π½Π° ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΠΈΠ·ΠΊΠΎΠ΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ памяти ΠΈ обСспСчиваСт ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ обновлСния соСдинСния Ρ‡Π΅Ρ€Π΅Π· RequestCtx.Hijack.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Fasthttp для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ возмоТностСй ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрных Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ Π»ΠΈΠ±ΠΎ написания ΠΈΡ… с нуля. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ запросов ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ достаточно ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ адрСс сСрвСра ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, рСгистратор запросов, ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ запроса ΠΈ Ρ‚. ΠΏ.

Π‘Ρ‚ΠΎΠΈΡ‚ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Fasthttp нСсовмСстим с net/http.

GorillaΒ Β 

Gorilla практичСски Π±Π΅Π·ΡƒΠΏΡ€Π΅Ρ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ со всСми ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ элСмСнтами ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ HTTP-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π•Ρ‘ Π³Π»Π°Π²Π½Ρ‹Π΅ достоинства Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ Π² качСствС основных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. И ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ «засорСния» ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ Π² случаС Gorilla Π½Π΅Ρ‚ β€” всё ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ спроСктировано.

ΠŸΠ°ΠΊΠ΅Ρ‚ Gorilla WebSocket прСдоставляСт ΠΏΠΎΠ»Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° WebSocket. Благодаря простотС использования ΠΈ возмоТностям Ρƒ этого Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Π΅ΡΡ‚ΡŒ всС ΡˆΠ°Π½ΡΡ‹ ΡΡ‚Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹Ρ… для Golang.

Π’Π΅ΠΌΠ° Ρ„Ρ€Π΅ΠΉΠ²ΠΎΡ€ΠΊΠΎΠ² Π² Golang достаточно слоТная. Π•Π΄ΠΈΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠ³ΠΎ стандарта ΠΏΠΎΠΊΠ° Π½Π΅Ρ‚, явного Π»ΠΈΠ΄Π΅Ρ€Π° срСди написанных сообщСством Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² β€” Ρ‚ΠΎΠΆΠ΅. ΠœΡ‹ пСрСчислили Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярныС Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ. РасскаТитС, Π° Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π²Ρ‹?

Π’ΠΎΠΏ 5 Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Golang Π² 2021

Π‘Ρ€Π°Π·Ρƒ ΠΎΠ³ΠΎΠ²ΠΎΡ€ΡŽΡΡŒ это моя ΠΎΡ†Π΅Π½ΠΊΠ° ΠΈ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ вашСй πŸ™‚

ΠšΠΎΡ€ΠΎΡ‚ΠΊΠΎ ΠΎ самом языкС

GolangΒ (ΠΈΠ»ΠΈ Go) β€” это ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ язык программирования с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания простого, систСматизированного ΠΈ бСзопасного ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.  Он Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Google Π² 2007 Π³ΠΎΠ΄Ρƒ ΠΈ Π±Ρ‹Π» Π»Π΅Π³ΠΊΠΎ принят Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ΠΏΠΎ всСму ΠΌΠΈΡ€Ρƒ благодаря своим функциям, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ памяти, структурная типизация, сборка мусора ΠΈ сходство с языком C.Β 

Π’Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ Golang ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для написания интСрфСйсов ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ программирования (API) ΠΈ Π²Π΅Π±-сСрвисов сразу.Β ΠŸΡ€ΠΈ создании Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹, Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ обСспСчСнии производствСнного уровня.Β Π”Π°ΠΆΠ΅ зная Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ знания, трСбуСтся ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ производствСнного уровня. По этой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ.Β Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ услуги, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² своС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, Π° Π½Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

1. Gin

Gin Ρ€Π°ΠΌΠΊΠ° возглавляСт список с Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ зрСния популярности благодаря своим минималистским Ρ€Π°ΠΌΠΊΠ°ΠΌ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.  Он Π² основном ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания REST API для сСрвСрной части, Ссли программист Ρ…ΠΎΡ‡Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ одностраничноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с использованиСм внСшнСй срСды.Β Π­Ρ‚Π° структура ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ HTTP-ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Golang ΠΈ идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… вмСстС с Π±ΠΎΠ³Π°Ρ‚ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ, прСдставлСнной Π½Π° GitHub. Он ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ подходящСй срСдой Golang для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… API REST.Β 

ΠžΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ сообщСство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π΄ΠΆΠΈΠ½Π° создало ΠΎΠ±ΡˆΠΈΡ€Π½ΠΎΠ΅, Ρ…ΠΎΡ€ΠΎΡˆΠΎ протСстированноС ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π΄ΠΆΠΈΠ½ΠΎΠΌ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½Π΅Π΅.Β 

Π‘Π°ΠΌΡ‹ΠΉ большой нСдостаток: хотя ΠΎΠ½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΎΠ½ Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… сСрвСрных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ слоТных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ сСрвСра ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ уровня.Β 

2.Β Beego

BeegoΒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для быстрого запуска API — интСрфСйсов REST, Π²Π΅Π± β€”Β ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ сСрвСрных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Golang. Β Π•Π³ΠΎ часто Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΡƒ Django Π² Python ΠΈ содСрТат ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Golang, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ интСрфСйсы ΠΈ встраиваниС структур. НС Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ установки сторонних ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ.Β Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Model-View-Controller (MVC) со своими собствСнными Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ ΠΈ встроСнным инструмСнтом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ измСнСния ΠΊΠΎΠ΄Π°, извСстный ΠΊΠ°ΠΊΒ Bee ToolΒ .Β 

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ½ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ Π½Π° восСмь ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости. Он ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ ΠΊΠ°Ρ€Ρ‚Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ (ORM), которая ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… прилоТСния вмСстС с инструмСнтами ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сСансов ΠΈ систСмами рСгистрации. НС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ это, ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ кСша ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с элСмСнтами HTTP.Β Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с инструмСнтами ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ Django ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку.

ЕдинствСнный нСдостаток beego Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠ·-Π·Π° Π΅Π³ΠΎ высокой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹Ρ… возмоТностСй ΠΎΠ½ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ².

3.

EchoΒ 

Echo  структура являСтся Π΅Ρ‰Π΅ высокой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ, Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹ΠΉ ΠΈ минималистским Π²Π΅Π± β€”Β Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Π² Golang. Он ΠΈΠΌΠ΅Π΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ HTTP-ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€ с Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ динамичСским распрСдСлСниСм памяти, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π·ΡƒΠΌΠ½ΠΎ опрСдСляСт ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠ². Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Ρ… ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… API REST, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π² Π³Ρ€ΡƒΠΏΠΏΡ‹. Он автоматичСски устанавливаСт сСртификаты TLS ΠΎΡ‚Β Let’s EncryptΒ ΠΈ обСспСчиваСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ HTTP/2, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ взаимодСйствиС с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. Он Ρ‚Π°ΠΊΠΆΠ΅ содСрТит мноТСство встроСнных ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для использования, ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π΄Π°ΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ свои собствСнныС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ установлСны Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ корня, Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΈΠ»ΠΈ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°.

Он ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ привязку Π΄Π°Π½Π½Ρ‹Ρ… для ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ HTTP-запроса, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ JSON, XML ΠΈΠ»ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹. Для Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ½ содСрТит API для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… HTTP-ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ JSON, XML, HTML, Ρ„Π°ΠΉΠ» ΠΈ влоТСния. Β Π¨Π°Π±Π»ΠΎΠ½Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ с использованиСм любого ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° шаблонов ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Π½Π°ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ошибок HTTP.Β 

НСдостатком использования Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° echo являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ поддСрТиваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ, Π° ΠΊΠΎΠ΄ обновляСтся нСчасто.

4.Β 

Kit

Kit Ρ€Π°ΠΌΠΊΠ° программирования инструмСнтарий для создания Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ, Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ ΠΈ обслуТиваСмой microservices Π² Golang.Β Π­Ρ‚ΠΎ Π½Π°Π±ΠΎΡ€ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ комплСксный, Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ способ создания микросСрвисов для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ любого Ρ€Π°Π·ΠΌΠ΅Ρ€Π°.Β Go β€” ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ язык ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния, Π½ΠΎ микросСрвисы Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ спСциализированной ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, структура ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π° обСспСчиваСт Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ (RPC), Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΠΎΡΡ‚ΡŒ систСмы ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ инфраструктуры. Он состоит ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… связанных ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ вмСстС ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ ΡΠ°ΠΌΠΎΡƒΠ²Π΅Ρ€Π΅Π½Π½ΡƒΡŽ структуру для построСния Π±ΠΎΠ»ΡŒΡˆΠΈΡ… сСрвис-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ (SOA) ΠΈ Π΄Π΅Π»Π°ΡŽΡ‚ Golang пСрвоклассным языком для написания микросСрвисов Π² любой ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ.  Он Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ для обСспСчСния взаимодСйствия, ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π»ΡƒΡ‡ΡˆΠ΅ всСго подходят для Π½ΠΈΡ….

НСдостатком использования go-kit являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠ·-Π·Π° интСнсивного использования интСрфСйсов Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы Π½Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ API Π² слуТбу ΠΎΡ‡Π΅Π½ΡŒ высоки.

5.Β 

Fasthttp

Fasthttp структура обСспСчиваСт быстрый HTTP — сСрвСр ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ API,Β ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» сдСлан в качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ сСти / HTTP ΠΈΠ· β€”Β Π·Π° Π΅Π΅ ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Π½Π° возмоТности ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. Он ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ ΠΏΠΎ скорости ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π»Π΅Π³ΠΊΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ 100 тыс. Запросов Π² сСкунду ΠΈ Π±ΠΎΠ»Π΅Π΅ 1 ΠΌΠ»Π½ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… соСдинСний Π½Π° соврСмСнном ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ. Он Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ для Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ использования памяти ΠΈ обСспСчиваСт ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ обновлСния соСдинСния Ρ‡Π΅Ρ€Π΅Π·Β RequestCtx.HijackΒ .Β 

Fasthttp API Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… клиСнтских ΠΈ сСрвСрных Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ ΠΈΠ»ΠΈ написания собствСнных клиСнтских ΠΈ сСрвСрных Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ с нуля. Β ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ запросов прСдоставляСтся ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ адрСс сСрвСра ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, рСгистратор запросов, ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ запроса ΠΈ Ρ‚. Π”.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ net/http ΠΈΠΌΠ΅Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΡƒΡŽ Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΡŽ, ΠΎΠ½ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ΅Π½ ΠΈ протСстирован.Β ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ net/http ΠΈ fasthttp нСсовмСстимы, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ часто Π±Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ с net/http Π½Π° fasthttp.

Π­Ρ‚ΠΎ 5 самых популярных Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Golang Π² 2021 Π³ΠΎΠ΄Ρƒ, составлСнныС Π½Π° основС популярности Π½Π° GitHub.Β Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· пСрСчислСнных здСсь Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Π΅ΡΡ‚ΡŒ свой Π½Π°Π±ΠΎΡ€ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ΠΌ любой ΠΈΠ· этих Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅ трСбования ΠΊ Π½ΠΈΠΌ. НС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ этим, Golang Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ мноТСство Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Buffalo, Martini, Goji, net/http, Revel ΠΈ Ρ‚.Π΄., И Π½Π΅ ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΈΡ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠ±Ρ‹Π²Π°Ρ‚ΡŒ.

Π’ΠΎΠΏ-5 Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Golang Π² 2022 Π³ΠΎΠ΄Ρƒ

Golang (ΠΈΠ»ΠΈ Go) β€” это скомпилированный язык программирования с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания простого, систСматичСского ΠΈ бСзопасного ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Он Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Google Π² 2007 Π³ΠΎΠ΄Ρƒ ΠΈ Π±Ρ‹Π» с Π³ΠΎΡ‚ΠΎΠ²Π½ΠΎΡΡ‚ΡŒΡŽ принят Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ Π²ΠΎ всСм ΠΌΠΈΡ€Π΅ ΠΈΠ·-Π·Π° Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ памяти , структурная типизация, сборка мусора ΠΈ сходство с языком C.

Π’Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ Golang ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для нСпосрСдствСнного написания интСрфСйсов ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ программирования (API) ΠΈ Π²Π΅Π±-сСрвисов. ΠŸΡ€ΠΈ создании Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹, Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ обСспСчСнии производствСнного уровня. Π”Π°ΠΆΠ΅ зная Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ имСя знания, ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ производствСнного уровня Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. По этой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ. Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ услуги, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² своС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, Π° Π½Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

The top 5 web frameworks in Golang on the basis of popularity (according to stars on GitHub) are listed as follows:

Name

Stars

Forks

ОВКРЫВИЯ.0007

238

beego

24.5k

4.9k

746

echo

17.7k

1.6k

37

ΠšΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚

17,5K

1,8K

59

FTHTTTP0007

13K

1,1K

34

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° эти Ρ€Π°ΠΌΠΊΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΈ ΡΠΎΠ±Π»ΡŽΠ΄Π°ΠΉΡ‚Π΅ ΠΈΡ… Π½Π° основС ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΡΡ‚ΡŽΠΌΠΎΠ² ΠΈ простоты использования:

90444444414444144444444444414444444144444444441444444144444414444444444444444444444444444444444441444144414441444141414414144414141414414141444144451444514445144451444514445. Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ gin возглавляСт список Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Go ΠΏΠΎ популярности благодаря своСй минималистичной структурС ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Он Π² основном ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания REST API для сСрвСрной части, Ссли программист Ρ…ΠΎΡ‡Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ одностраничноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с использованиСм внСшнСй срСды. Π­Ρ‚ΠΎΡ‚ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ HTTP-ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Golang ΠΈ идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΎΠ±ΡˆΠΈΡ€Π½Π°Ρ докумСнтация прСдставлСна ​​на GitHub. Он ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ подходящСй срСдой Golang для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… API-интСрфСйсов REST.

API этого Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° ΠΌΠ°Ρ€Ρ‚ΠΈΠ½ΠΈ, Π½ΠΎ ΠΏΠΎΡ‡Ρ‚ΠΈ Π² 40 Ρ€Π°Π· быстрСС Π΅Π³ΠΎ! ΠžΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ сообщСство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π΄ΠΆΠΈΠ½Π° создало мноТСство Ρ…ΠΎΡ€ΠΎΡˆΠΎ протСстированных ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π΄ΠΆΠΈΠ½ΠΎΠΌ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½Π΅Π΅.

Π‘Π°ΠΌΡ‹ΠΉ большой нСдостаток Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ хотя ΠΎΠ½ ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΎΠ½ Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… сСрвСрных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ слоТных сСрвСрных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ уровня.

2. beego

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ beego ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для быстрой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ REST API, Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ сСрвСрных слуТб Π½Π° Golang. Π•Π³ΠΎ часто Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ ΠΊΠ°ΠΊ Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Django Π² Python, ΠΈ ΠΎΠ½ содСрТит спСцифичСскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Golang, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ интСрфСйсы ΠΈ встраиваниС структур. Он Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… сторонних установок. Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Model-View-Controller (MVC) со своими собствСнными Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ ΠΈ встроСнным инструмСнтом, ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‰ΠΈΠΌ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ измСнСния Π² ΠΊΠΎΠ΄Π΅, извСстным ΠΊΠ°ΠΊ ΠŸΡ‡Π΅Π»ΠΈΠ½Ρ‹ΠΉ инструмСнт .

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ½ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ Π½Π° восСмь ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости. Он ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠ°Ρ€Ρ‚Ρƒ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (ORM), которая ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… прилоТСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ инструмСнты ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сСансов ΠΈ систСмы вСдСния ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ². НС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ это, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ кСша ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с элСмСнтами HTTP. Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с инструмСнтами ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ Django ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку.

ЕдинствСнный минус beego Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠ·-Π·Π° высокой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹Ρ… возмоТностСй ΠΎΠ½ Π½Π΅ Ρ‚Π°ΠΊ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ².

3. echoΒ 

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ echo , ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² Go, β€” это Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ, Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹ΠΉ ΠΈ минималистичный Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Π² Golang. Он ΠΈΠΌΠ΅Π΅Ρ‚ высокооптимизированный HTTP-ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€ с Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ динамичСским Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ памяти, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π·ΡƒΠΌΠ½ΠΎ расставляСт ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹ для ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠ². Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Ρ… ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… REST API, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π³Ρ€ΡƒΠΏΠΏΡ‹. Он автоматичСски устанавливаСт сСртификаты TLS ΠΈΠ· Let’s Encrypt ΠΈ обСспСчиваСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ HTTP/2, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΈ обСспСчиваСт Π»ΡƒΡ‡ΡˆΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс. Он Ρ‚Π°ΠΊΠΆΠ΅ содСрТит мноТСство встроСнных ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для использования, ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π΄Π°ΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ свои собствСнныС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ установлСны Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ корня, Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΈΠ»ΠΈ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°.

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ привязку Π΄Π°Π½Π½Ρ‹Ρ… для ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ HTTP-запроса, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ JSON, XML ΠΈΠ»ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹. Для Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ½ содСрТит API для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… HTTP-ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ JSON, XML, HTML, Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ влоТСния. Π¨Π°Π±Π»ΠΎΠ½Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ любого ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° ΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Π΅ΠΌΡƒΡŽ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ошибок HTTP.

НСдостаток использования эхо-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ поддСрТиваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ, Π° ΠΊΠΎΠ΄ обновляСтся нСчасто.

4. kit

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° kit β€” это Π½Π°Π±ΠΎΡ€ инструмСнтов программирования для создания Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Ρ…, Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Ρ… ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹Ρ… Π² сопровоТдСнии микросСрвисов Π½Π° Golang. Π­Ρ‚ΠΎ Π½Π°Π±ΠΎΡ€ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈ Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ комплСксный, Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ способ создания микросСрвисов для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ любого Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. Go β€” ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ язык ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния, Π½ΠΎ микросСрвисы Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ спСциализированной ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π° обСспСчиваСт Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ (RPC), Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΠΎΡΡ‚ΡŒ систСмы ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ с инфраструктурой. Он состоит ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… взаимосвязанных ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ вмСстС ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Π½Π½ΡƒΡŽ структуру для построСния ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… сСрвис-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ (SOA) ΠΈ Π΄Π΅Π»Π°ΡŽΡ‚ Golang пСрвоклассным языком для написания микросСрвисов Π² любой ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ. Он Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ для взаимодСйствия, ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ свободно Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π»ΡƒΡ‡ΡˆΠ΅ всСго подходят для Π½ΠΈΡ….

НСдостаток использования go-kit Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠ·-Π·Π° интСнсивного использования интСрфСйсов Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы Π½Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ API Π² слуТбу ΠΎΡ‡Π΅Π½ΡŒ высоки.

5. fasthttp

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ fasthttp прСдоставляСт быстрый HTTP-сСрвСр ΠΈ клиСнтский API, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» создан Π² качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ net/http ΠΈΠ·-Π·Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ возмоТностСй ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. Он ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ ΠΏΠΎ скорости ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π»Π΅Π³ΠΊΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ 100 тыс. запросов Π² сСкунду ΠΈ Π±ΠΎΠ»Π΅Π΅ 1 ΠΌΠ»Π½ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… соСдинСний ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ активности Π½Π° соврСмСнном ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ. Он Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ для Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ использования памяти ΠΈ обСспСчиваСт ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ обновлСния соСдинСния Ρ‡Π΅Ρ€Π΅Π· RequestCtx.Hijack .

API Fasthttp Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… клиСнтских ΠΈ сСрвСрных Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ ΠΈΠ»ΠΈ создания собствСнных клиСнтских ΠΈ сСрвСрных Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ с нуля. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ запросов прСдоставляСтся ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ адрСс сСрвСра ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, рСгистратор запросов, ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ запроса ΠΈ Ρ‚. Π΄. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ net/http ΠΈΠΌΠ΅Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΡƒΡŽ Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΡŽ, ΠΎΠ½ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ΅Π½ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ net/http ΠΈ fasthttp нСсовмСстимы, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ часто Π±Ρ‹Π²Π°Π΅Ρ‚ слоТно ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ с net/http Π½Π° fasthttp.

РСзюмС

Π­Ρ‚ΠΎ 5 самых популярных Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Golang Π² 2020 Π³ΠΎΠ΄Ρƒ, составлСнныС Π½Π° основС популярности Π½Π° GitHub. КаТдая пСрСчислСнная здСсь ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для экспСримСнтов, ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΈΠ· этих ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅ Π΅Π΅ трСбования. НС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ этим, Golang Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ мноТСство Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Buffalo, Martini, Goji, net/http, Revel ΠΈ Ρ‚. Π΄., ΠΈ Π½Π΅ ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΈΡ….

Π›ΡƒΡ‡ΡˆΠΈΠ΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ Golang для программистов

ΠœΠΈΡ€ программирования сильно измСнился Π·Π° послСдниС нСсколько Π»Π΅Ρ‚. ИспользованиС Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² стало Π±ΠΎΠ»Π΅Π΅ распространСнным, ΠΈ сообщСство ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь создавало Π½ΠΎΠ²Ρ‹Π΅. Однако всС Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ. НСкоторыС Π»ΡƒΡ‡ΡˆΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΡ…, Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°ΠΆΠ΅ Π»ΡƒΡ‡ΡˆΠ΅!

Golang β€” это язык программирования, прСдставлСнный Google для создания сСрвСрных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Он популярСн срСди Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° сСрвСрах, Ρ‡Ρ‚ΠΎ позволяСт быстро ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Π΅ Π²Π΅Π±-сайты.

Π›ΡƒΡ‡ΡˆΠΈΠ΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ Golang ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ с Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡ‚Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ Π»ΡƒΡ‡ΡˆΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°Ρ… ΠΈ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚! Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ обсудим Π»ΡƒΡ‡ΡˆΠΈΠ΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ Golang для программистов.

Π—Π½Π°Π½ΠΈΠ΅ Π»ΡƒΡ‡ΡˆΠΈΡ… Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Golang ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Π΅ Π²Π΅Π±-сайты. Π­Ρ‚ΠΎ Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ статичСски Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык программирования ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Π²Π΅Π±-срСдС.

Π’ послСдниС нСсколько Π»Π΅Ρ‚ Golang Π½Π°Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ благодаря своСй ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΠΈ. БСгодня ΠΌΡ‹ обсудим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π»ΡƒΡ‡ΡˆΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Π΅ Π²Π΅Π±-сайты с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Golang!

Best Golang Web Framework List

golang framework

  • Revel
  • Web. go
  • Goji
  • Echo
  • Gocraft
  • Gorilla
  • Mango
  • Buffalo
  • Net/HTTP
  • Beego
  • Gin Gonic
  • Martini
  • 4

  • Iris

1. Π’Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Gin

Gin считаСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π»ΡƒΡ‡ΡˆΠΈΡ… Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Golang Π² спискС. Π­Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ для написания ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Ρ… ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Он построСн Π½Π° основС Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Martini, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π’ΠΎΠΌΠΎΠΌ Π‘Ρ‚ΡŽΠ°Ρ€Ρ‚ΠΎΠΌ, Π° Π·Π°Ρ‚Π΅ΠΌ поддСрТиваСтся ΠœΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΌ Π€ΠΈΡˆΠ΅Ρ€ΠΎΠΌ ΠΏΡ€ΠΈ участии Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π‘Π΅Π½Π° ΠšΡ€ΠΈΡΡ‚Π΅Π½ΡΠ΅Π½Π° ΠΈ АлСкса Π“Π΅ΠΉΠ½ΠΎΡ€Π°.

Бинтаксис Gin Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ структурС Django (популярная CMS Π½Π° основС Python). Π­Ρ‚ΠΎ позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌ ΠΎΠΏΡ‹Ρ‚ использования ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Python, Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π½Π° Golang с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ усилиями.

2. Beego Web Framework

Beego ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ уровня с большСй ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Beego концСнтрируСтся Π½Π° ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… прилоТСниях, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‡Π΅Π½ΡŒ Π²Π΅Π»ΠΈΠΊΠΈ ΠΈ содСрТат мноТСство ΠΊΠΎΠ΄ΠΎΠ² с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ характСристиками, соврСмСнная структура упорядочиваСт ΠΌΠΎΠ΄ΡƒΠ»ΠΈ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… случаСв использования, оптимизируя Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΡƒΡŽ структуру, Ρ‚Π°ΠΊΡƒΡŽ ​​как ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ вСдСния ΠΆΡƒΡ€Π½Π°Π»Π° ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ.

Beego Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ Π½Π° Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ части:

  • Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ с ΠΆΡƒΡ€Π½Π°Π»ΠΎΠΌ, ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ ΠΈ рСгулятором
  • Π’Π΅Π±-сСрвСр
  • Π—Π°Π΄Π°Ρ‡ΠΈ
  • ΠšΠ»ΠΈΠ΅Π½Ρ‚

3. Π’Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Revel

Revel β€” ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ. Revel β€” это ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π²Π΅Π±-сайта Golang для создания REST API, Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ микросСрвисов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Golang. Он Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Π³ΠΎ Π±Ρ‹Π»ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ быстро ΠΈ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ всС, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ, Π½Π΅ бСспокоясь ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π²Π½ΡƒΡ‚Ρ€ΠΈ. Revel β€” это срСда MVC для языка программирования Go, вдохновлСнная Rails, Grails ΠΈ Play!

Revel ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ написаниС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Go. Π’Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΎ HTML ΠΈΠ»ΠΈ CSS, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ своС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ β€” просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ простыС DSL (ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ языки) Revel ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ стандартныС Ρ‚Π΅Π³ΠΈ HTML Π½Π° своСй страницС с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.

4. Π’Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Echo

Echo β€” это ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для создания Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Go. Он основан Π½Π° ΠΈΠ΄Π΅Π΅ создания микросСрвисов ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для создания API, Π²Π΅Π±-сСрвисов JSON ΠΈ API RESTful. Π­Ρ…ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΈΠ»ΠΈ Π² сочСтании с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ gin.

5. Π’Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Buffalo

Buffalo β€” это Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Go, Π²Π΄ΠΎΡ…Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ Python’s Django ΠΈ Ruby on Rails. Π‘ Π½ΠΈΠΌ ΠΎΡ‡Π΅Π½ΡŒ просто Π½Π°Ρ‡Π°Ρ‚ΡŒ, Π½ΠΎ ΠΎΠ½ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡ, ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сСансами ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅!

Buffalo прСдоставляСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

  • ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡ‚ΠΈΡ‡Π½Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ GO API, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° любом языкС (Go ΠΈΠ»ΠΈ JavaScript)
  • Богатая экосистСма сторонних ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ Buffalo Π΅Ρ‰Π΅ Π»ΡƒΡ‡ΡˆΠ΅

6.

Π’Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Gorilla

Gorilla β€” это Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, созданный Π½Π° основС языка программирования Go. Π­Ρ‚ΠΎΡ‚ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ использовался нСсколькими компаниями, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Netflix, для создания своих Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Gorilla ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ соглашСниС, Π° Π½Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ для Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π½Π΅ трСбуСтся Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ.

Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ со ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ функциями, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ зависимостСй ΠΈ тСстированиС. Gorilla обСспСчиваСт Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ слоТной Π² освоСнии. Основная Π·Π°Π΄Π°Ρ‡Π° Gorilla β€” ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ быстрого создания собствСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Если Π²Ρ‹ ΠΈΡ‰Π΅Ρ‚Π΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позаботится ΠΎΠ±ΠΎ всСх ΡƒΡ‚ΠΎΠΌΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡Π°Ρ…, Ρ‚ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Gorilla β€” ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€. Он ΠΈΠΌΠ΅Π΅Ρ‚ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ поставляСтся с бСсплатным ΠΏΠ»Π°Π½ΠΎΠΌ. Он прост Π² использовании, Π° Π΅Π³ΠΎ докумСнтация доступна Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… языках.

7. Goji Web Framework

Goji β€” Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°, созданная Google ΠΈ выпущСнная Π² 2017 Π³ΠΎΠ΄Ρƒ. Она прСдоставляСт Π½Π°Π±ΠΎΡ€ инструмСнтов ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ быстрый ΠΈ эффСктивный ΠΊΠΎΠ΄.

Goji β€” это соврСмСнная срСда Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, которая прСдоставляСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ простой способ написания ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ создания Π±ΠΎΠ»Π΅Π΅ бСзопасных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ нСсколько языков, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ JavaScript, Python, Java ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Он Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Ρ‚Π°ΠΊΠΈΠ΅ инструмСнты, ΠΊΠ°ΠΊ автоматичСская настройка, Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ зависимостСй ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΈΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ нСзависимо ΠΎΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠ»ΠΈ языка программирования, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ ΠΈΡ… прилоТСния.

8. Π’Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Martini

Martini β€” это Π»Π΅Π³ΠΊΠΈΠΉ, ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈ быстрый Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для Go. Sinatra вдохновляСт Π΅Π³ΠΎ, Π½ΠΎ интСгрируСтся с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ GopherJS ΠΈ GorillaMux.

Martini β€” Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ для создания Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Он ΠΏΠΎΡ…ΠΎΠΆ Π½Π° Gorilla Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ позволяСт Π²Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ любой язык программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Π½ΠΎ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ подходящим для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄.

НапримСр, Ρƒ Martini Π΅ΡΡ‚ΡŒ систСма ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², которая позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠ΄ΠΎΠΌ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π±Π΅Π· нСобходимости ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ собствСнныС вСрсии ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Martini.

Martini β€” это Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ с ΠΏΠΎΠ»Π½Ρ‹ΠΌ стСком, основанный Π½Π° Gorm ΠΈ Goji, с мноТСством Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Martini ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ gorm Π² качСствС уровня Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π½ΠΎ Π΅Π³ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ MySQL ΠΈΠ»ΠΈ PostgresQL.

Он обСспСчиваСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… языков ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ Go, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ net/HTTP, crypto, net/URL ΠΈ Ρ‚. Π΄., Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ для создания API-интСрфСйсов, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… высокой доступности ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π“Π»Π°Π²Π½Ρ‹ΠΉ нСдостаток Martini Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ встроСнной систСмы управлСния ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ, поэтому слоТно Π»Π΅Π³ΠΊΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ зависимости.

Read also – GoLang vs NodeJs

Pros and Cons Of Golang Web Frameworks

PROS of Golang Web Frameworks CONS of Golang Web Frameworks
Π§Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ быстрый НСявныС интСрфСйсы
ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ Π² освоСнии синтаксис ΠŸΠ»ΠΎΡ…Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ
Π‘Π±ΠΎΡ€ΠΊΠ° мусора НСт ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½ΠΈΠΉ
Testing Support Zero Community Support
Statically Typed Internal Inconsistencies
Interface Types Limited Automation Scope

Pros and Cons Of Golang Web Frameworks

Conclusion

The Golang web framework β€” ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ способ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π²Π΅Π±-сайты.

This entry was posted in ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΠ΅