Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° / Π₯Π°Π±Ρ
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ΠΊ
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, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡ.