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

The Best Golang framework: no framework? / Π₯Π°Π±Ρ€

Best Framework?

Π’ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈ Π½Π° рСсурсС threedots.tech ΠΎΡ‚ Robert Laszczak — Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π° Π² SlashID, соосноватСля Three Dots Labs ΠΈ создатСля популярной Golang-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Watermill.

На протяТСнии Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ я занимался руководством Π³Ρ€ΡƒΠΏΠΏΡ‹ Go-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· самых распространСнных вопросов ΠΎΡ‚ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… спСциалистов Π±Ρ‹Π» — «ΠšΠ°ΠΊΠΎΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΌΠ½Π΅ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?». Одним ΠΈΠ· самых Ρ…ΡƒΠ΄ΡˆΠΈΡ… совСтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΠ»Ρ‹ΡˆΠ°Ρ‚ΡŒ Π² Golang — это ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρƒ ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΡ… языков программирования.

Π’ Π΄Ρ€ΡƒΠ³ΠΈΡ… языках программирования ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ популярный Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ стали Π½Π΅ΠΊΠΈΠΌ стандартном ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ β€œΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽβ€. Π’ Java Π΅ΡΡ‚ΡŒ Spring, Π² Python Π΅ΡΡ‚ΡŒ Django ΠΈ Flask (+ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ), Π² Ruby Π΅ΡΡ‚ΡŒ Rails, Ρƒ Node Π΅ΡΡ‚ΡŒ Express, Π° Ρƒ PHP Π΅ΡΡ‚ΡŒ Symfony ΠΈ Laravel. Π’ Golang Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π΅ΡΡ‚ΡŒ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ — здСсь Π½Π΅Ρ‚ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Π§Ρ‚ΠΎ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ интСрСсно, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ Go-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Π’Π°ΠΌ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎ сСбя ΡΠΊΠ°Π·Π°Ρ‚ΡŒ — ΠΎΠ½ΠΈ Ρ‡Ρ‚ΠΎ, ΡΡƒΠΌΠ°ΡΡˆΠ΅Π΄ΡˆΠΈΠ΅? 😁

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ сСрвиса Π½Π° Go ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΡ‰ΡƒΡ‰Π΅Π½ΠΈΠ΅ создания монстра Π€Ρ€Π°Π½ΠΊΠ΅Π½ΡˆΡ‚Π΅ΠΉΠ½Π°

Ѐилософия Golang

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ Π² Go ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚, Π½ΠΎ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ… Π½Π΅ прСдоставляСт Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ — ΠΊΠ°ΠΊ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… популярных языках. Π­Ρ‚ΠΎ Π½Π΅ скоро измСнится.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ это ΠΏΠΎΡ‚ΠΎΠΌΡƒ — экосистСма Go ΠΊΡ€Π°ΠΉΠ½Π΅ молодая ΠΈ Π΅Ρ‰Π΅ Π½Π΅ сформирована ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ. Но Π΅ΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹ΠΉ Ρ„Π°ΠΊΡ‚ΠΎΡ€. Go построСн Π½Π° философии Unix, которая гласит:

1. Write programs that do one thing and do it well.

2. Write programs to work together.

3. Write programs to handle text streams because that is a universal interface

Π­Ρ‚Π° философия Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° Ρƒ Ken Thompson — Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° языка программирования B (ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΈΠΊΠ° C).

На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ философия Unix ΠΎΡ‚Π΄Π°Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ созданию Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… нСзависимых частСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎ. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ это Π² своСм Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ (ΠΏΡ€ΠΈΠΌΠ΅Ρ€):

cat example.txt | sort | uniq

Π Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹ΡˆΠ΅: ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° cat считываСт Ρ„Π°ΠΉΠ» example.txt, Π΄Π°Π»Π΅Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° sort сортируСт Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ послС ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° uniq оставляСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ значСния.

ВсС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ нСзависимы ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΠΎΠ΄Π½Ρƒ Π·Π°Π΄Π°Ρ‡Ρƒ. Π­Ρ‚ΠΎ происходит нСпосрСдствСнно ΠΈΠ· философии Unix. Благодаря Ρ‚Π°ΠΊΠΎΠΌΡƒ Π΄ΠΈΠ·Π°ΠΉΠ½Ρƒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшиС ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ нСзависимыС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

Π’ Golang философия Unix Π²ΠΈΠ΄Π½Π° Π² стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅. Π›ΡƒΡ‡ΡˆΠΈΠΌΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнныС интСрфСйсы Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°: io.Reader ΠΈ io.Writer. МногиС популярныС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΎΠΉ философии.

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ Π² соотвСтствии с этой философиСй часто ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ ΠΎΡ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования (use cases), Ρ‡Ρ‚ΠΎ Π² ΠΊΠΎΠ½Ρ‡Π΅Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ нСвозмоТности Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ. Π§Π΅Ρ€Π΅Π· ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ врСмя Ρ‚Π°ΠΊΠΎΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ просто ΡƒΠΌΡ€Π΅Ρ‚.

Π§Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ!

Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ тСхничСского Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π΅ΡΡ‚ΡŒ свои компромиссы. Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡΠΎΠ·Π½Π°Ρ‚ΡŒ эти ограничСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π²Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ для Вас ΠΈ Π’Π°ΡˆΠ΅Π³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° .

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

Для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ:

  • ΠΊΠ°ΠΊ быстро Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚;

  • ΠΊΠ°ΠΊ быстро Π²Ρ‹ смоТСтС Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒ этот ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² долгосрочной пСрспСктивС;

  • насколько Π³ΠΈΠ±ΠΊΠΈΠΌ для Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ (это тСсно связано с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠΌ).

ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΎΡ†Π΅Π½ΠΈΠ²Π°Ρ‚ΡŒ наши Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½Π½ΠΎ с этих ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ.

Экономия Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ

Одно ΠΈΠ· самых Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±Π΅Ρ‰Π°Π½ΠΈΠΉ любого Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° — это экономия Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π’Ρ‹ запускаСтС ΠΎΠ΄Π½Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎ всСму. Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Ρ‡Π΅Ρ‚ΠΊΡƒΡŽ структуру ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ это Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΡ€ΠΈ отсутствии Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π·Π½Π°Π½ΠΈΠΉ. Но, ΠΊΠ°ΠΊ ΠΈ Π² случаС с Π»ΡŽΠ±Ρ‹ΠΌΠΈ тСхничСскими Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ — это Π½Π΅ бСсплатно.

Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΈ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ всС большС — Π²Ρ‹ быстро Π½Π°Ρ‚ΠΊΠ½Π΅Ρ‚Π΅ΡΡŒ Π½Π° стСну условностСй ΠΈ ограничСния ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°. ИдСи ΠΈ трСбования ΠΊ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΡƒ Π°Π²Ρ‚ΠΎΡ€Π°, ΠΌΠΎΠΆΠ΅Ρ‚ Π»Π΅Π³ΠΊΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Π’Π°ΡˆΠΈΡ… взглядов ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ². РСшСниС принятоС создатСлСм Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°, ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ для простых CRUD-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ для Π±ΠΎΠ»Π΅Π΅ слоТных сцСнариСв использования. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΡ‚Π΅Ρ€ΡΡ‚ΡŒ всС своС сэкономлСнноС врСмя Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ этапС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ Π² скором Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π’Π°ΡˆΠ° Ρ€Π°Π±ΠΎΡ‚Π° пСрСрастСт Π² Π±ΠΎΡ€ΡŒΠ±Ρƒ с ограничСниями Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°.

ΠŸΠ°Ρ€Ρƒ Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄ я Ρ€Π°Π±ΠΎΡ‚Π°Π» Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, которая ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π»Π° с Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Π½Π° Go (я ΠΏΡ€ΠΎΠΏΡƒΡ‰Ρƒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°). Компания росла ΠΈ создавала Π½ΠΎΠ²Ρ‹Π΅ сСрвисы. Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΌΡ‹ Π½Π°Ρ‡Π°Π»ΠΈ ΠΈΡΠΏΡ‹Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ большС Π±ΠΎΠ»ΠΈ, ΠΊΠΎΠ³Π΄Π° Ρ…ΠΎΡ‚Π΅Π»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ слоТныС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования. Π­Ρ‚ΠΎ стало для нас ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ. К соТалСнию, ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Π±Ρ‹Π»ΠΎ ΡƒΠΆΠ΅ нСпросто.

Π’ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹/ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ/Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ нСсовмСстимыми с ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ экосистСмой Π’Π°ΡˆΠ΅Π³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ΠœΡ‹ Π±Ρ‹Π»ΠΈ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Ρ‹ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Π—Π°ΠΌΠ΅Π½Π° Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Π² дСсятках сСрвисов Π±Ρ‹Π»Π° Π½Π΅Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ΅ΠΌΠΊΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ. Π­Ρ‚ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎ ΠΌΠ΅ΠΆΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Ρ… взаимодСйствий, Π½Π° устранСниС Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΡƒΡˆΠ»ΠΎ нСсколько Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎ-мСсяцСв ΠΈ Π±Ρ‹Π»ΠΎ нСсколько ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚ΠΎΠ² Π½Π° ПРОМС. Π”Π°ΠΆΠ΅ Ссли Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π±Ρ‹Π» ΠΏΡ€ΠΈΠ·Π½Π°Π½ ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹ΠΌ, я Π½Π΅ рассматривал Π΅Π³ΠΎ Ρ‚Π°ΠΊΠΎΠ²Ρ‹ΠΌ с тСхничСской Ρ‚ΠΎΡ‡ΠΊΠΈ. ВсС ΠΏΠΎΡ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ врСмя ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ эффСктивнСС, Ссли Π±Ρ‹ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ принял Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π° самом стартС. ΠΠ΅ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΡΡ‚Ρ€Π°Π΄Π°ΡŽΡ‚ ΠΎΡ‚ нСдостатка довСрия ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Π­Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠ΅ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ°Ρ€Ρƒ Π»Π΅Ρ‚ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ Π² ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ — Π½Π° устранСниС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ потрСбуСтся ΠΌΠ½ΠΎΠ³ΠΎ усилий ΠΈ Π΄Π΅Π½Π΅Π³.

Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Π˜Π·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ слоТности ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² спорная Ρ‚Π΅ΠΌΠ°. Π’Ρ€ΡƒΠ΄Π½ΠΎ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ Π΄Π²Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. НСкоторыС люди говорят, Ρ‡Ρ‚ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ Π²Π΅Π»ΠΈΠΊΠΎΠ»Π΅ΠΏΠ½Ρ‹ ΠΈ ΠΎΠ½ΠΈ Π½Π΅ ΠΈΡΠΏΡ‹Ρ‚Ρ‹Π²Π°ΡŽΡ‚ Π±ΠΎΠ»ΠΈ ΠΎΡ‚ ΠΈΡ… использования. Для Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‚Π°Ρ‚ΡŒ самым большим ΠΊΠΎΡˆΠΌΠ°Ρ€ΠΎΠΌ Π² долгосрочной пСрспСктивС. НСкоторыС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ слоТныС, Ρ‡Π΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. МногиС люди Π΄ΡƒΠΌΠ°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Π±ΠΎΡ€ΡŒΠ±Π° с Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ — это всСго лишь Ρ‡Π°ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΡ‚ΡŒ влияниС Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Π½Π° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ.

К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΌΠΎΡ‡ΡŒ сСбС ΠΏΠΎΠ½ΡΡ‚ΡŒ это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ нСбольшой Π½Π°ΡƒΠΊΠΈ. Π’ΠΎΡ‡Π½Π΅Π΅, с ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΎΠΉ Accelerate: The Science of Lean Software and DevOps, основанной Π½Π° Π½Π°ΡƒΡ‡Π½Ρ‹Ρ… исслСдованиях. Книга сосрСдоточСна Π½Π° поискС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΈ Π½Π°ΠΈΡ…ΡƒΠ΄ΡˆΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄. Π§Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ для нас — ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π½Π°Ρ‡ΠΈΠΌΡ‹Ρ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ являСтся слабосвязанная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°.

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ я Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΠ», часто ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Π»ΠΈ мСня — ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ, слабо Π»ΠΈ связана наша Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°. Один ΠΈΠ· самых простых способов — ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒ Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΈΠ»ΠΈ удалСния частСй вашСго прилоТСния. Если Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ части вашСго прилоТСния -Π·Π½Π°Ρ‡ΠΈΡ‚ Π’Π°ΡˆΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ тСсно связано. ΠŸΡ€ΠΈΠΊΠΎΡΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ ΠΊ ΠΎΠ΄Π½ΠΎΠΉ части — Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ эффСкт Π΄ΠΎΠΌΠΈΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ€Π°Π·Π½Ρ‹Ρ… мСстах.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ слабосвязанная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Ρ‚Π°ΠΊ Π²Π°ΠΆΠ½Π°? Π”Π°Π²Π°ΠΉΡ‚Π΅ просто это ΠΏΡ€ΠΈΠ·Π½Π°Π΅ΠΌ — это Ρ‚Π°ΠΊ. ΠœΡ‹ всС люди ΠΈ Π΄Π°ΠΆΠ΅ послС самых Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… исслСдований ΠΌΡ‹ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Π΅ΠΌ ошибки. Когда Π²Ρ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚Π΅ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ — ΠΈΡ… Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ, Π½Π΅ пСрСписывая вСсь ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Если ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ врСмя, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π² долгосрочной пСрспСктивС, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Рассмотрим сцСнарий, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ. ΠŸΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ΡΡ Π»ΠΈ для этого ΠΌΠ½ΠΎΠ³ΠΎ пСрСписывания ΠΊΠΎΠ΄Π°? МоТно Π»ΠΈ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… сСрвисах нСзависимо? Если Π½Π΅Ρ‚, Ρ‚ΠΎ Π’Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ усилия, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΎΡ‚ Π’Π°ΡˆΠ΅ΠΉ основной Π»ΠΎΠ³ΠΈΠΊΠΈ. Но это ΠΆΠ΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠΎΠΆΠ΅Ρ€Ρ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ β€œΡΠΊΠΎΠ½ΠΎΠΌΠΈΠ΅ΠΉ врСмСни”, Ρ€Π°Π΄ΠΈ Ρ‡Π΅Π³ΠΎ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ!

Π•ΡΡ‚ΡŒ Π»ΠΈ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°? Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ сСрвисы Π±Π΅Π· Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ²

Π’Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ созданиС Π’Π°ΡˆΠΈΡ… сСрвисов Π±Π΅Π· Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Π·Π°ΠΉΠΌΠ΅Ρ‚ Ρ†Π΅Π»ΡƒΡŽ Π²Π΅Ρ‡Π½ΠΎΡΡ‚ΡŒ. ОсобСнно, Ссли Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ с Π΄Ρ€ΡƒΠ³ΠΈΡ… языков программирования. Π― это прСкрасно понимаю. Π£ мСня Π±Ρ‹Π»ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅ чувство ΠΏΠ°Ρ€Ρƒ Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄, ΠΊΠΎΠ³Π΄Π° я Π½Π°Ρ‡Π°Π» ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° Go. БСйчас ΠΌΠΎΠ³Ρƒ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΡƒΠΆΠ΅ с ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ — это Π±Ρ‹Π» Π½Π΅ΠΎΠΏΡ€Π°Π²Π΄Π°Π½Π½Ρ‹ΠΉ страх. ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Π½Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ всС ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ. БущСствуСт мноТСство ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ Π’Π°ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ большС усилий ΠΊ исслСдованиям. Π”Π°ΠΆΠ΅ ΠΏΠ°Ρ€Π° часов исслСдований — Π½ΠΈΡ‡Ρ‚ΠΎ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ всСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‡Π΅Π½ΡŒ скоро Π²Π΅Ρ€Π½Π΅Ρ‚Π΅ это врСмя Π½Π°Π·Π°Π΄ благодаря гибкости, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ это Π’Π°ΠΌ даст Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄.

Π§Ρ‚ΠΎ Π’Π°ΠΌ слСдуСт Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Π’Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚Π΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ? Π‘Π°ΠΌΡ‹ΠΌ большим прСпятствиСм Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎ, ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ сСрвис. Π‘Π°ΠΌΡ‹ΠΉ простой способ — Π½Π°Ρ‡Π°Ρ‚ΡŒ с Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ всС Π² ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ». Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ с простого ΠΈ постСпСнно ΡƒΡΠ»ΠΎΠΆΠ½ΡΡ‚ΡŒ с Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

ПолСзно ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² качСствС основы. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я использовал для своСго прилоТСнияLet’s build event-driven application in 15 minutes with WatermillΒ presentation atΒ GoRemoteFest –github.com/roblaszczak/goremotefest-livecoding. Для этого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΈΡΡŒ всСго Π΄Π²Π΅ внСшниС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

НС ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ этот Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎΠ΄ Π’Π°ΡˆΠΈ потрСбности. Π― ΡƒΠ²Π΅Ρ€Π΅Π½, Ρ‡Ρ‚ΠΎ Π² этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½Π΅Ρ‚ всСх Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для Π’Π°ΡˆΠ΅Π³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ с Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°ΠΌΠΈ использования, Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π½Π΅Π΄Π΅Π»Π΅ ΠΌΡ‹ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅ΠΌ ΡΡ‚Π°Ρ‚ΡŒΡŽ со списком Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Go, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания своих сСрвисов Π½Π° Go. ΠœΡ‹ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΈΠΌΠΈ ΡƒΠΆΠ΅ ΠΏΠ°Ρ€Ρƒ Π»Π΅Ρ‚. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ объясним, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ эти Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ, Ρ…ΠΎΡ€ΠΎΡˆΠ° Π»ΠΈ подобная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΈΠ»ΠΈ ΠΏΠ»ΠΎΡ…Π° для Вас.

ИзмСняСм части Π’Π°ΡˆΠ΅Π³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π½Π΅ убивая Π΅Π³ΠΎ

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

Если Π’Ρ‹ ΠΈΡ‰Π΅Ρ‚Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, Π’Π°ΠΌ слСдуСт ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Wild Workouts – нашим ΠΏΠΎΠ»Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° Go. ΠœΡ‹ выпустили Π±Π΅ΡΠΏΠ»Π°Ρ‚Π½ΡƒΡŽ ΡΠ»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ объСмом Π±ΠΎΠ»Π΅Π΅ 200 страниц, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΡƒΡŽ — ΠΊΠ°ΠΊ ΠΌΡ‹ создали это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Π˜Ρ‚ΠΎΠ³ΠΎ

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

ΠŸΡ€ΠΈΠ½ΡΠ² Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ быстро ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Π² Π»ΠΎΠ²ΡƒΡˆΠΊΡƒ заблуТдСния ΠΎ Π·Π°Π½ΠΈΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ‚Ρ€ΡƒΠ΄ΠΎΠ·Π°Ρ‚Ρ€Π°Ρ‚Π°Ρ… Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ. ВмСсто Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ гСроями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ (Π±ΠΎΡ€ΡΡΡŒ с Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ), ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎ максимум ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡ… появлСния.


ИМΠ₯О

Π‘Ρ‚Π°Ρ‚ΡŒΡ ΠΈ ΠΌΠ½Π΅Π½ΠΈΠ΅ Robert Laszczak ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΏΡ€Π°Π²ΠΎ Π½Π° Тизнь — это Π΅Π³ΠΎ ΠΎΠΏΡ‹Ρ‚ ΠΈ видСньС. Π’ΡΡ‚Π°Π²Π»ΡŽ ΠΈ свои 5 ΠΊΠΎΠΏΠ΅Π΅ΠΊ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ стандартныС станции ΠΆΠΈΠ·Π½ΠΈ ΠΈ ΠΎΡ‚ ΠΈΠ΄Π΅ΠΈ Π΄ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΌΠΎΠ³ΡƒΡ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ нСпосрСдствСнно ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (люди), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Π»ΠΈ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ/ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ.

Π’ самом Π½Π°Ρ‡Π°Π»Π΅ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Ρƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½ΡƒΠΆΠ½Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ для подтвСрТдСния Π³ΠΈΠΏΠΎΡ‚Π΅Π· ΠΈ для быстрого Π²Ρ‹Ρ…ΠΎΠ΄Π° Π½Π° Ρ€Ρ‹Π½ΠΎΠΊ — ΠΊΠ°ΠΊ ΠΈΡ‚ΠΎΠ³ ΠΏΡ€ΠΈΠ²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΈ Π·Π°Π²ΠΎΠ΅Π²Π°Π½ΠΈΠ΅ Ρ…ΠΎΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π΄ΠΎΠ»ΠΈ Ρ€Ρ‹Π½ΠΊΠ°. Когда ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ (aka ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹) — растСт Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π½Π° сСрвисы ΠΈ Ρ‚ΡƒΡ‚ ΡƒΠΆΠ΅ всС зависит ΠΎΡ‚ прямых Ρ€ΡƒΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°/Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€Π°. Когда ΡƒΠΆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΡˆΡŒ ΡƒΠΏΠΈΡ€Π°Ρ‚ΡŒΡΡ Π² Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ — Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ сСбС вопрос, Π° всС Π»ΠΈ я ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ дСлаю Π²ΠΎΠΎΠ±Ρ‰Π΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π΄ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ rtfm? Π”ΡƒΠΌΠ°ΡŽ Π² 99% случаСв Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΠΌΠΎΡ‡ΡŒ тонкая настройка ΠΈΠ»ΠΈ точСчная оптимизация ΠΊΠΎΠ΄Π°.

ΠšΡ€ΠΎΠΌΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ограничСниями Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ², Π΅ΡΡ‚ΡŒ ΠΆΠ΅ ΠΈ Π½ΡŽΠ°Π½ΡΡ‹ с самими языками программирования. НапримСр Ссли Ρƒ Вас Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ высоконагруТСнныС сСрвис, Π³Π΄Π΅ Π’Π°ΠΌ Π²ΠΏΠ»ΠΎΡ‚Π½ΡƒΡŽ приходится ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ CPU/RAM ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ грязныС Ρ…Π°ΠΊΠΈ Π² Go для ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ GC. Π’ΡƒΡ‚ ΠΌΡ‹ ΡƒΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ Π±ΠΎΡ€ΠΎΡ‚ΡŒΡΡ с самим языком ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Π΄ΠΎ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΡƒΠΆΠ΅ Π² сторону Rust?

Π’ коммСнтариях ΠΏΠΎΠ΄ постом Robert Laszczak нашлись люди, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ явно согласились с Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ:

Π’ ΠΌΠΎΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΌΡ‹ использовали сСрвисы Go Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°. Π­Ρ‚ΠΎ Π±Ρ‹Π» приятный ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ послС связки Java + Spring. … Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ°Ρ€Ρƒ мСсяцСв Ρ†ΠΈΠΊΠ» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ стал Π³Π»Π°Π΄ΠΊΠΈΠΌ.

ΠšΠΎΠ½Ρ‡Π΅Π½ΠΎ Π±Ρ‹Π»ΠΈ ΠΈ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² ΠΊΠΎΡ€Π½Π΅ Π½Π΅ согласны с Π½ΠΈΠΌ:

ΠšΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΠΈ Π½Π΅ согласСн с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ долгосрочныС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ ΡΡ‚Ρ€Π°Π΄Π°ΡŽΡ‚ ΠΎΡ‚ использования Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ². Π’Ρ‹ Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ структуру, Π»ΠΈΠ±ΠΎ MVC Π½Π΅ соотвСтствуСт Π’Π°ΡˆΠΈΠΌ потрСбностям. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ Π·Ρ€Π΅Π»Ρ‹Ρ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² ΠΈ ΠΈΡ… ΠΎΠ±Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ — ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Ρ…ΠΎΡ€ΠΎΡˆΠΎ извСстны. Π― ΠΏΠΎΠ΄ΠΎΠ·Ρ€Π΅Π²Π°ΡŽ, Ρ‡Ρ‚ΠΎ Go ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ внСдряСт свои собствСнныС Rails ΠΈΠ»ΠΈ Django ΠΈΠ·-Π·Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ систСмы Ρ‚ΠΈΠΏΠΎΠ². К Ρ‚Π°ΠΊΠΎΠΌΡƒ Π²Ρ‹Π²ΠΎΠ΄Ρƒ я ΠΏΡ€ΠΈΡˆΠ΅Π» послС экспСримСнтов с созданиСм достойной ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π·Π°Π΄ΠΎΠ»Π³ΠΎ Π΄ΠΎ появлСния Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΎΠ², Ρ‡Ρ‚ΠΎ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ сводит Π½Π° Π½Π΅Ρ‚ прСимущСства использования Go Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

Из своСго ΠΎΠΏΡ‹Ρ‚Π° скаТу Ρ‚Π°ΠΊ, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ всСгда для своих Π·Π°Π΄Π°Ρ‡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ стандартный HTTP-сСрвСр + ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ кастомныС Ρ€ΠΎΡƒΡ‚ΠΈΠ½Π³ Π² Go. Если ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ — Π²ΠΏΠ΅Ρ€Π΅Π΄ Π² pprof. Для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² с малСнькой Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ с Π³ΠΎΠ»ΠΎΠ²ΠΎΠΉ ΠΈ Flask + Gunicorn.

Для ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Ρ‚ΡƒΡ‚ Ρ‚ΠΎΠΆΠ΅ всС Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ ΠΈ сразу Π±Ρ€ΠΎΡΠ°Ρ‚ΡŒΡΡ Π² ΠΏΠΎΠ»Π½Ρ‹ΠΉ кастом Π±Π΅Π· Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² опасно — вСдь ΠΏΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ «Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ…» спСциалистов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сразу смогут условно ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ Π½Π° 2ΠΎΠΉ дСнь Ρ€Π°Π±ΠΎΡ‚Ρ‹.

НСобходимо Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΈ ΠΎ DevOps ΠΈ ΠΎ финансовом обосновании Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ сСрвиса. Π£Π²Ρ‹, «ΡΠ΅Ρ€Π΅Π±Ρ€ΡΠ½Π½ΠΎΠΉ ΠΏΡƒΠ»ΠΈ» ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅Ρ‚Ρƒ ΠΈ Π½Π°Π΄ΠΎ всС Π²Π·Π²Π΅ΡˆΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠΈΡ€Π°ΡΡΡŒ Π½Π° многочислСнныС Ρ„Π°ΠΊΡ‚ΠΎΡ€Ρ‹… И Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Π²Ρ‡Π΅Ρ€Π° Π±Ρ‹Π»ΠΎ Π²Ρ‹Π³ΠΎΠ΄Π½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ всС Π½Π° Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°,Π° сСгодня ΡƒΠΆΠ΅ Π½Π΅Ρ‚ ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.

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

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

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

Π’ΠΎΠΏ-5 Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Π½Π° Golang ΠΏΠΎ популярности (ΠΏΠΎ количСству Π·Π²Π΅Π·Π΄ Π½Π° GitHub) пСрСчислСны ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: 0021

Π’ΠΈΠ»ΠΊΠΈ

ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ выпуски

Π΄ΠΆΠΈΠ½

7

4 ΠΊ

4,6ΠΊ

238

beego

24,5ΠΊ

20

0,49ΠΊ 900 0002 746

эхо

17,7k

1,6k

37

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

17,5 тыс.

быстрыйhttp

13k

1.1k

34

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° простоту ΠΈΡ… использования Π² дСталях ΠΈ сравним эти Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ.

1. Π”ΠΆΠΈΠ½

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ 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 2023 Π³ΠΎΠ΄Π°

ΠšΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€:

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ Golang ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ ΠΆΠ΅ ΠΏΠΎΡ…Π²Π°Π»Ρ‹ ΠΎΡ‚ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅Π² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ², ΠΊΠ°ΠΊ ΠΈ Golang. Глядя Π½Π° это, ряд Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² заняли сСбС мСсто Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅. Π˜Ρ‚Π°ΠΊ, Π² этом сообщСнии Π±Π»ΠΎΠ³Π° ΠΌΡ‹ рассмотрСли 19 Π»ΡƒΡ‡ΡˆΠΈΡ… Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Golang 2023, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ Golang?

Golang Web Frameworks позволяСт Π²Π°ΠΌ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈ Π»Π΅Π³ΠΊΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ API ΠΈ Π²Π΅Π±-сСрвисы. Говоря ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°Ρ…, ΠΎΠ½ΠΈ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΏΡ€ΠΈ рассмотрСнии простого прилоТСния, Π½ΠΎ становятся Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ ΠΏΡ€ΠΈ рассмотрСнии Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… слоТных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, это Π±Ρ‹Π»ΠΎ Π½Π΅ Ρ‚Π°ΠΊ Π΄Π°Π²Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° традиционная Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π±Ρ‹Π»Π° Π² Ρ‚Π΅ΠΌΠΏΠ΅, Π½ΠΎ использованиС Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² испытало Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ рост Π² слоях. ВслСд Π·Π° Ρ‚Π΅ΠΌ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Ρ‹ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΠ»ΠΈ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Π΅ усилия для внСдрСния Π½ΠΎΠ²Ρ‹Ρ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² с СдинствСнной Ρ†Π΅Π»ΡŒΡŽ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Π»ΡƒΡ‡ΡˆΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ.

ΠŸΠ»ΡŽΡΡ‹ Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Golang

Π•ΡΡ‚ΡŒ нСсколько ΠΏΡ€ΠΈΡ‡ΠΈΠ½, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π²Π΅Π±-сайтов Golang ΠΏΠΎΠ»Π΅Π·Π½Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π°ΡˆΠΈΡ… Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² 2023 Π³ΠΎΠ΄Ρƒ. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ…:

  • Π‘ΠΎΠ»Π΅Π΅ высокая ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ
  • Π‘Π±ΠΎΡ€ мусора
  • ΠžΠ±ΡˆΠΈΡ€Π½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΈΠ»ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹
  • БтатичСская типизация
  • ЧастоС Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅
  • ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ синтаксис
  • Π’ΠΈΠΏΡ‹ интСрфСйсов
  • Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° тСстирования

Π»ΡƒΡ‡ΡˆΠΈΡ… Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Golang Π² 2023 Π³ΠΎΠ΄Ρƒ

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

Gin/Gin-Gonic

Gin β€” ΠΎΠ΄Π½Π° ΠΈΠ· Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ Golang Π² 2023 Π³ΠΎΠ΄Ρƒ, идСально подходящая для создания ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Ρ… ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Он прСдставляСт собой API, ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ Π½Π° Martini, Π½ΠΎ обСспСчиваСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π΄ΠΎ 40 Ρ€Π°Π· Π²Ρ‹ΡˆΠ΅, Ρ‡Π΅ΠΌ Ρƒ Martini. Π­Ρ‚ΠΎ позволяСт ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Π΅ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Π²Π΅Π±-прилоТСния. Бинтаксис Gin ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π΅Π½ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΡƒ Django (извСстной CMS Π½Π° основС Python). Он ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π»Π΅Π³ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Python, сколько Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π½Π° Golang Π±Π΅Π· особых усилий. Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ прСимущСством Gin являСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования ΠΊΠΎΠ΄Π°. НСсмотря Π½Π° всС эти многочислСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Ρƒ Π”ΠΆΠΈΠ½Π° Π½Π΅Ρ‚ минусов. Но Π΅Π³ΠΎ Π³Π»Π°Π²Π½Ρ‹ΠΉ нСдостаток Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

GitHub: 64,6 тыс. Π·Π²Π΅Π·Π΄

Beego

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

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Golang REST API, Beego, Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π΅ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ тСстирования ΠΈ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ½ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ встроСнными модулями, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° контСкста ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ORM, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ ΠΏΡ€ΠΎΡ‡Π½ΡƒΡŽ основу для прилоТСния.

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

GitHub: 29,1 тыс. Π·Π²Π΅Π·Π΄

Echo

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

GitHub: 24,3 тыс. Π·Π²Π΅Π·Π΄

Kit

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

Π₯отя Go являСтся языком ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния, микросСрвисы ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ. ΠšΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ фактичСски обСспСчиваСт Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ RPC ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€, ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ с инфраструктурой ΠΈ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΠΎΡΡ‚ΡŒ систСмы. Он Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ для взаимодСйствия, ΠΈ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Ρ‹ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² идСальном для Π½ΠΈΡ… смыслС. НСдостаток использования go-kit Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ Π·Π΄ΠΎΡ€ΠΎΠ²Π΅Π½Π½Ρ‹ΠΉ интСрфСйс ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Π° Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы Π½Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ API ΠΊ слуТбС высоки.

GitHub: 24,2 тыс. Π·Π²Π΅Π·Π΄

Fiber

Fiber β€” это Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Go, ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ Π½Π° Express.js. Fiber ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠ°ΠΊ Π½ΠΈΠ·ΠΊΠΎΠ΅ использованиС памяти, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΡƒΡŽ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ. Fiber построСн Π½Π° основС HTTP-Π΄Π²ΠΈΠΆΠΊΠ° Fasthttp для Go ΠΈ, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· самых быстрых Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Go.

ОсновноС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ удСляСтся ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΠ·ΠΌΡƒ ΠΈ философии Unix, прСдлагая простыС ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ. Fiber Π½Π°ΠΌΠ΅Ρ€Π΅Π½ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΌ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π°ΠΌ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² быстро ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π²Π΅Π±-прилоТСния. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Fiber Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ встроСнный ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒ скорости, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅.

Π•Π³ΠΎ статичСскиС Ρ„Π°ΠΉΠ»Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ стилСй, сцСнарии ΠΈ изобраТСния, ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΈ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ сСрвСром, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΈΡ… ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ мСньшСго объСма памяти ΠΈ сохранСниС статичСского содСрТимого ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ запросС. А Π΅Π³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π΄Π²ΡƒΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… TCP-соСдинСний WebSocket ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ систСма Ρ‡Π°Ρ‚Π°.

Как ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ Go, ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ шаблонов Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΌΠ°Π»ΠΎ памяти ΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ ΠΌΠ°Π»ΠΎ мСста, Π° Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСт ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ, которая проста ΠΈ понятна для Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

GitHub: 23.5k

Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Golang Framework Π΅ΡΡ‚ΡŒ ниша, ΠΊΠ°ΠΊ ΠΈ Ρƒ вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.
ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ экспСртам ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ Golang Framework Π»ΡƒΡ‡ΡˆΠ΅ всСго соотвСтствуСт потрСбностям вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. НаймитС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Golang сСгодня!

Iris

Π­Ρ‚ΠΎ быстрый, простой ΠΈ Π»Π΅Π³ΠΊΠΈΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Golang для Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅Π² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ², Π·Π½Π°ΠΊΠΎΠΌΡ‹Ρ… с Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ Node.js. Он ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ сСансы, Π²Π΅Π±-сокСты управлСния вСрсиями API, Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ зависимостСй, Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ MVC ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Π˜Ρ€ΠΈΡ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ мноТСством Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ паспорт, экспрСсс-сСссия, Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ Ρ‚Π΅Π»Π°, ΠœΠΎΡ€Π³Π°Π½ ΠΈ Ρ‚. Π΄.

Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ прСимущСством Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Go являСтся простота Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Π°ΡˆΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ позволяСт Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π°ΠΌ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² эффСктивно ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сторонниС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² свои ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π½Π΅Ρ‚ нСобходимости Π² ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ внСшнСй Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ для рСгистрации Π²Π°ΡˆΠΈΡ… запросов.

Как ΠΈ Beego, Iris Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ MVC для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π•Π³ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ вСрсиями API ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΉ, помСщая ΠΈΡ… Π² Π½ΠΎΠ²Ρ‹Π΅ вСрсии ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠ². Π˜Π½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΈ быстроС сТатиС Iris обСспСчиваСт Π±ΠΎΠ»Π΅Π΅ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π° тСстированиС упрощаСтся благодаря ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ NGROK, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²Π΅Π±-сСрвСр для тСстирования.

GitHub: 23,3 тыс. Π·Π²Π΅Π·Π΄

Go-zero

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

Go-zero ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ простым синтаксисом описания API ΠΈ инструмСнтом Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«goctlΒ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Dart, Go, Kotlin, TypeScript, iOS, Android ΠΈ JavaScript ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ² .api с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ goctl. Он ΠΈΠΌΠ΅Π΅Ρ‚ встроСнный ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°, ограничСния скорости, Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½Ρ‹Π΅ автоматичСскиС Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΠΈ, Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½ΠΎΠ΅ сброс Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ элСмСнты управлСния Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ настройки. Одна ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСсколько Ρ€Π°Π·Π½Ρ‹Ρ… языков, Π° синтаксис API прост. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ запроса ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² автоматичСски ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ΡΡ.

GitHub: 21,7 тыс. Π·Π²Π΅Π·Π΄

Kratos

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

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

GitHub: 19,4 тыс. Π·Π²Π΅Π·Π΄

Fast HTTP

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

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

GitHub: 18,7 тыс. Π·Π²Π΅Π·Π΄

Gorilla

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

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

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌΠΈ функциями ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚. МоТно ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ прямо ΠΈΠ· встроСнной ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π² Π²Π΅Π±-сокСты. Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΈΠΌΠ΅Π΅Ρ‚ большиС пСрспСктивы, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΉΡ‚ΠΈ Π·Π° Ρ€Π°ΠΌΠΊΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… запросов.

GitHub: 18,5 тыс. Π·Π²Π΅Π·Π΄

Mux ΠΈΠ»ΠΈ HttpRouter

HttpRouter ΠΈΠ»ΠΈ Mux ΠΈΠ»ΠΈ Multiplexer β€” это Π»Π΅Π³ΠΊΠΈΠΉ, Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€ HTTP-запросов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΈ согласовываСт ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² шаблонС ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ сопоставляСт сСбя с запросом вмСсто стандартного ΠΏΠ°ΠΊΠ΅Ρ‚Π° Mux of Go net/http, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ Π»ΡƒΡ‡ΡˆΠ΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ.

Mux β€” это Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ объСмом памяти, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΅Π΅ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ являСтся Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°. Π”Π°ΠΆΠ΅ ΠΏΡ€ΠΈ Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… путях ΠΈ многочислСнных ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°Ρ… ΠΎΠ½ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ. Для эффСктивного сопоставлСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΠΆΠΈΠΌΠ°ΡŽΡ‰Π°Ρ динамичСская структура trie (Π΄Π΅Ρ€Π΅Π²ΠΎ счислСния).

Он Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠΌΠΈ функциями, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ явныС совпадСния, автокоррСкция ΠΏΡƒΡ‚ΠΈ, ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π² API-интСрфСйсС шаблона ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΡ… косых Ρ‡Π΅Ρ€Ρ‚ ΠΈ Π½ΡƒΠ»Π΅Π²ΠΎΠΉ мусор.

GitHub: 14,7 тыс. Π·Π²Π΅Π·Π΄

Revel

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

Revel Π½Π΅ нуТдаСтся Π²ΠΎ внСшнСм Π²ΠΈΠ΄Π΅ для выполнСния ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π² ΠΏΠΎ настройкС ΠΈ настройкС. Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ отличаСтся ΠΎΡ‚ всСх Π΄Ρ€ΡƒΠ³ΠΈΡ… языковых Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Go ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ самодостаточно. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Revel ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ свободСн ΠΎΡ‚ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ ПО ΠΈ сторонних ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ². Revel Ρ‚Π°ΠΊΠΆΠ΅ являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π»ΡƒΡ‡ΡˆΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Golang. Π­Ρ‚ΠΎ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для создания API нСзависимо ΠΎΡ‚ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠ³Ρ€Π°Π½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡.

GitHub: 12,8 тыс. Π·Π²Π΅Π·Π΄

ΠœΠ°Ρ€Ρ‚ΠΈΠ½ΠΈ

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

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

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

ΠœΠ°Ρ€Ρ‚ΠΈΠ½ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Ρ‡Π΅Π³ΠΎ Π΄Π°Π΅Ρ‚. Π­Ρ‚ΠΎ идСальная структура прилоТСния для Π²Π΅Π±-сайта Golang срСди ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… сообщСств. ΠžΡ‚ΠΊΡ€ΠΎΠ²Π΅Π½Π½ΠΎ говоря, сообщСство нСбольшоС, Π½ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅. БообщСство Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠΊΠΎΠ»ΠΎ Π΄Π²Π°Π΄Ρ†Π°Ρ‚ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ².

GitHub: 11,5 тыс. Π·Π²Π΅Π·Π΄

Buffalo

На самом Π΄Π΅Π»Π΅ это ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²Π΅Π΄ΡƒΡ‰ΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² golang, извСстный своСй простотой ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ. Π­Ρ‚ΠΎ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π°Ρ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° со всСми Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ функциями Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ большоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² долгосрочной пСрспСктивС ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ особСнности Buffalo Π΄Π΅Π»Π°ΡŽΡ‚ Π΅Π³ΠΎ идСальной основой для Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅Π² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ². Π­Ρ‚ΠΎ позволяСт Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π°ΠΌ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π²Π΅Π±-прилоТСния быстрСС ΠΈ эффСктивнСС. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ горячСй ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ автоматичСски ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‚ Ρ„Π°ΠΉΠ»Ρ‹ .html, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ .go для пСрСстроСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, это позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния Π² свои Π²Π΅Π±-прилоТСния Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Он Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΡƒΡΠΊΠΎΡ€Π΅Π½Π½ΡƒΡŽ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ позволяСт Π΅ΠΌΡƒ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ сообщСство Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Buffalo Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ интСгрированная экосистСма Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, которая Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Π° для мноТСства ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². Buffalo часто считаСтся Π»ΡƒΡ‡ΡˆΠΈΠΌ бэкСнд-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½Ρ‹ΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ для Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Github: 7,3 тыс. Π·Π²Π΅Π·Π΄

Gocraft

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

GitHub: 2k Stars

Goji

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

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

GitHub: 918 Stars

Web.go

Webgo ΠΈΠ»ΠΈ Web.go β€” Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ минималистичный Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ golang. Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ самым простым Google ΠΈ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π»ΡƒΡ‡ΡˆΠΈΡ… Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Golang. Он прост Π² использовании ΠΈ прСдставляСт собой Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½ΡƒΡŽ систСму ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅Π² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ². Если, Π±ΡƒΠ΄ΡƒΡ‡ΠΈ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅ΠΌ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, Π²Ρ‹ ΠΈΡ‰Π΅Ρ‚Π΅ Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Golang, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ вашСго мобильного Π²Π΅Π±-прилоТСния, Ρ‚ΠΎΠ³Π΄Π° Web.go ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ.

GitHub: 261 Stars

Mango

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

Mango Π±Π΅Ρ€Π΅Ρ‚ список ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, написанных Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ стилС, сохраняСт всС самодостаточным ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡ… Π² Π΅Π΄ΠΈΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ HTTP-сСрвСра. Mango стрСмится ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΡ€Π°Π·ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ HTTP с максимальной ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ, примСняя простой ΠΈ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ API для Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ², ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² этой срСдС, Ρ€Π°ΡΡˆΠΈΡ€ΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ элСмСнты ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ mango Π°ΠΊΡ‚ΡƒΠ°Π»Π΅Π½ для всСх ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

GitHub: 105 Π·Π²Π΅Π·Π΄

Net/HTTP

Если Π²Ρ‹ Π²Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Π² число Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ списки рассылки Go, Ρ‚ΠΎ Net/HTTP β€” это подходящая ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° для вас. Π’Π»Π°Π΄Π΅Π»ΡŒΡ†Ρ‹ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ вСсь свой XMPP-сСрвСр с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ HTTP ΠΈΠ»ΠΈ сСти, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π°ΠΆΠ΅ послС этого Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Однако ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ слоТныС Π²Π΅Π±-прилоТСния Π½ΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ обСспСчСнии.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, нСсколько ΠΎΠΏΡ†ΠΈΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Π°ΠΌ ΡΠΌΠ΅ΡˆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ΅ ПО ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Go, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… стандартный HTTP ΠΈΠ»ΠΈ net. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ интСрфСйс, ΠΈ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ стандартный способ максимизации ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. ΠœΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡ Π½Π΅ такая мощная, поэтому Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ вмСстС с Π½Π΅ΠΉ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π˜Ρ‚Π°ΠΊ, это Π»ΡƒΡ‡ΡˆΠΈΠ΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ Golang, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ наши экспСрты ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ Π² процСссС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π½ΠΎ это Π½Π΅ Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ ΠΏΠΎ Top Golang Framework. Π•ΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ Golang, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΏΠΎΡΠΎΠ±ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ успСху вашСго Π²Π΅Π±-прилоТСния. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Golang Π² своих Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΈ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ достаточно Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ³Π°Ρ‚ΡŒ своС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ быстрСС ΠΈ Π»ΡƒΡ‡ΡˆΠ΅.

Если Π²Ρ‹ ΡΠ²Π»ΡΠ΅Ρ‚Π΅ΡΡŒ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅ΠΌ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΈ всС Π΅Ρ‰Π΅ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· Π»ΡƒΡ‡ΡˆΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Golang Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π² соотвСтствии с трСбованиями вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΡΠ²ΡΠΆΠΈΡ‚Π΅ΡΡŒ с ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ Golang, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Bacancy, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΎΠΏΡ‹Ρ‚, ΠΈ Π½Π°ΠΉΠΌΠΈΡ‚Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Golang, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚.

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