Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° / Π₯Π°Π±Ρ
Golang ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΡΡ, Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π½ΠΈΠΌ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ ΠΈ Π²ΡΡ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ·ΡΠΊΠ°. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ΄Π΅Π»Π°Π΅ΠΌ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΎΠ±Π·ΠΎΡ ΡΠ΅Ρ , ΡΡΠΎ ΡΠ²ΡΠ·Π°Π½Ρ Ρ HTTP-Π±ΡΠΊΠ΅Π½Π΄ΠΎΠΌ.
BeegoΒ
ΠΡΠ»ΠΈ Π½ΡΠΆΠ΅Π½ Π±ΡΡΡΡΡΠΉ Π·Π°ΠΏΡΡΠΊ API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² REST, Π²Π΅Π±- ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Go, ΡΠΎ Π»ΡΡΡΠ΅Π³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ° Π½Π΅ Π½Π°ΠΉΡΠΈ. Golang-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π·Π°ΡΠ°ΡΡΡΡ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ Beego Ρ Django Π² Python. ΠΠΎΡΡΠΎΠΈΠ½ΡΡΠ²ΠΎ Beego β ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ. ΠΡΠΎ, ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Model-View-Controller, ΠΏΡΠΈΡΡΠΌ Ρ Π½Π΅Π³ΠΎ Π΅ΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Bee, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°.Β
Beego ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π²ΠΎΡΡΠΌΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ
ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, Π»ΠΈΠ±ΠΎΒ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΊΠ°ΡΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΡ
ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ ORM-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΅Π°Π½ΡΠΎΠ² ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ.
Π’Π°ΠΊΠΆΠ΅ Beego ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΊΡΡΠ° ΠΈ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ HTTP. Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΒ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ β ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΠΊΠ°ΠΊ Django.
ΠΡΠ°Π²Π΄Π°, Π΅ΡΡΡ ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ. ΠΠ·-Π·Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±Π½ΠΎΡΡΠΈ Beego, Π½ΠΎΠ²ΠΈΡΠΊΡ Π±ΡΠ΄Π΅Ρ Π½Π΅Π»Π΅Π³ΠΊΠΎ Π΅Π³ΠΎ ΠΎΡΠ²ΠΎΠΈΡΡ, ΡΠ°ΠΊ ΡΡΠΎ ΡΡΠΎ, ΡΠΊΠΎΡΠ΅Π΅, ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΎΠΏΡΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°.
KitΒ
ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ Π² Π»ΡΠ±ΠΎΠΌ ΠΌΠ°ΡΡΡΠ°Π±Π΅. ΠΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡ ΡΠ°ΡΡΠΎ ΡΡΠ΅Π±ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΡ Kit Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ.
Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ RPC, Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ. Π Π΅Π³ΠΎ ΡΠΎΡΡΠ°Π² Π²Ρ ΠΎΠ΄ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»ΡΠΆΠ°Ρ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΡΠ°Π±Π½ΡΡ ΡΠ΅ΡΠ²ΠΈΡ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ (SOA), ΡΡΠΎ ΠΎΠ±Π»Π΅Π³ΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ.
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π²ΡΠ±ΠΈΡΠ°ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ β Kit Ρ Π²ΡΡΠΎΠΊΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΡΡ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ΄ΠΎΠΉΠ΄ΡΡ Π΄Π»Ρ Π²ΡΠ΅Π³ΠΎ.
Kit ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ°ΠΊΠΈΠ΅ ΡΠ»ΠΎΠΈ ΠΊΠ°ΠΊ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ, ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠ°, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Π½Π° ΠΏΡΠΎΠ΄Π΅. ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ SOLID, ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π° ΠΈ Π³Π΅ΠΊΡΠ°Π³ΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ.
EchoΒ
ΠΠ±Π»Π΅Π³ΡΡΠ½Π½ΡΠΉ, Π³ΠΈΠ±ΠΊΠΈΠΉ ΠΈ ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΡΠΉ Π²Π΅Π±-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ. ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½Π°Π΄ΡΠΆΠ½ΡΠ΅ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΠ΅ RESTful API, ΠΈΠΌΠ΅Π΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ΅ ΠΠ ΠΈ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠ²ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅.Β
Π ΡΠΈΡΠ»Π΅ ΡΠΈΡΠ΅ΠΉ Echo ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ HTTP-ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π·ΡΠΌΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΡ ΠΌΠ°ΡΡΡΡΡΠΎΠ², ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ HTTP ΠΈ API Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ HTTP-ΠΎΡΠ²Π΅ΡΠΎΠ². Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ HTTP/2 Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΎΠΏΡΡΠ°.
FiberΒ
ΠΡΠΎΡΡΠΎΠΉ Π½ΠΎ ΠΌΠΎΡΠ½ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ Π½Π° Π±Π°Π·Π΅ Fasthttp β ΡΠ°ΠΌΠΎΠ³ΠΎ Π±ΡΡΡΡΠΎΠ³ΠΎ HTTP-Π΄Π²ΠΈΠΆΠΊΠ° Π΄Π»Ρ Go. Fiber ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Π΄Π»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Ρ Π½ΡΠ»Π΅Π²ΡΠΌ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠ»ΡΡ ΠΊΠΎ Π²ΡΠ΅ΠΌΡ, ΡΡΠΎΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π΅ΡΡ ΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ΅Π½, ΠΎΠ½ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Ρ Martini. Fiber ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΡ ΠΏΡΠΈ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠΈ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΡ
ΡΠ°ΡΡ
ΠΎΠ΄ΠΎΠ².
ΠΠΎ ΠΎΡΠ·ΡΠ²Π°ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΎΠ½ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ Express.js, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡ ΠΎΡΠ»ΠΈΡΠ½ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ, ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ REST API, Π΄Π²ΠΈΠΆΠΎΠΊ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π³ΠΈΠ±ΠΊΠΎΠ³ΠΎ ΠΌΠ΅ΠΆΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΠ.
FasthttpΒ
Fasthttp ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π±ΡΡΡΡΡΠΉ HTTP-ΡΠ΅ΡΠ²Π΅Ρ ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ API. ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ 100 000 Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ ΠΈ ΡΠ²ΡΡΠ΅ 1 ΠΌΠ»Π½ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡΠΊΡΡΡΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ. Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΡΠ°ΡΡΡΠΈΡΠ°Π½ Π½Π° ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½ΠΈΠ·ΠΊΠΎΠ΅ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΡΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· RequestCtx.Hijack.
Π Π°Π·ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Fasthttp Π΄Π»Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ-ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ Π»ΠΈΠ±ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΡ Ρ Π½ΡΠ»Ρ. ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ Π°Π΄ΡΠ΅Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΎΡ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π·Π°ΠΏΡΠΎΡΠ° ΠΈ Ρ. ΠΏ.
Π‘ΡΠΎΠΈΡ Π·Π½Π°ΡΡ, ΡΡΠΎ Fasthttp Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ net/http.
GorillaΒ Β
Gorilla ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π±Π΅Π·ΡΠΏΡΠ΅ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ HTTP-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΡ Π³Π»Π°Π²Π½ΡΠ΅ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π° Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½Π° ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΡΡΡ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ. Π ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Β«Π·Π°ΡΠΎΡΠ΅Π½ΠΈΡΒ» ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΠΎΠΌ Π² ΡΠ»ΡΡΠ°Π΅ Gorilla Π½Π΅Ρ β Π²ΡΡ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΎ.
ΠΠ°ΠΊΠ΅Ρ Gorilla WebSocket ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΎΠ»Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° WebSocket. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΏΡΠΎΡΡΠΎΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌ Ρ ΡΡΠΎΠ³ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Π΅ΡΡΡ Π²ΡΠ΅ ΡΠ°Π½ΡΡ ΡΡΠ°ΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π°ΠΌΠ΅ΡΠ½ΡΡ Π΄Π»Ρ Golang.
Π’Π΅ΠΌΠ° ΡΡΠ΅ΠΉΠ²ΠΎΡΠΊΠΎΠ² Π² Golang Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½Π°Ρ. ΠΠ΄ΠΈΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠΌΡΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ° ΠΏΠΎΠΊΠ° Π½Π΅Ρ, ΡΠ²Π½ΠΎΠ³ΠΎ Π»ΠΈΠ΄Π΅ΡΠ° ΡΡΠ΅Π΄ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² β ΡΠΎΠΆΠ΅. ΠΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠ»ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²Π°ΡΠΈΠ°Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΌΠΎΡΡ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ. Π Π°ΡΡΠΊΠ°ΠΆΠΈΡΠ΅, Π° ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π²Ρ?
Π’ΠΎΠΏ 5 ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² Golang Π² 2021
Π‘ΡΠ°Π·Ρ ΠΎΠ³ΠΎΠ²ΠΎΡΡΡΡ ΡΡΠΎ ΠΌΠΎΡ ΠΎΡΠ΅Π½ΠΊΠ° ΠΈ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ Π²Π°ΡΠ΅ΠΉ π
ΠΠΎΡΠΎΡΠΊΠΎ ΠΎ ΡΠ°ΠΌΠΎΠΌ ΡΠ·ΡΠΊΠ΅
GolangΒ (ΠΈΠ»ΠΈ Go) β ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ, ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ. Β ΠΠ½ Π±ΡΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Google Π² 2007 Π³ΠΎΠ΄Ρ ΠΈ Π±ΡΠ» Π»Π΅Π³ΠΊΠΎ ΠΏΡΠΈΠ½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΠΈΡΡ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ²ΠΎΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡΠΌ, ΡΠ°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ, ΡΡΡΡΠΊΡΡΡΠ½Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ, ΡΠ±ΠΎΡΠΊΠ° ΠΌΡΡΠΎΡΠ° ΠΈ ΡΡ
ΠΎΠ΄ΡΡΠ²ΠΎ Ρ ΡΠ·ΡΠΊΠΎΠΌ C.Β
ΠΠ΅Π±-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ Golang ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ (API) ΠΈ Π²Π΅Π±-ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΡΡΠ°Π·Ρ.Β ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ Π½Π΅ Π½ΡΠΆΠ½Ρ, Π½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ.Β ΠΠ°ΠΆΠ΅ Π·Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π·Π½Π°Π½ΠΈΡ, ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ.Β ΠΠΎ ΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ.Β Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΡΡΠ»ΡΠ³ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΎΡΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΠ²ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅, Π° Π½Π΅ ΠΏΠΈΡΠ°ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ.
1. Gin
Gin ΡΠ°ΠΌΠΊΠ° Π²ΠΎΠ·Π³Π»Π°Π²Π»ΡΠ΅Ρ ΡΠΏΠΈΡΠΎΠΊ Ρ ΡΠΎΡΠΊΠΎΠΉ Π·ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ²ΠΎΠΈΠΌ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡΡΠΊΠΈΠΌ ΡΠ°ΠΌΠΊΠ°ΠΌ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. Β ΠΠ½ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ REST API Π΄Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ Ρ
ΠΎΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΠ΄Π½ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΡΡΠ΅Π΄Ρ.Β ΠΡΠ° ΡΡΡΡΠΊΡΡΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ HTTP-ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΎΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΡΠ°ΡΠΈΠΊΠ° Golang ΠΈ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π±ΠΎΠ³Π°ΡΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π½Π° GitHub.Β ΠΠ½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠ΅ΠΉ ΡΡΠ΅Π΄ΠΎΠΉ Golang Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΡ
API REST.Β
ΠΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π΄ΠΆΠΈΠ½Π° ΡΠΎΠ·Π΄Π°Π»ΠΎ ΠΎΠ±ΡΠΈΡΠ½ΠΎΠ΅, Ρ ΠΎΡΠΎΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄Π΅Π»Π°Π΅Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π΄ΠΆΠΈΠ½ΠΎΠΌ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½Π΅Π΅.Β
Π‘Π°ΠΌΡΠΉ Π±ΠΎΠ»ΡΡΠΎΠΉ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ: Ρ ΠΎΡΡ ΠΎΠ½ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΎΠ½ Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π±ΠΎΠ»ΡΡΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ.Β
2.Β Beego
BeegoΒ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° API βΒ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² REST, Π²Π΅Π± βΒ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Golang. Β ΠΠ³ΠΎ ΡΠ°ΡΡΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ Π²Π΅Π±-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΡ Django Π² Python ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Golang, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΈ Π²ΡΡΡΠ°ΠΈΠ²Π°Π½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡ.Β ΠΠ΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ
ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ.Β ΠΡΠΎ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Model-View-Controller (MVC) ΡΠΎ ΡΠ²ΠΎΠΈΠΌΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ ΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°, ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΠΊΠ°ΠΊΒ Bee ToolΒ .Β
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠ½ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ Π½Π° Π²ΠΎΡΠ΅ΠΌΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ.Β ΠΠ½ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΠΊΠ°ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ (ORM), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΅Π°Π½ΡΠΎΠ² ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ.Β ΠΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ, ΠΎΠ½ ΡΠ°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΊΠ΅ΡΠ° ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ HTTP.Β ΠΡΠ΅ ΠΎΠ΄Π½Π° Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½Π° Ρ ΠΎΡΠΎΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΡΠΎΠΌΡ, ΠΊΠ°ΠΊ Django ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ.
ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ beego Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΈΠ·-Π·Π° Π΅Π³ΠΎ Π²ΡΡΠΎΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΎΠ±ΡΠΈΡΠ½ΡΡ
Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΎΠ½ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ².
3.
EchoΒ
EchoΒ Β ΡΡΡΡΠΊΡΡΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅ΡΠ΅ Π²ΡΡΠΎΠΊΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ, ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΡΠΉ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡΡΠΊΠΈΠΌ Π²Π΅Π± βΒ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π² Golang.Β ΠΠ½ ΠΈΠΌΠ΅Π΅Ρ Ρ ΠΎΡΠΎΡΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ HTTP-ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΎΡ Ρ Π½ΡΠ»Π΅Π²ΡΠΌ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π·ΡΠΌΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΡ ΠΌΠ°ΡΡΡΡΡΠΎΠ².Β ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π°Π΄Π΅ΠΆΠ½ΡΡ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΡ API REST, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π² Π³ΡΡΠΏΠΏΡ.Β ΠΠ½ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ TLS ΠΎΡΒ Letβs EncryptΒ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ HTTP/2, ΡΡΠΎ ΠΏΠΎΠ²ΡΡΠ°Π΅Ρ ΡΠΊΠΎΡΠΎΡΡΡ ΠΈ ΡΠ»ΡΡΡΠ°Π΅Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ.Β ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π΄Π°ΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΊΠΎΡΠ½Ρ, Π³ΡΡΠΏΠΏΡ ΠΈΠ»ΠΈ ΠΌΠ°ΡΡΡΡΡΠ°.
ΠΠ½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΡ Π΄Π°Π½Π½ΡΡ
Π΄Π»Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΈ HTTP-Π·Π°ΠΏΡΠΎΡΠ°, Π²ΠΊΠ»ΡΡΠ°Ρ JSON, XML ΠΈΠ»ΠΈ Π΄Π°Π½Π½ΡΠ΅ ΡΠΎΡΠΌΡ.Β ΠΠ»Ρ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° Π΄Π°Π½Π½ΡΡ
ΠΎΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ API Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
HTTP-ΠΎΡΠ²Π΅ΡΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ JSON, XML, HTML, ΡΠ°ΠΉΠ» ΠΈ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΡ. Β Π¨Π°Π±Π»ΠΎΠ½Ρ ΠΌΠΎΠ³ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ° ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΈ ΠΈΠΌΠ΅ΡΡ Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΎΡΠΈΠ±ΠΎΠΊ HTTP.Β
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° echo ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ, Π° ΠΊΠΎΠ΄ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΡΠ°ΡΡΠΎ.
4.Β
Kit
Kit ΡΠ°ΠΌΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ, Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ ΠΈ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ microservices Π² Golang.Β ΠΡΠΎ Π½Π°Π±ΠΎΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡΠΉ, Π½Π°Π΄Π΅ΠΆΠ½ΡΠΉ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΉ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°.Β Go β ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΡΠ·ΡΠΊ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π½ΠΎ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡ ΡΡΠ΅Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡ (RPC), Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ.Β ΠΠ½ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΠ²ΡΠ·Π°Π½Π½ΡΡ
ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΌΠ΅ΡΡΠ΅ ΠΎΠ±ΡΠ°Π·ΡΡΡ ΡΠ°ΠΌΠΎΡΠ²Π΅ΡΠ΅Π½Π½ΡΡ ΡΡΡΡΠΊΡΡΡΡ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠΈΡ
ΡΠ΅ΡΠ²ΠΈΡ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡ (SOA) ΠΈ Π΄Π΅Π»Π°ΡΡ Golang ΠΏΠ΅ΡΠ²ΠΎΠΊΠ»Π°ΡΡΠ½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Π² Π»ΡΠ±ΠΎΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ. Β ΠΠ½ Π±ΡΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π²ΡΠ±ΠΈΡΠ°ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΈ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡ Π΄Π»Ρ Π½ΠΈΡ
.
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ go-kit ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΈΠ·-Π·Π° ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ Π½Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ API Π² ΡΠ»ΡΠΆΠ±Ρ ΠΎΡΠ΅Π½Ρ Π²ΡΡΠΎΠΊΠΈ.
5.Β
Fasthttp
FasthttpΒ ΡΡΡΡΠΊΡΡΡΠ° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π±ΡΡΡΡΡΠΉ HTTP βΒ ΡΠ΅ΡΠ²Π΅Ρ ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ API,Β ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΡΠ΄Π΅Π»Π°Π½ Π²Β ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ ΡΠ΅ΡΠΈ / HTTP ΠΈΠ· βΒ Π·Π° Π΅Π΅ ΠΏΡΠ΅Π΄Π΅Π»Ρ Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ.Β ΠΠ½ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ ΠΏΠΎ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π»Π΅Π³ΠΊΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ 100 ΡΡΡ. ΠΠ°ΠΏΡΠΎΡΠΎΠ² Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ ΠΈ Π±ΠΎΠ»Π΅Π΅ 1 ΠΌΠ»Π½ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Π½Π° ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ.Β ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ Π΄Π»Ρ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΡΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π·Β RequestCtx.HijackΒ .Β
Fasthttp API ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ
ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ
ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ
ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ ΠΈΠ»ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ
ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ
ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ
ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ Ρ Π½ΡΠ»Ρ. Β ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Π°Π΄ΡΠ΅Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΎΡ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π·Π°ΠΏΡΠΎΡΠ° ΠΈ Ρ. Π.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ net/http ΠΈΠΌΠ΅Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠΎΠΊΡΡ Π°ΡΠ΄ΠΈΡΠΎΡΠΈΡ, ΠΎΠ½ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ΅Π½ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½.Β ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ net/http ΠΈ fasthttp Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΡΠ°ΡΡΠΎ Π±ΡΠ²Π°Π΅Ρ ΡΡΡΠ΄Π½ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Ρ net/http Π½Π° fasthttp.
ΠΡΠΎ 5 ΡΠ°ΠΌΡΡ
ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ
Π²Π΅Π±-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² Golang Π² 2021 Π³ΠΎΠ΄Ρ, ΡΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΠΈ Π½Π° GitHub.Β Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ
Π·Π΄Π΅ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² Π΅ΡΡΡ ΡΠ²ΠΎΠΉ Π½Π°Π±ΠΎΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΈ ΠΏΠ΅ΡΠ΅Π΄ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ΠΌ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· ΡΡΠΈΡ
ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Ρ ΡΠ΅ΡΠΊΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ Π½ΠΈΠΌ.Β ΠΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΈΠΌ, Golang ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΡΡΠ³ΠΈΡ
ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ², ΡΠ°ΠΊΠΈΡ
ΠΊΠ°ΠΊ Buffalo, Martini, Goji, net/http, Revel ΠΈ Ρ.Π΄., Π Π½Π΅ ΡΡΠ΅ΡΠ½ΡΠΉΡΠ΅ΡΡ ΠΈΡ
ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΈ ΠΏΡΠΎΠ±ΡΠ²Π°ΡΡ.
Π’ΠΎΠΏ-5 ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² Golang Π² 2022 Π³ΠΎΠ΄Ρ
Golang (ΠΈΠ»ΠΈ Go) β ΡΡΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ, ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ. ΠΠ½ Π±ΡΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Google Π² 2007 Π³ΠΎΠ΄Ρ ΠΈ Π±ΡΠ» Ρ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΡΡ ΠΏΡΠΈΠ½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌ ΠΌΠΈΡΠ΅ ΠΈΠ·-Π·Π° Π΅Π³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ , ΡΡΡΡΠΊΡΡΡΠ½Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ, ΡΠ±ΠΎΡΠΊΠ° ΠΌΡΡΠΎΡΠ° ΠΈ ΡΡ ΠΎΠ΄ΡΡΠ²ΠΎ Ρ ΡΠ·ΡΠΊΠΎΠΌ C.
ΠΠ΅Π±-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ Golang ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ (API) ΠΈ Π²Π΅Π±-ΡΠ΅ΡΠ²ΠΈΡΠΎΠ². ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ Π½Π΅ Π½ΡΠΆΠ½Ρ, Π½ΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ. ΠΠ°ΠΆΠ΅ Π·Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΈΠΌΠ΅Ρ Π·Π½Π°Π½ΠΈΡ, ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠΎ ΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ. Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΡΡΠ»ΡΠ³ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ, ΠΆΠ΅Π»Π°ΡΡΠΈΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΠ²ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅, Π° Π½Π΅ ΠΏΠΈΡΠ°ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ.
The top 5 web frameworks in Golang on the basis of popularity (according to stars on GitHub) are listed as follows:
Name | Stars | Forks | ΠΠ’ΠΠ Π«Π’ΠΠ―.0007 | 238 |
beego | 24.5k | 4.9k | 746 | |
echo | 17.7k | 1.6k | 37 | |
ΠΠΎΠΌΠΏΠ»Π΅ΠΊΡ | 17,5K | 1,8K | 59 | |
FTHTTTP0007 | 13K | 1,1K | 34 |
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΡΠΈ ΡΠ°ΠΌΠΊΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΈ ΡΠΎΠ±Π»ΡΠ΄Π°ΠΉΡΠ΅ ΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΠΊΠΎΡΡΡΠΌΠΎΠ² ΠΈ ΠΏΡΠΎΡΡΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
90444444414444144444444444414444444144444444441444444144444414444444444444444444444444444444444441444144414441444141414414144414141414414141444144451444514445144451444514445. Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ gin Π²ΠΎΠ·Π³Π»Π°Π²Π»ΡΠ΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² Go ΠΏΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ²ΠΎΠ΅ΠΉ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡΠΈΡΠ½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠ΅ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠ½ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ REST API Π΄Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ Ρ
ΠΎΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΠ΄Π½ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΡΡΠ΅Π΄Ρ. ΠΡΠΎΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ HTTP-ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΎΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΡΠ°ΡΠΈΠΊΠ° Golang ΠΈ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΎΠ±ΡΠΈΡΠ½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° ββΠ½Π° GitHub. ΠΠ½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠ΅ΠΉ ΡΡΠ΅Π΄ΠΎΠΉ Golang Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΡ
API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² REST.
API ΡΡΠΎΠ³ΠΎ Π²Π΅Π±-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΠΌΠ°ΡΡΠΈΠ½ΠΈ, Π½ΠΎ ΠΏΠΎΡΡΠΈ Π² 40 ΡΠ°Π· Π±ΡΡΡΡΠ΅Π΅ Π΅Π³ΠΎ! ΠΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π΄ΠΆΠΈΠ½Π° ΡΠΎΠ·Π΄Π°Π»ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Ρ ΠΎΡΠΎΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅Π»Π°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Π΄ΠΆΠΈΠ½ΠΎΠΌ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½Π΅Π΅.
Π‘Π°ΠΌΡΠΉ Π±ΠΎΠ»ΡΡΠΎΠΉ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ Π² ΡΠΎΠΌ, ΡΡΠΎ Ρ
ΠΎΡΡ ΠΎΠ½ ΠΈ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΎΠ½ Π½Π΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π±ΠΎΠ»ΡΡΠΈΡ
ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΡΠ»ΠΎΠΆΠ½ΡΡ
ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ.
2. beego
Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ beego ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π±ΡΡΡΡΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ REST API, Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΡΠ»ΡΠΆΠ± Π½Π° Golang. ΠΠ³ΠΎ ΡΠ°ΡΡΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π²Π΅Π±-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Django Π² Python, ΠΈ ΠΎΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Golang, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΈ Π²ΡΡΡΠ°ΠΈΠ²Π°Π½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡ. ΠΠ½ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΎΠΊ. ΠΡΠΎ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Model-View-Controller (MVC) ΡΠΎ ΡΠ²ΠΎΠΈΠΌΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ ΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ, ΠΏΠΎΠΌΠΎΠ³Π°ΡΡΠΈΠΌ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΊΠΎΠ΄Π΅, ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΌ ΠΊΠ°ΠΊ ΠΡΠ΅Π»ΠΈΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ .
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠ½ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ Π½Π° Π²ΠΎΡΠ΅ΠΌΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ, Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΠ½ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΠ΅Ρ ΠΊΠ°ΡΡΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (ORM), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΅Π°Π½ΡΠΎΠ² ΠΈ ΡΠΈΡΡΠ΅ΠΌΡ Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΆΡΡΠ½Π°Π»ΠΎΠ². ΠΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΊΠ΅ΡΠ° ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ HTTP. ΠΡΠ΅ ΠΎΠ΄Π½Π° Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ Ρ
ΠΎΡΠΎΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΡΠΎΠΌΡ, ΠΊΠ°ΠΊ Django ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ.
ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΌΠΈΠ½ΡΡ beego Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΈΠ·-Π·Π° Π²ΡΡΠΎΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΎΠ±ΡΠΈΡΠ½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΎΠ½ Π½Π΅ ΡΠ°ΠΊ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ².
3. echoΒ
Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ echo , ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π² Go, β ΡΡΠΎ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ, ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΡΠΉ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡΠΈΡΠ½ΡΠΉ Π²Π΅Π±-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π² Golang. ΠΠ½ ΠΈΠΌΠ΅Π΅Ρ Π²ΡΡΠΎΠΊΠΎΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ HTTP-ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΎΡ Ρ Π½ΡΠ»Π΅Π²ΡΠΌ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π·ΡΠΌΠ½ΠΎ ΡΠ°ΡΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΡ Π΄Π»Ρ ΠΌΠ°ΡΡΡΡΡΠΎΠ². ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π°Π΄Π΅ΠΆΠ½ΡΡ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΡ REST API, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ Π² Π³ΡΡΠΏΠΏΡ. ΠΠ½ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ TLS ΠΈΠ· Letβs Encrypt ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ HTTP/2, ΡΡΠΎ ΠΏΠΎΠ²ΡΡΠ°Π΅Ρ ΡΠΊΠΎΡΠΎΡΡΡ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π»ΡΡΡΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π΄Π°ΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΊΠΎΡΠ½Ρ, Π³ΡΡΠΏΠΏΡ ΠΈΠ»ΠΈ ΠΌΠ°ΡΡΡΡΡΠ°.
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΡ Π΄Π°Π½Π½ΡΡ
Π΄Π»Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΈ HTTP-Π·Π°ΠΏΡΠΎΡΠ°, Π²ΠΊΠ»ΡΡΠ°Ρ JSON, XML ΠΈΠ»ΠΈ Π΄Π°Π½Π½ΡΠ΅ ΡΠΎΡΠΌΡ. ΠΠ»Ρ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° Π΄Π°Π½Π½ΡΡ
ΠΎΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ API Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
HTTP-ΠΎΡΠ²Π΅ΡΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ JSON, XML, HTML, ΡΠ°ΠΉΠ»Ρ ΠΈ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΡ. Π¨Π°Π±Π»ΠΎΠ½Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°ΡΠΎΡΠ° ΠΈ ΠΈΠΌΠ΅ΡΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΡ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΎΡΠΈΠ±ΠΎΠΊ HTTP.
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡ ΠΎ-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ, Π° ΠΊΠΎΠ΄ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΡΠ°ΡΡΠΎ.
4. kit
ΠΠ»Π°ΡΡΠΎΡΠΌΠ° kit β ΡΡΠΎ Π½Π°Π±ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π°Π΄Π΅ΠΆΠ½ΡΡ , Π½Π°Π΄Π΅ΠΆΠ½ΡΡ ΠΈ ΡΠ΄ΠΎΠ±Π½ΡΡ Π² ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Π½Π° Golang. ΠΡΠΎ Π½Π°Π±ΠΎΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΈ Π»ΡΡΡΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡΠΉ, Π½Π°Π΄Π΅ΠΆΠ½ΡΠΉ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΉ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°. Go β ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΡΠ·ΡΠΊ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π½ΠΎ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡ ΡΡΠ΅Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡ (RPC), Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠΎΠΉ. ΠΠ½ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·Π°Π½Π½ΡΡ
ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΌΠ΅ΡΡΠ΅ ΠΎΠ±ΡΠ°Π·ΡΡΡ ΠΏΡΠΎΠ΄ΡΠΌΠ°Π½Π½ΡΡ ΡΡΡΡΠΊΡΡΡΡ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΊΡΡΠΏΠ½ΡΡ
ΡΠ΅ΡΠ²ΠΈΡ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡ (SOA) ΠΈ Π΄Π΅Π»Π°ΡΡ Golang ΠΏΠ΅ΡΠ²ΠΎΠΊΠ»Π°ΡΡΠ½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Π² Π»ΡΠ±ΠΎΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ½ Π±ΡΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ Π²ΡΠ±ΠΈΡΠ°ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΈ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡ Π΄Π»Ρ Π½ΠΈΡ
.
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ go-kit Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΈΠ·-Π·Π° ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ Π½Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ API Π² ΡΠ»ΡΠΆΠ±Ρ ΠΎΡΠ΅Π½Ρ Π²ΡΡΠΎΠΊΠΈ.
5. fasthttp
Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ fasthttp ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π±ΡΡΡΡΡΠΉ HTTP-ΡΠ΅ΡΠ²Π΅Ρ ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠΉ API, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ net/http ΠΈΠ·-Π·Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ½ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ ΠΏΠΎ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π»Π΅Π³ΠΊΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ 100 ΡΡΡ. Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ ΠΈ Π±ΠΎΠ»Π΅Π΅ 1 ΠΌΠ»Π½ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Π½Π° ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ. ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ Π΄Π»Ρ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΡΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· RequestCtx.Hijack .
API Fasthttp ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ
ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ
ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ
ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ
ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ
ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ
ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ Ρ Π½ΡΠ»Ρ. ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Π°Π΄ΡΠ΅Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΎΡ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π·Π°ΠΏΡΠΎΡΠ° ΠΈ Ρ. Π΄. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ net/http ΠΈΠΌΠ΅Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠΎΠΊΡΡ Π°ΡΠ΄ΠΈΡΠΎΡΠΈΡ, ΠΎΠ½ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ΅Π½ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ net/http ΠΈ fasthttp Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΡΠ°ΡΡΠΎ Π±ΡΠ²Π°Π΅Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Ρ net/http Π½Π° fasthttp.
Π Π΅Π·ΡΠΌΠ΅
ΠΡΠΎ 5 ΡΠ°ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ Π²Π΅Π±-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² Golang Π² 2020 Π³ΠΎΠ΄Ρ, ΡΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΠΈ Π½Π° GitHub. ΠΠ°ΠΆΠ΄Π°Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½Π°Ρ Π·Π΄Π΅ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΈΠΌΠ΅Π΅Ρ ΡΠ°Π·Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π΄Π»Ρ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΎΠ², ΠΈ ΠΏΠ΅ΡΠ΅Π΄ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΈΠ· ΡΡΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Ρ ΡΠ΅ΡΠΊΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅ Π΅Π΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ. ΠΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΈΠΌ, Golang ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΡΡΠ³ΠΈΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Buffalo, Martini, Goji, net/http, Revel ΠΈ Ρ. Π΄., ΠΈ Π½Π΅ ΡΡΠ΅ΡΠ½ΡΠΉΡΠ΅ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΈΡ .
ΠΡΡΡΠΈΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ Golang Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ²
ΠΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠ»ΡΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΡΡ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Ρ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² ΡΡΠ°Π»ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΌ, ΠΈ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΄Π΅Π½Ρ ΡΠΎΠ·Π΄Π°Π²Π°Π»ΠΎ Π½ΠΎΠ²ΡΠ΅. ΠΠ΄Π½Π°ΠΊΠΎ Π²ΡΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π»ΡΡΡΠ΅ Π΄ΡΡΠ³ΠΈΡ
, Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π°ΠΆΠ΅ Π»ΡΡΡΠ΅!
Golang β ΡΡΠΎ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ Google Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ½ ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½ ΡΡΠ΅Π΄ΠΈ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ , ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π±ΡΡΡΡΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΡΠ΅ Π²Π΅Π±-ΡΠ°ΠΉΡΡ.
ΠΡΡΡΠΈΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ Golang ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ Ρ Π»Π΅Π³ΠΊΠΎΡΡΡΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΠΏΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡΠ΅ ΡΠΈΡΠ°ΡΡ, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ Π»ΡΡΡΠΈΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°Ρ ΠΈ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ! ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ Π»ΡΡΡΠΈΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ Golang Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ².
ΠΠ½Π°Π½ΠΈΠ΅ Π»ΡΡΡΠΈΡ Π²Π΅Π±-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² Golang ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π½Π°Π΄Π΅ΠΆΠ½ΡΠ΅ Π²Π΅Π±-ΡΠ°ΠΉΡΡ. ΠΡΠΎ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Π²Π΅Π±-ΡΡΠ΅Π΄Π΅.
Π ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Ρ Golang Π½Π°Π±ΠΈΡΠ°Π΅Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ²ΠΎΠ΅ΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΠΈ. Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΌΡ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π»ΡΡΡΠΈΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΡΠ΅ Π²Π΅Π±-ΡΠ°ΠΉΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Golang!
Best Golang Web Framework List
golang framework
- Revel
- Web.
go
- Goji
- Echo
- Gocraft
- Gorilla
- Mango
- Buffalo
- Net/HTTP
- Beego
- Gin Gonic
- Martini
- Iris
4
1. ΠΠ΅Π±-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Gin
Gin ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π»ΡΡΡΠΈΡ Π²Π΅Π±-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² Golang Π² ΡΠΏΠΈΡΠΊΠ΅. ΠΡΠΎ ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ Π²ΡΠ±ΠΎΡ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΡ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ½ ΠΏΠΎΡΡΡΠΎΠ΅Π½ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Martini, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎ Π±ΡΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Π’ΠΎΠΌΠΎΠΌ Π‘ΡΡΠ°ΡΡΠΎΠΌ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΠ°ΡΡΠΈΠ½ΠΎΠΌ Π€ΠΈΡΠ΅ΡΠΎΠΌ ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ ΠΠ΅Π½Π° ΠΡΠΈΡΡΠ΅Π½ΡΠ΅Π½Π° ΠΈ ΠΠ»Π΅ΠΊΡΠ° ΠΠ΅ΠΉΠ½ΠΎΡΠ°.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Gin Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ΅Π½ ΡΡΡΡΠΊΡΡΡΠ΅ Django (ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π°Ρ CMS Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Python). ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ, ΠΈΠΌΠ΅ΡΡΠΈΠΌ ΠΎΠΏΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Python, Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π½Π° Golang Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΡΠΈΠ»ΠΈΡΠΌΠΈ.
2. Beego Web Framework
Beego ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Ρ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠΊΠΎΡΠΎΡΡΡΡ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Beego ΠΊΠΎΠ½ΡΠ΅Π½ΡΡΠΈΡΡΠ΅ΡΡΡ Π½Π° ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ΅Π½Ρ Π²Π΅Π»ΠΈΠΊΠΈ ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠ΄ΠΎΠ² Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ°ΠΌΠΈ, ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΠ²Π°Π΅Ρ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΡΠ»ΡΡΠ°Π΅Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.
ΠΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΡ ΡΡΡΡΠΊΡΡΡΡ, ΡΠ°ΠΊΡΡ ββΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΠΌΠΎΠ΄ΡΠ»Ρ Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΆΡΡΠ½Π°Π»Π° ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Beego ΡΠ°Π·Π΄Π΅Π»Π΅Π½ Π½Π° ΡΠ΅ΡΡΡΠ΅ ΡΠ°ΡΡΠΈ:
- ΠΠ°Π·ΠΎΠ²ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Ρ ΠΆΡΡΠ½Π°Π»ΠΎΠΌ, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ ΠΈ ΡΠ΅Π³ΡΠ»ΡΡΠΎΡΠΎΠΌ
- ΠΠ΅Π±-ΡΠ΅ΡΠ²Π΅Ρ
- ΠΠ°Π΄Π°ΡΠΈ
- ΠΠ»ΠΈΠ΅Π½Ρ
3. ΠΠ΅Π±-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Revel
Revel β ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ. Revel β ΡΡΠΎ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π²Π΅Π±-ΡΠ°ΠΉΡΠ° Golang Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ REST API, Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ Golang. ΠΠ½ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ Π΅Π³ΠΎ Π±ΡΠ»ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ ΡΠ°ΡΡΠΈΡΡΡΡ, ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π±ΡΡΡΡΠΎ ΠΈ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π²ΡΠ΅, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ, Π½Π΅ Π±Π΅ΡΠΏΠΎΠΊΠΎΡΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π²Π½ΡΡΡΠΈ. Revel β ΡΡΠΎ ΡΡΠ΅Π΄Π° MVC Π΄Π»Ρ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Go, Π²Π΄ΠΎΡ
Π½ΠΎΠ²Π»Π΅Π½Π½Π°Ρ Rails, Grails ΠΈ Play!
Revel ΡΠΏΡΠΎΡΠ°Π΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Go. ΠΠ°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π·Π½Π°ΡΡ ΠΎ HTML ΠΈΠ»ΠΈ CSS, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ β ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΡΠΎΡΡΡΠ΅ DSL (ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ·ΡΠΊΠΈ) Revel ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΈ HTML Π½Π° ΡΠ²ΠΎΠ΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΡΠ°Π±Π»ΠΎΠ½Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.
4. ΠΠ΅Π±-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Echo
Echo β ΡΡΠΎ ΡΠΏΡΠΎΡΠ΅Π½Π½ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Go. ΠΠ½ ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΠΈΠ΄Π΅Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΈ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ API, Π²Π΅Π±-ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² JSON ΠΈ API RESTful. ΠΡ ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΈΠ»ΠΈ Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ gin.
5. ΠΠ΅Π±-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Buffalo
Buffalo β ΡΡΠΎ Π²Π΅Π±-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Go, Π²Π΄ΠΎΡ Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ Pythonβs Django ΠΈ Ruby on Rails. Π‘ Π½ΠΈΠΌ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ Π½Π°ΡΠ°ΡΡ, Π½ΠΎ ΠΎΠ½ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ, ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅Π°Π½ΡΠ°ΠΌΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅!
Buffalo ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
- ΠΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡΠΈΡΠ½ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ GO API, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ Π½Π° Π»ΡΠ±ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ (Go ΠΈΠ»ΠΈ JavaScript)
- ΠΠΎΠ³Π°ΡΠ°Ρ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ° ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅Π»Π°ΡΡ Buffalo Π΅ΡΠ΅ Π»ΡΡΡΠ΅
6.
ΠΠ΅Π±-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Gorilla
Gorilla β ΡΡΠΎ Π²Π΅Π±-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Go. ΠΡΠΎΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΠΌΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ Netflix, Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ²ΠΎΠΈΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Gorilla ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅, Π° Π½Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° ΡΠ°Π±ΠΎΡΡ ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΎΠΊ.
ΠΡΠΎ ΠΏΡΠΎΠ΅ΠΊΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. Gorilla ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π±ΠΎΠ»ΡΡΡΡ Π³ΠΈΠ±ΠΊΠΎΡΡΡ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ Π² ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΠΈ. ΠΡΠ½ΠΎΠ²Π½Π°Ρ Π·Π°Π΄Π°ΡΠ° Gorilla β ΡΠΏΡΠΎΡΡΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π±ΡΡΡΡΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠ΅ΡΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π°Π±ΠΎΡΠΈΡΡΡ ΠΎΠ±ΠΎ Π²ΡΠ΅Ρ ΡΡΠΎΠΌΠΈΡΠ΅Π»ΡΠ½ΡΡ Π·Π°Π΄Π°ΡΠ°Ρ , ΡΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Gorilla β ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ Π²ΡΠ±ΠΎΡ. ΠΠ½ ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΡΠΎΠΊΠΈΠΉ ΡΠΏΠ΅ΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΌ ΠΏΠ»Π°Π½ΠΎΠΌ. ΠΠ½ ΠΏΡΠΎΡΡ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ, Π° Π΅Π³ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½Π° Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ·ΡΠΊΠ°Ρ .
7. Goji Web Framework
Goji β Π΅ΡΠ΅ ΠΎΠ΄Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°, ΡΠΎΠ·Π΄Π°Π½Π½Π°Ρ Google ΠΈ Π²ΡΠΏΡΡΠ΅Π½Π½Π°Ρ Π² 2017 Π³ΠΎΠ΄Ρ. ΠΠ½Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π°Π±ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΌΠΎΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΏΠΈΡΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΡΠΉ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠ΄.
Goji β ΡΡΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΡΠ΅Π΄Π° Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ·ΡΠΊΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ JavaScript, Python, Java ΠΈ Π΄ΡΡΠ³ΠΈΠ΅. ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΡΠ°ΠΊΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΊΠ°ΠΊ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°, Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΠΈΠΌ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΈΠ»ΠΈ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
8. ΠΠ΅Π±-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Martini
Martini β ΡΡΠΎ Π»Π΅Π³ΠΊΠΈΠΉ, ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠΉ ΠΈ Π±ΡΡΡΡΡΠΉ Π²Π΅Π±-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π΄Π»Ρ Go. Sinatra Π²Π΄ΠΎΡ Π½ΠΎΠ²Π»ΡΠ΅Ρ Π΅Π³ΠΎ, Π½ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΠ΅ΡΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°ΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ GopherJS ΠΈ GorillaMux.
Martini β Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ½ ΠΏΠΎΡ
ΠΎΠΆ Π½Π° Gorilla ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅, Π½ΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠΈΠΌ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ
ΡΠΈΠΏΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ Martini Π΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π² ΡΠ°Π·Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ Π²Π½ΡΡΡΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ ΠΊΠΎΠ΄ΠΎΠΌ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Martini.
Martini β ΡΡΠΎ Π²Π΅Π±-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Ρ ΠΏΠΎΠ»Π½ΡΠΌ ΡΡΠ΅ΠΊΠΎΠΌ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° Gorm ΠΈ Goji, Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ. Martini ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ gorm Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠΎΠ²Π½Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π½ΠΎ Π΅Π³ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ MySQL ΠΈΠ»ΠΈ PostgresQL.
ΠΠ½ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΠΈ Ρ ΠΎΡΠΎΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ Go, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ net/HTTP, crypto, net/URL ΠΈ Ρ. Π΄., ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΡΠΌ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², ΡΡΠ΅Π±ΡΡΡΠΈΡ Π²ΡΡΠΎΠΊΠΎΠΉ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠ»Π°Π²Π½ΡΠΉ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ Martini Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ»ΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ.
Read also β GoLang vs NodeJs
Pros and Cons Of Golang Web Frameworks
PROS of Golang Web Frameworks | CONS of Golang Web Frameworks |
Π§ΡΠ΅Π·Π²ΡΡΠ°ΠΉΠ½ΠΎ Π±ΡΡΡΡΡΠΉ | ΠΠ΅ΡΠ²Π½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ |
ΠΡΠΎΡΡΠΎΠΉ Π² ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ | ΠΠ»ΠΎΡ Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ |
Π‘Π±ΠΎΡΠΊΠ° ΠΌΡΡΠΎΡΠ° | ΠΠ΅Ρ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠΉ |
Testing Support | Zero Community Support |
Statically Typed | Internal Inconsistencies |
Interface Types | Limited Automation Scope |
Pros and Cons Of Golang Web Frameworks
Conclusion
The Golang web framework β ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π²Π΅Π±-ΡΠ°ΠΉΡΡ.