golang ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΡΠ΅Π³ΠΎ
Π―Π·ΡΠΊ Go Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
Π¦Π΅Π»Ρ ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΈ β ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΎ ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Go (Golang) ΡΠ΅ΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΌΠΎΡΡΡΡ Π² ΡΡΠΎΡΠΎΠ½Ρ ΡΡΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°, Π½ΠΎ Π΅ΡΠ΅ Π½Π΅ ΡΠ΅ΡΠΈΠ»ΠΈΡΡ Π²Π·ΡΡΡΡΡ Π·Π° Π΅Π³ΠΎ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅. Π Π°ΡΡΠΊΠ°Π· Π±ΡΠ΄Π΅Ρ Π²Π΅ΡΡΠΈΡΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ· ΡΠ΅Π±Ρ RESTful API Π²Π΅Π±-ΡΠ΅ΡΠ²ΠΈΡ.
ΠΠ΅ΡΠ΅Π΄ΠΎ ΠΌΠ½ΠΎΠΉ ΡΡΠΎΡΠ»Π° Π·Π°Π΄Π°ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ Π±ΡΠΊΡΠ½Π΄ ΠΊ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΌΡ ΡΠ΅ΡΠ²ΠΈΡΡ. Π‘ΡΡΡ ΡΠ΅ΡΠ²ΠΈΡΠ° Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠ°. ΠΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΠΎΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΡ ΡΡ ΡΡΠ΄ΠΎΠΌ Ρ ΡΠ΅ΠΊΡΡΠΈΠΌ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠ° ΠΏΠΎΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΌΠΎΠ³ΡΡ ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠ²ΠΎΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠΆΠ΅, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ. ΠΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠ²ΠΎΠ΅ΠΎΠ±ΡΠ°Π·Π½ΡΠΉ Π³Π΅ΠΎ-ΡΠΎΡΡΠΌ.
ΠΠ°Π²Π½ΠΎ Ρ ΠΎΡΠ΅Π» ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΡΠ·ΡΠΊ Go Π΄Π»Ρ ΡΠΊΠΎΠ»Ρ Π½ΠΈΠ±ΡΠ΄Ρ ΡΠ΅ΡΡΠ΅Π·Π½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ². ΠΡΠ±ΠΎΡ Π±ΡΠ» ΠΎΡΠ΅Π²ΠΈΠ΄Π΅Π½, Π±Π»Π°Π³ΠΎ ΡΡΠΎ ΡΡΠΎΡ ΡΠ·ΡΠΊ ΠΊΠ°ΠΊ Π½Π΅Π»ΡΠ·Ρ Π»ΡΡΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ Π·Π°Π΄Π°Ρ.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΡΠ·ΡΠΊΠ° Go:
ΠΡΠ΅ ΡΡΠΈ, ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΡΠ·ΡΠΊ ΡΡΠ΅Π΄ΠΈ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ . ΠΡΠΎ Π΄ΠΎΡΡΠΎΠΉΠ½ΡΠΉ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ Π½Π° ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅, ΠΊ ΡΠΎΠΌΡ ΠΆΠ΅, ΠΎΡΠ²ΠΎΠΈΡΡ ΡΠ·ΡΠΊ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ.
ΠΡΠ°ΠΊ, Π²Π΅ΡΠ½Π΅ΠΌΡΡ ΠΊ Π½Π°ΡΠ΅ΠΉ Π·Π°Π΄Π°ΡΠ΅. Π₯ΠΎΡΡ ΡΠ·ΡΠΊ ΠΈ Π½Π΅ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ Π½Π° ΡΡΡΡΠΊΡΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΡΠ΅ΡΠΈΠ» ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈ MVC. ΠΡΠ°Π²Π΄Π° View ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. Π ΠΌΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ Π±ΡΠ» AngularJS, Π² ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Π΅ β Π½Π°ΡΠΈΠ²Π½ΠΎΠ΅ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠ΄Π΅ΡΡ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ Π»ΠΈΡΡ ΠΎΠ± API Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²ΠΈΡΠ°.
Π‘ΡΡΡΠΊΡΡΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΏΠΎΠ»ΡΡΠΈΠ»Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ:
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π² Go ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΡΡΡ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΡ (package), ΡΡΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π² Π½Π°ΡΠ°Π»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. ΠΠΌΡ ΠΏΠ°ΠΊΠ΅ΡΠ° Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ ΡΠ°ΠΉΠ»Ρ, Π²Ρ
ΠΎΠ΄ΡΡΠΈΠ΅ Π² ΠΏΠ°ΠΊΠ΅Ρ. Π’Π°ΠΊ ΠΆΠ΅, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π³Π»Π°Π²Π½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ main Ρ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ main(). ΠΠ½ Ρ ΠΌΠ΅Π½Ρ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ loctalk.go. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Ρ ΠΌΠ΅Π½Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ 5 ΠΏΠ°ΠΊΠ΅ΡΠΎΠ²: conf, controllers, models, utils, main.
ΠΡΠ΄Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ Π½Π΅ΠΏΠΎΠ»Π½ΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ², Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ.
ΠΠ°ΠΊΠ΅Ρ conf ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ°ΠΉΡΠ°.
ΠΡΠΌΠ°Ρ, ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡ Π½Π΅ΡΠ΅Π³ΠΎ. Π€ΡΠ½ΠΊΡΠΈΡ init() Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠ°ΠΊΠ΅ΡΠ΅ Π΄ΠΎ Π²ΡΠ·ΠΎΠ²Π° main(). ΠΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π² ΡΠ°Π·Π½ΡΡ ΡΠ°ΠΉΠ»Π°Ρ .
Π ΡΠ°ΠΌΠΎΠΌ Π²Π΅ΡΡ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΈΠΌΡ ΠΏΠ°ΠΊΠ΅ΡΠ°. ΠΠ°Π»Π΅Π΅ ΠΈΠ΄Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ². ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΠΊΠ΅Ρ Martini. ΠΠ½ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π»Π΅Π³ΠΊΡΡ ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΡ Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ ΠΈ ΡΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΡΡΡ ΡΡΠΎΡ ΠΏΠ°ΠΊΠ΅Ρ. ΠΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΡΡΡ ΠΊ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΎΡΠΊΡΠ΄Π° ΠΎΠ½ Π±ΡΠ» Π²Π·ΡΡ. Π ΡΡΠΎΠ±Ρ Π΅Π³ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π½Π°Π±ΡΠ°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ go get github.com/go-martini/martini
ΠΠ°Π»Π΅Π΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Martini, Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ Π΅Π³ΠΎ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π·Π½Π°ΠΊ Β« := Β». ΠΡΠΎ ΡΠΎΠΊΡΠ°ΡΠ΅Π½Π½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, ΠΎΠ½ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ: ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠΈΠΏΠ° ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π΅Π΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π°ΠΏΠΈΡΠ°Π² a := Β«helloΒ», ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ a ΡΠΈΠΏΠ° string ΠΈ ΠΏΡΠΈΡΠ²ΠΎΠΈΠΌ Π΅ΠΉ ΡΡΡΠΎΠΊΡ Β«helloΒ».
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ m Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ *ClassicMartini, ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ martini.Classic(). * ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ, Ρ. Π΅. ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π½Π΅ ΡΠ°ΠΌΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π° Π»ΠΈΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π½Π΅Π³ΠΎ. Π ΠΌΠ΅ΡΠΎΠ΄ m.Use() ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ. ΠΡΠΎΡ Middleware ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Martini Π΄Π΅Π»Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π½Π°Π΄ ΠΊΠ°ΠΆΠ΄ΡΠΌ Π·Π°ΠΏΡΠΎΡΠΎΠΌ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ Content-Type Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ°. ΠΠ΅ΡΠΎΠ΄ m.Map() ΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΈΠ²ΡΠ·Π°ΡΡ Π½Π°ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π΅ Π·Π°ΡΠ΅ΠΌ Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°Ρ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ (ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ dependency injection). Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Ρ ΡΠΎΠ·Π΄Π°Π» ΠΎΠ±Π΅ΡΡΠΊΡ Π΄Π»Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ Π² ΡΠΎΡΠΌΠ°Ρ json.
Π’ΡΡ ΠΆΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Auth, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΠ°Π²ΠΈΡΡ Π² Π½Π°ΡΠΈ ΡΠΎΡΡΡ ΠΈ ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ Π΄ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°. ΠΡΠΈ Π²Π΅ΡΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Martini. Π‘ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊΠΎΠ΄ ΠΏΠΎΠ»ΡΡΠΈΠ»ΡΡ Π±Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΎΠΉ.
ΠΠ·Π³Π»ΡΠ½Π΅ΠΌ Π½Π° ΡΠ°ΠΉΠ» errors.go ΠΏΠ°ΠΊΠ΅ΡΠ° conf.
Π―Π·ΡΠΊ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΠΌΠ΅ΡΡΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° try-catch, ΠΎΡΠ΅Π½Ρ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈΠ΅ΠΌ, ΠΊΠΎΠ³Π΄Π° Π²ΡΠΎΡΡΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ°. Π ΠΏΡΠΈ Π΅Π΅ Π½Π°Π»ΠΈΡΠΈΠΈ, ΠΎΠ½Π° ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ. ΠΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΡΠΈΠΏ error, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ· ΡΠ΅Π±Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ:
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ ΠΌΠ΅ΡΠΎΠ΄ Error() string. Π― ΡΠΎΠ·Π΄Π°Π» ΡΠ²ΠΎΠΉ ΡΠΈΠΏ Π΄Π»Ρ ΠΎΡΠΈΠ±ΠΎΠΊ ApiError, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΠΎΠ»Π΅Π΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅Π½ Π΄Π»Ρ ΠΌΠΎΠΈΡ Π·Π°Π΄Π°Ρ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ ΡΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌ ΡΠΈΠΏΠΎΠΌ error.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° β type ApiError struct. ΠΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ, ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π² ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠ΅. ΠΠ½Π° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΏΠΎΠ»Π΅ΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠΈΠΏΠΎΠ² (Π½Π°Π΄Π΅ΡΡΡ, Π²Ρ ΡΡΠΏΠ΅Π»ΠΈ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ ΠΏΠΈΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ). ΠΡΡΠ°ΡΠΈ, ΠΏΠΎΠ»ΡΠΌΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ, Π½Π°ΡΠ»Π΅Π΄ΡΡ Π²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΠΏΠΎΠ»Ρ. Π ΠΎΠ΄ΠΈΠ½Π°ΡΠ½ΡΡ ΠΊΠ°Π²ΡΡΠΊΠ°Ρ « ΡΠΊΠ°Π·Π°Π½Ρ ΡΠ΅Π³ΠΈ. ΠΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠΌ encoding/json Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ Π² Π²ΡΠ²ΠΎΠ΄Π΅ json (Π·Π½Π°ΠΊ ΠΌΠΈΠ½ΡΡ Β«-Β» Π²ΠΎΠΎΠ±ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ°Π΅Ρ ΠΏΠΎΠ»Π΅ ΠΈΠ· Π²ΡΠ²ΠΎΠ΄Π°).
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΠΎΠ»Ρ ΡΡΡΡΠΊΡΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Ρ Ρ Π·Π°Π³Π»Π°Π²Π½ΠΎΠΉ Π±ΡΠΊΠ²Ρ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡΡ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ°. ΠΡΠ»ΠΈ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΈΡ Ρ ΠΏΡΠΎΠΏΠΈΡΠ½ΠΎΠΉ Π±ΡΠΊΠ²Ρ, ΠΎΠ½ΠΈ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π½Π΅ Π±ΡΠ΄ΡΡ, Π° Π±ΡΠ΄ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΠΏΠ°ΠΊΠ΅ΡΠ°. ΠΡΠΎ ΠΆΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΈ ΠΊ ΡΡΠ½ΠΊΡΠΈΡΠΌ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ. ΠΠΎΡ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΠΈ.
ΠΠ°Π»Π΅Π΅ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΠΏΡΠ΅Π΄ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΈΡ ΠΏΠΎΠ»Ρ. ΠΠΎΠ»Ρ Π²ΠΈΠ΄Π° http.StatusBadRequest β ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΈΠΏΠ° int Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅ http Π΄Π»Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΊΠΎΠ΄ΠΎΠ² ΠΎΡΠ²Π΅ΡΠ°, ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΠ΄Π° Π°Π»ΠΈΠ°ΡΡ. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠΎΠΊΡΠ°ΡΠ΅Π½Π½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΡΡΡΠΊΡΡΡΡ &ApiError<> Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ. ΠΠΎ Π΄ΡΡΠ³ΠΎΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΠΊ:
Π‘ΠΈΠΌΠ²ΠΎΠ» & ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π΄Π°Π½Π½ΡΡ ΡΡΡΡΠΊΡΡΡΡ. ΠΠΏΠ΅ΡΠ°ΡΠΎΡ new() ΡΠ°ΠΊ ΠΆΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ, Π° Π½Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΠΎ-Π½Π°ΡΠ°Π»Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ ΠΏΡΡΠ°Π½ΠΈΡΠ° Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠΌΠΈ, Π½ΠΎ, ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ, Π²Ρ ΠΏΡΠΈΠ²ΡΠΊΠ½ΠΈΡΠ΅.
ΠΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ Π½Π°ΡΠΈΠΌ ΠΌΠΎΠ΄Π΅Π»ΡΠΌ. ΠΡΠΈΠ²Π΅Π΄Ρ ΡΡΠ΅Π·Π°Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎΡΡΠΎΠ²:
ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π΄Π»Ρ MongoDb β mgo, ΡΡΠΎΠ±Ρ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π΄Π°Π½Π½ΡΠ΅. ΠΠ»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π°, Ρ ΡΠΎΠ·Π΄Π°Π» Π½Π΅Π±ΠΎΠ»ΡΡΡΡ ΠΎΠ±Π΅ΡΡΠΊΡ Π½Π°Π΄ api mgo β utils.NewDbSession. ΠΠΎΠ³ΠΈΠΊΠ° ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ: ΡΠ½Π°ΡΠ°Π»Π° ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΡΡΡΡΠΊΡΡΡΠ΅ ΡΠ·ΡΠΊΠ°, Π° Π·Π°ΡΠ΅ΠΌ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΡΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ, ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ Π΅Π³ΠΎ Π² Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π² ΡΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π°Ρ ΠΌΡ Π²Π΅Π·Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π½Π°Ρ ΡΠΈΠΏ ΠΎΡΠΈΠ±ΠΊΠΈ conf.ApiError. Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΌΡ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΡΠ΅ΠΌ Π² Π½Π°ΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ conf.NewApiError(err). Π’Π°ΠΊ ΠΆΠ΅, Π²Π°ΠΆΠ΅Π½ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ defer. ΠΠ½ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΡΠ°ΠΌΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π°. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π·Π°ΠΊΡΡΠ²Π°Π΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ ΠΠ.
Π§ΡΠΎ ΠΆ, ΠΎΡΡΠ°Π»ΠΎΡΡ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π·Π°ΠΏΡΠΎΡΡ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡ json Π² ΠΎΡΠ²Π΅Ρ.
ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΈΠ· URL id Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ°, ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π½Π°ΡΠ΅ΠΉ ΡΡΡΡΠΊΡΡΡΡ ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ Π½Π° Π½Π΅ΠΉ ΠΌΠ΅ΡΠΎΠ΄ LoadById(id) Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΠΠ ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ. ΠΠΎΡΠΎΡΡΡ ΠΌΡ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π² HTTP ΠΎΡΠ²Π΅Ρ, ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π² Π² json Π½Π°ΡΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ mu.Marshal(post).
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΈΠ³Π½Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ:
ΠΡ ΠΎΠ΄Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π½Π°ΠΌ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Martini Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ (dependency injection). Π ΠΌΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ Π΄Π²Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° (int, []byte) β ΡΠΈΡΠ»ΠΎ (ΡΡΠ°ΡΡΡ ΠΎΡΠ²Π΅ΡΠ°) ΠΈ ΠΌΠ°ΡΡΠΈΠ² Π±Π°ΠΉΡ.
ΠΡΠ°ΠΊ, ΠΌΡ ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΡΠΎΡΡΠ΅, Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ RESTful API ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π² ΠΊΠΎΡΠΎΡΠΊΠΈΠ΅ ΡΡΠΎΠΊΠΈ. ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠ°ΡΡΡ Π±ΡΠ»Π° ΠΏΠΎΠ»Π΅Π·Π½Π° ΠΈ Π²Π΄ΠΎΡ Π½ΠΎΠ²ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ· Π²Π°Ρ Π·Π°Π½ΡΡΡΡΡ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Go. Π£Π²Π΅ΡΠ΅Π½, Π·Π° Π½ΠΈΠΌ Π±ΡΠ΄ΡΡΠ΅Π΅.
ΠΠ»Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ³Ρ ΠΏΠΎΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°ΡΡ Ρ ΠΎΡΠΎΡΡΡ ΠΊΠ½ΠΈΠ³Ρ Π½Π° ΡΡΡΡΠΊΠΎΠΌ Β«ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΡΠ·ΡΠΊΠ΅ GoΒ» ΠΠ°ΡΠΊΠ° Π‘Π°ΠΌΠΌΠ΅ΡΡΠΈΠ»ΡΠ΄Π°. Π, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π±ΠΎΠ»ΡΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠ²Π°ΡΡΡΡ.
ΠΠ°ΡΠ΅ΠΌ Π²Π°ΠΌ ΡΡΠΈΡΡ Go
ΠΡΡΠΎΡΠ½ΠΈΠΊ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ
Go β ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΉ, Π½ΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎ Π΄Π°Π½Π½ΡΠΌ ΠΎΠΏΡΠΎΡΠ° Stack Overflow, ΠΈΠΌΠ΅Π½Π½ΠΎ Golang ΠΏΠΎΠ»ΡΡΠΈΠ» ΡΡΠ΅ΡΡΠ΅ ΠΌΠ΅ΡΡΠΎ Π² ΡΠ΅ΠΉΡΠΈΠ½Π³Π΅ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΎΡΠ΅Π»ΠΈ Π±Ρ ΠΎΡΠ²ΠΎΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² ΠΏΡΠΈΡΠΈΠ½Π°Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΠΈ Go, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, Π³Π΄Π΅ ΡΡΠΎΡ ΡΠ·ΡΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ Π΅Π³ΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ ΡΡΠΎΠΈΡ ΠΈΠ·ΡΡΠ°ΡΡ.
ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΡΡΠΎΡΠΈΠΈ
Π―Π·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Go Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Google. Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, Π΅Π³ΠΎ ΠΏΠΎΠ»Π½ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Golang β ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ΅ ΠΎΡ Β«Google languageΒ». ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Π² Π°Π½ΠΎΠ½ΡΠ΅ ΡΠ·ΡΠΊ Π±ΡΠ» Π½Π°Π·Π²Π°Π½ ΠΌΠΎΠ»ΠΎΠ΄ΡΠΌ, Π² ΡΡΠΎΠΌ Π³ΠΎΠ΄Ρ Π΅ΠΌΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠΆΠ΅ Π΄Π΅ΡΡΡΡ Π»Π΅Ρ.
Π¦Π΅Π»Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΠΎΡΠ»Π° ΠΏΠ΅ΡΠ΅Π΄ ΡΠΎΠ·Π΄Π°ΡΠ΅Π»ΡΠΌΠΈ Go β ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠ³ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ. Π ΠΎΠ± ΠΠ°ΠΉΠΊ, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Π΅ΠΉ Go, Π·Π°ΡΠ²ΠΈΠ», ΡΡΠΎ Go ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π»ΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅Π΄Π°Π²Π½ΠΎ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΈ ΡΡΠΈΡΡΡΡ ΠΈ Π·Π½Π°ΡΡ Java, C, C++ ΠΈΠ»ΠΈ Python. Go Π΄Π»Ρ Π½ΠΈΡ β ΡΠ·ΡΠΊ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΡΡΡΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ ΠΈ ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π±ΡΡΡΡΠΎ ΠΏΡΠΈΠ²ΡΠΊΠ°Π΅ΡΡ.
ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΎΠ½ Π±ΡΠ» ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Π²Π½ΡΡΡΠΈ Google, Π½ΠΎ Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΡΠ΅Π» ΠΈΠ· Π½Π΅Π΄Ρ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠΈ ΠΈ ΡΡΠ°Π» Π΄ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ.
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΡΠ·ΡΠΊΠ°
Π£ Golang Π΅ΡΡΡ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ»ΡΡΠΎΠ², ΠΊΠ°ΠΊ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ , ΡΠ°ΠΊ ΠΈ Π½Π΅ ΠΎΡΠ΅Π½Ρ.
ΠΡΠΎΡΡΠΎΡΠ°. Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, ΡΡΠΎ Π±ΡΠ»Π° ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ΅Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ·ΡΠΊΠ°, ΠΈ Π΅Π΅ ΡΠ΄Π°Π»ΠΎΡΡ Π΄ΠΎΡΡΠΈΡΡ. Π£ Go Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ (Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ Π΄ΠΎΠΏΡΡΠ΅Π½ΠΈΡΠΌΠΈ), ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ . Π Π·Π΄Π΅ΡΡ Π΅ΡΡΡ Π΄Π²Π° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ ΠΌΠΎΠΌΠ΅Π½ΡΠ°.
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Golang Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΡΡΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΡΡΠΈΡΡ ΠΏΠΎΠ»Π½ΡΠΉ Π½ΠΎΠ²ΠΈΡΠΎΠΊ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ β ΡΠΎΡ, ΠΊΡΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ Π²ΠΎΠΎΠ±ΡΠ΅ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΡΡ ΡΡΠ°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ. Π Go ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΎΠ½ ΠΏΠΎΡΡΠΈ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΡΠΉ (ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ), ΠΊΠ°ΠΊ PHP ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Pascal, Π½ΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΌΠΎΡΠ½ΡΠΉ, ΠΊΠ°ΠΊ Π‘++.
ΠΠΎ-Π²ΡΠΎΡΡΡ , Go ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ²ΠΎΠΈΡΡ ΡΠΆΠ΅ Β«ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π²ΡΠΈΠΉΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΒ», ΡΠΎΡ, ΠΊΡΠΎ ΡΠΆΠ΅ Π·Π½Π°Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ·ΡΠΊΠΎΠ². Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈΠ·ΡΡΠ°ΡΡ Go ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΡΠ²ΠΎΠΈΠ»ΠΈ Python ΠΈΠ»ΠΈ PHP. ΠΠ°Π»Π΅Π΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Ρ ΡΡΠΏΠ΅Ρ ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΏΠ°ΡΡ Python/Go ΠΈΠ»ΠΈ PHP/Go.
ΠΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ. ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½Π΅ Ρ Π²Π°ΡΠ°Π΅Ρ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π² Go, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΡ Π·Π°Π΄Π°ΡΡ. Π£ Go Π΅ΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ β ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ ΡΠ·ΡΠΊΠ° Π‘ΠΈ. ΠΡΡΡ Π΄Π°ΠΆΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅, ΡΡΠΎ Go-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ β ΡΡΠΎ ΠΎΠ±Π΅ΡΡΠΊΠΈ Π΄Π»Ρ C-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ.
Π§ΠΈΡΡΠΎΡΠ° ΠΊΠΎΠ΄Π°. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Go ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄Π΅ΡΠΆΠ°ΡΡ ΠΊΠΎΠ΄ Β«ΡΠΈΡΡΡΠΌΒ». Π ΠΏΡΠΈΠΌΠ΅ΡΡ, Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠΈΡΠ°ΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. Π Go ΡΠ΅ΡΠ°Π΅ΡΡΡ Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ, ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ gofmt ΠΏΡΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. Π€ΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ±ΠΎ Π²ΡΠ΅ΠΌ ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ Π² ΡΡΡΠΎΡΠΈΠ°Π»Π΅ Effective.
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ. ΠΡΠ΅ ΠΎΠ΄Π½ΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ Go, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΡΠ½ΠΈΠΆΠ°Π΅ΡΡΡ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ Π΄ΠΎΠΏΡΡΠ΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ. ΠΠ°, ΠΏΠ΅ΡΠ²ΡΠ΅ ΠΏΠ°ΡΡ Π΄Π½Π΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ, ΠΏΡΠΈΠ²ΡΠΊΡΠΈΠΉ ΠΊ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ, ΡΠ°Π·Π΄ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ ΡΠΈΠΏ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ°Π²Π½ΠΎ, ΠΊΠ°ΠΊ ΠΈ Π΄Π»Ρ Π²ΡΠ΅Π³ΠΎ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ. ΠΠΎ ΠΏΠΎΡΠΎΠΌ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎ Π·Π΄Π΅ΡΡ ΡΠΏΠ»ΠΎΡΠ½ΡΠ΅ ΠΏΠ»ΡΡΡ.
GoDoc. Π£ΡΠΈΠ»ΠΈΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠ΅Π½Ρ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°. ΠΠΎΠ»ΡΡΠΈΠΌ ΠΏΠ»ΡΡΠΎΠΌ GoDoc ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ Π·Π΄Π΅ΡΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ·ΡΠΊΠΈ Π²ΡΠΎΠ΄Π΅ JavaDoc, PHPDoc ΠΈΠ»ΠΈ JSDoc. Π£ΡΠΈΠ»ΠΈΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½Π° ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ ΠΈΠ· Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
ΠΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°. ΠΠ³ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΏΡΠΎΡΡΠΎΠΌΡ ΠΈ Π»Π°ΠΊΠΎΠ½ΠΈΡΠ½ΠΎΠΌΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΡ. ΠΡΠ΅ ΡΡΠΎ β Π½Π°ΡΠ»Π΅Π΄ΠΈΠ΅ Google. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Ρ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠΈ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π΅ΡΡΡΠΊΠΈ ΡΡΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ΅ ΡΡΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡ, ΡΠΎ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ. ΠΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΠΎΠ½ΡΡΠ΅Π½ Π²ΡΠ΅ΠΌ, ΠΊΡΠΎ Π½Π°Π΄ Π½ΠΈΠΌ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Ρ ΠΎΡΠΎΡΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΈ Π»Π°ΠΊΠΎΠ½ΠΈΡΠ½ΡΠΌ. ΠΡΠ΅ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ Go.
ΠΡΠΈ ΡΡΠΎΠΌ Π² Golang Π½Π΅Ρ ΠΊΠ»Π°ΡΡΠΎΠ² (Π΅ΡΡΡ ΡΡΡΡΠΊΡΡΡΡ, struct), Π½Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, ΡΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°. ΠΠ»ΡΡ Π½Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΉ ΠΈ Ρ.ΠΏ.
Π§ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π½Π° Go
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΌ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ΠΌ β Π·Π΄Π΅ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π²ΡΠ΅ ΠΆΠ΅ Python Ρ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΌΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΠΌΠΈ Π½Π° C/C++ ΠΈ CUDA).
ΠΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΡΠΎ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎ Π² ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ web-ΡΠ΅ΡΠ²ΠΈΡΠΎΠ². ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π½Π° Go ΡΡΠΎΠΈΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊ Π΄Π»Ρ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π΅ΠΌΠΎΠ½ΠΎΠ², UI, ΠΎΠ½ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ².
ΠΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Π½ΠΎΡΡΡ Golang
Π‘ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠ·ΡΠΊ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π²ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Π½ΡΠΌ. ΠΡΠΎΠΌΠ΅ ΡΠ΅Ρ
ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ, ΡΡΠΎ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ Π½Π° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅ Π²ΡΡΠ΅, Ρ Golang ΡΠ°Π±ΠΎΡΠ°ΡΡ Mail.ru Group, Avito, Ozon, Lamoda, BBC, Canonical ΠΈ Π΄ΡΡΠ³ΠΈΠ΅.
Β«ΠΡ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡ Π±ΠΈΠ·Π½Π΅Ρ, Π½Π°ΠΌ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎ Π½ΠΎΠ²ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡ Π±ΡΡΡΡΠΎΠ΅ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°. ΠΠ΅Π»Π°Π΅ΠΌ ΡΡΠ°Π²ΠΊΡ Π½Π° Go ΠΈΠ·-Π·Π° Π΅Π³ΠΎ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΈ Π½Π°Π΄ΡΠΆΠ½ΠΎΡΡΠΈ, Π° Π³Π»Π°Π²Π½ΠΎΠ΅ β Π°ΡΠ΄ΠΈΡΠΎΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΠ°Ρ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΒ», β Π·Π°ΡΠ²ΠΈΠ»ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΠ΅Π»ΠΈ Ozon Π² 2018 Π³ΠΎΠ΄Ρ, ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ ΠΏΡΠΈΠ½ΡΠ»Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π½Π° Golang.
ΠΡ Π° ΡΡΠΎ Π½Π°ΡΡΠ΅Ρ Π΄ΠΎΡ ΠΎΠ΄ΠΎΠ² Π·Π°ΡΠ°Π±ΠΎΡΠ½Π°Ρ ΠΏΠ»Π°ΡΠ° Go-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π² ΠΏΡΠΎΡΠ»ΠΎΠΌ Π³ΠΎΠ΄Ρ ΡΠΎΡΡΠ°Π²ΠΈΠ»Π° Π² ΡΡΠ΅Π΄Π½Π΅ΠΌ 60-140 ΡΡΡ. ΡΡΠ±Π»Π΅ΠΉ ΠΏΠΎ Π΄Π°Π½Π½ΡΠΌ Β«ΠΠΎΠ΅Π³ΠΎ ΠΡΡΠ³Π°Β». ΠΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ 2017 Π³ΠΎΠ΄ΠΎΠΌ ΡΡΠΎΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΠ»ΡΡ Π½Π° 8,3%. Π 2019 Π³ΠΎΠ΄Ρ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΡΠΎΡΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Golang Π½ΡΠΆΠ½Ρ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΠΌ.
Π§ΡΠΎ Π΄Π°Π»ΡΡΠ΅?
ΠΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ Π² ΡΠ°Π·Π²ΠΈΡΠΈΠΈ Golang ΡΠΎΡΠ½ΠΎ Π½Π΅ Π±ΡΠ΄Π΅Ρ. ΠΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡ Π² Ρ ΠΎΡΠΎΡΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π½Π°ΡΡ ΡΡΠΎΡ ΡΠ·ΡΠΊ, Π±ΡΠ΄Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°ΡΡ, ΡΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΡ (Π½Π°ΡΠΈΠ½Π°ΡΡΠ΅ΠΌΡ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠΈ) Π½Π°ΠΉΡΠΈ Π±ΡΠ΄Π΅Ρ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎ. Π ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, ΡΡΠΎ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎ ΠΈ ΡΠ΅ΠΉΡΠ°Ρ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π° ΡΡΠ½ΠΊΠ΅ IT Π½Π°Π±Π»ΡΠ΄Π°Π΅ΡΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΉ Π΄Π΅ΡΠΈΡΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ².
Go Ρ ΠΎΡΠΎΡ ΠΊΠ°ΠΊ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ², ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ ΠΏΡΠΎΡΠΈ, ΠΊΡΠΎ ΡΠΆΠ΅ Π·Π½Π°Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΡΡΠΈΡΡ Π΅Π³ΠΎ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΡΡΠΈΡΡΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π»ΡΠ±ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ.
Π‘ΡΠ°ΡΡΡ Π³ΠΎΡΠΎΠ²ΠΈΠ»Π°ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Π΅ΠΌ ΠΊΡΡΡΠ° Golang Π² GeekBrains Π‘Π΅ΡΠ³Π΅Π΅ΠΌ ΠΡΡΡΠΈΠ½ΠΈΠ½ΡΠΌ, Π·Π° ΡΡΠΎ Π΅ΠΌΡ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΡΠΏΠ°ΡΠΈΠ±ΠΎ!
Π§Π΅ΠΌ Ρ ΠΎΡΠΎΡ ΡΠ·ΡΠΊ Go ΠΈ Π·Π°ΡΠ΅ΠΌ Π΅Π³ΠΎ ΠΈΠ·ΡΡΠ°ΡΡ? ΠΡΠ΅ ΠΏΠ»ΡΡΠΊΠΈ Golang
Π―Π·ΡΠΊ Go β ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠΉ ΡΠ·ΡΠΊ Π±ΡΠ΄ΡΡΠ΅Π³ΠΎ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡ Β«Hello World!Β», Π½ΠΎ Π·Π°ΡΡΠΎΠ½Π΅ΠΌ Π²Π°ΠΆΠ½ΠΎΡΡΡ Golang ΠΈ Π΅Π³ΠΎ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ.
ΠΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ
ΠΠ΅ΡΠ²ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Pentium 4 Ρ ΡΠ°ΠΊΡΠΎΠ²ΠΎΠΉ ΡΠ°ΡΡΠΎΡΠΎΠΉ 3,0 ΠΠΡ Π±ΡΠ» ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π΅ΡΠ΅ Π² 2004 Π³ΠΎΠ΄Ρ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ΅ΠΉ Intel. Π‘Π΅Π³ΠΎΠ΄Π½Ρ Mackbook Pro 2016 ΠΈΠΌΠ΅Π΅Ρ ΡΠ°ΠΊΡΠΎΠ²ΡΡ ΡΠ°ΡΡΠΎΡΡ 2,9 ΠΠΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΠΎΡΡΠΈ Π·Π° ΠΎΠ΄Π½ΠΎ Π΄Π΅ΡΡΡΠΈΠ»Π΅ΡΠΈΠ΅ ΠΌΠΎΡΠ½ΠΎΡΡΠΈ Π½Π΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ-ΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈΡΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΌΠΎΡΠ½ΠΎΡΡΠ΅ΠΉ Π½Π° ΡΠ°Π·Π½ΡΡ ΡΡΠ°ΠΏΠ°Ρ Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ΅ Π½ΠΈΠΆΠ΅.
ΠΠ· ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΠΎΡΠΎΠΊΠ° ΠΈ ΡΠ°ΡΡΠΎΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΎΡΡΠ°Π²Π°Π»ΠΈΡΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠΌΠΈ ΠΏΠΎΡΡΠΈ Π΄Π΅ΡΡΡΠΈΠ»Π΅ΡΠΈΠ΅. ΠΡΠ»ΠΈ Π²Ρ Π΄ΡΠΌΠ°Π΅ΡΠ΅, ΡΡΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΡΠ°Π½Π·ΠΈΡΡΠΎΡΠΎΠ² ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ Ρ ΠΎΡΠΎΡΠΈΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ β Π²Ρ ΠΎΡΠΈΠ±Π°Π΅ΡΠ΅ΡΡ. ΠΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Π½Π°ΡΠ½ΡΡ ΠΏΡΠΎΡΠ²Π»ΡΡΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ²Π°Π½ΡΠΎΠ²ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ½Π½Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅) ΠΈ ΡΠΎΠΏΡΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ:
ΠΠΎ Ρ Π²ΡΡΠ΅ΡΠΏΠΎΠΌΡΠ½ΡΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ ΡΠΎΠΆΠ΅ Π΅ΡΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ. ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΡΡ-ΠΏΠ°ΠΌΡΡΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Ρ Π½Π΅Π΅ Π΅ΡΡΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ: ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΠΊΡΡ, ΡΠ΅ΠΌ ΠΎΠ½ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅. ΠΠ° ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ΄Π΅Ρ Π² ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΠΏΠΎΠ²Π»Π΅ΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π·Π°ΡΡΠ°ΡΡ.
ΠΡΠ΅ ΡΡΠΎ ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΠ΅Π΄Π΅Π»Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄Π΅ΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ ΠΌΠΎΠ³ΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
ΠΡΠ»ΠΈ ΠΆΠ΅ Π½Π΅Π»ΡΠ·Ρ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡΡΡ Π½Π° ΡΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ, Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ Π²ΡΡ ΠΎΠ΄ β Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΠ Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ°Π»ΠΎΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Ρ Π² Π΄Π°Π½Π½ΠΎΠΌ Π²ΠΎΠΏΡΠΎΡΠ΅.
Β«Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ ΠΏΠΎΡ ΠΎΠΆΠΈ Π½Π° Π½ΠΈΡΡΠΎΠ·Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΡΠΌΠ΅ΡΠ½ΡΠ΅ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»ΠΈ. Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Π³ΠΎΠ΄Π½Ρ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡΡ ΠΠΎΠ½ΡΠ΅-ΠΠ°ΡΠ»ΠΎ: ΠΎΠ½ΠΈ ΠΏΠΎΠ»Π½Ρ ΠΈΠ·Π³ΠΈΠ±ΠΎΠ² ΠΈ ΠΏΠΎΠ²ΠΎΡΠΎΡΠΎΠ².Β» Β© D. Ungar
Π£ Π½Π°Ρ Π΅ΡΡΡ ΡΠ·ΡΠΊ Go ΠΈ Π³ΠΎΡΡΡΠΈΠ½Ρ!
Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ΄Π΅Ρ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΡΡ ΠΈ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Ρ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ , MQ (Messages queues) ΠΈ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΊΡΡΠ°. Π Π°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠ΅ Π½Π°ΠΌΠΈ ΠΠ ΠΈ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌ ΠΈ Π±ΡΡΡ ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΡΠΌΠΈ Π² ΡΡΠ»ΠΎΠ²ΠΈΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ³ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ΄Π΅Ρ.
ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ (ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Java, Python etc.) ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ. ΠΠΎ Π½Π°ΡΡΠΎΡΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ²ΡΠ·Π°Π½Π° Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ, Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΎΠΉ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ Π³ΠΎΠ½ΠΊΠΈ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΠΌΠΈ. ΠΡΠΎ Π·Π°ΡΡΡΠ΄Π½ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΎΠ·ΡΠΌΠ΅ΠΌ, ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ, Java. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠ°Π½Π°Π» ΠΏΠΎΡΡΠ΅Π±Π»ΡΠ΅Ρ ΠΎΠΊΠΎΠ»ΠΎ 1 ΠΠ± ΠΎΠ±ΡΠ΅ΠΌΠ° ΠΏΠ°ΠΌΡΡΠΈ, ΠΈ, Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ², Π΅ΡΠ»ΠΈ Π²Ρ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΡΠ΅ΡΠ΅ ΡΡΡΡΡΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ², Π²ΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡΡΡ Π½Π΅Ρ Π²Π°ΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ β ΡΡΠΎ ΡΠΎΠΆΠ΅ Π½Π΅ΠΏΡΠΎΡΡΠΎ.
Π―Π·ΡΠΊ Go (ΠΎΠ½ ΠΆΠ΅ Golang) ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π² 2009 Π³ΠΎΠ΄Ρ, ΠΊΠΎΠ³Π΄Π° ΡΠΆΠ΅ Π±ΡΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄Π΅ΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ. ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΠΎΡ Π―Π ΠΏΠΎΡΡΡΠΎΠ΅Π½ Ρ ΡΡΠ΅ΡΠΎΠΌ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°. Π£ Go Π΅ΡΡΡ goroutine Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ². ΠΠ½ΠΈ ΠΏΠΎΡΡΠ΅Π±Π»ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ 2 ΠΠ± ΠΏΠ°ΠΌΡΡΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ Π³ΠΎΡΡΡΠΈΠ½.
ΠΠΎΡ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π²ΡΡΡΡΠΏΠ»Π΅Π½ΠΈΠΉ Π ΠΎΠ±Π° ΠΠ°ΠΉΠΊΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡΡΡ Π²ΠΎΠΏΡΠΎΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°.
ΠΡΠ΅ Π²ΡΡΠ΅ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ Π΄Π΅Π»Π°ΡΡ ΡΠ·ΡΠΊ Go ΠΌΠΎΡΠ½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°, ΠΊΠ°ΠΊ Π² C-ΡΠ·ΡΠΊΠ°Ρ ΠΈ Java, Π½ΠΎ Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ ΠΈ ΠΊΡΠ°ΡΠΎΡΡ ΠΊΠΎΠ΄Π°, ΠΊΠ°ΠΊ Π² Erlang.
Go Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π½Π° Π±Π°Π·ΠΎΠ²ΠΎΠΌ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ
ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² ΡΠ·ΡΠΊΠΎΠ² C ΠΈ C++ Π½Π°Π΄ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΡΠ·ΡΠΊΠ°ΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Java/Python, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ C ΠΈ C++ Π²ΠΌΠ΅ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΡΡΡΡ.
ΠΡΠΎΡΠ΅ΡΡΠΎΡΡ ΡΡΠΈΡΡΠ²Π°ΡΡ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΠΊΠΎΠ΄. ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Java ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ Π½Π° Π±Π°Π·Π΅ JVM ΠΏΡΠΎΠ΅ΠΊΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠ½ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΡ ΠΊΠΎΠ΄Π° Π² Π±Π°ΠΉΡΠΎΠ²ΡΠΉ ΠΊΠΎΠ΄ Π΄Π»Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ ΠΏΠΎΠ²Π΅ΡΡ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΠ‘. ΠΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ VM ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅Ρ ΡΡΠΈ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Ρ ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΠΈΡ Π² Π΄Π²ΠΎΠΈΡΠ½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ½ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ.
Π ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π΅ΡΡΡ ΡΠ·ΡΠΊΠΈ C/C++, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ VM, ΠΈΠ·-Π·Π° ΡΠ΅Π³ΠΎ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π³ ΠΈΠ· ΡΠΈΠΊΠ»Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΡΡΠΎ ΠΈ ΠΏΠΎΠ²ΡΡΠ°Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ. ΠΠΎΠ΄ Π½Π°ΠΏΡΡΠΌΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ ΠΈΠ· ΡΠ΅Π»ΠΎΠ²Π΅ΡΠ΅ΡΠΊΠΈ ΡΠΈΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ.
ΠΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π° ΡΠ°ΠΊΠΈΡ Π―Π β Π±ΠΎΠ»ΡΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. Π₯ΠΎΡΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ·ΡΠΊΠΎΠ² ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ° ΠΈΠ»ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΠΏΠΎΠ΄ΡΡΠ΅ΡΠ° ΡΡΡΠ»ΠΎΠΊ.
Π―Π·ΡΠΊ Go ΡΠΎΠ±ΡΠ°Π» Π² ΡΠ΅Π±Π΅ Π»ΡΡΡΠ΅Π΅ ΠΈΠ· Π²ΡΠ΅Π³ΠΎ. ΠΠ°ΠΊ ΠΈ ΡΠ·ΡΠΊΠΈ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ, Go ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌΡΠΌ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΠΎΡΡΠΈ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ Π²ΡΡΠΎΠΊΠ°Ρ, ΠΊΠ°ΠΊ ΠΈ Π² Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ ΡΠ·ΡΠΊΠ°Ρ . Π Π΅ΡΠ΅ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ° Π΄Π»Ρ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠΎΠ»ΡΡΠ΅ free() ΠΈ malloc(). Π’ΠΎ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ!
ΠΠΎΠ΄ Π½Π° Go ΠΏΡΠΎΡΡ Π² ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠΈ
Π―Π·ΡΠΊ Go Π»ΠΈΡΠ΅Π½ ΡΡΠΌΠ°ΡΡΠ΅Π΄ΡΠ΅Π³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ Π―Π, Π² Π½Π΅ΠΌ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ ΠΎΡΠ΅Π½Ρ Π°ΠΊΠΊΡΡΠ°ΡΠ½ΡΠΉ ΠΈ ΡΠΈΡΡΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ.
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Go ΡΡΠΎ ΡΡΠ»ΠΈ, ΡΠΎΠ·Π΄Π°Π²Π°Ρ ΡΠ²ΠΎΠΉ ΡΠ·ΡΠΊ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Ρ Google ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠ°Ρ ΠΊΠΎΠ΄-Π±Π°Π·Π°, Π½Π°Π΄ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΡΡΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΠ² ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ Π²ΡΠ΅Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ , ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΅Π³ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΠΎΠ±ΠΎΡΠ½ΡΡ ΡΡΡΠ΅ΠΊΡΠΎΠ² Π΄Π»Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ°ΡΡΠ΅ΠΉ. Π’Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΠ΅ΡΡΡ.
Go ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π½Π΅ ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΠΠΠ:
ΠΡΡΠ΅ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π΅Π»Π°ΡΡ Golang ΠΎΡΠ»ΠΈΡΠ½ΡΠΌ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠΌ, Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Go β ΠΏΡΠ΅Π΄Π΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΡΠΌ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΠΏΡΠ½ΠΊΡΡ Π²Π°ΠΌ ΠΈ Π½Π΅ ΠΏΠΎΠ½ΡΠ°Π²ΡΡΡΡ (ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΡΠΈΠ²ΡΠΊΠ»ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠΈΠΏΠΈΡΠ½ΡΠΌΠΈ ΡΠ·ΡΠΊΠ°ΠΌΠΈ ΠΠΠ).
ΠΠΎ ΡΡΠΎ Π½Π΅ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π²Ρ Π½Π΅ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Go. ΠΡΠ΅, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΠ°ΠΊ ΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ 2-3 ΡΡΡΠΎΠΊΠΈ ΠΊΠΎΠ΄Π°. ΠΠ°ΡΠΎ Π½Π° Π²ΡΡ ΠΎΠ΄Π΅ ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΠΊΡΠ°ΡΠΈΠ²ΡΠΌ, ΡΠΈΡΡΡΠΌ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ.
ΠΠ° Π³ΡΠ°ΡΠΈΠΊΠ΅ Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΡΠ·ΡΠΊ Go ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π΅Π½, ΠΊΠ°ΠΊ C/C++, ΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΊΠΎΠ΄Π° ΠΏΡΠΎΡΡΡΠΌ, ΠΊΠ°ΠΊ Ruby ΠΈΠ»ΠΈ Python. ΠΡΠΎ Π»ΡΡΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π΄Π»Ρ Π»ΡΠ΄Π΅ΠΉ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ².
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΏΡΠΎΡΠΈΡ Π½ΠΎΠ²ΡΡ ΡΠ·ΡΠΊΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Swift, ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Go ΡΡΠ°Π±ΠΈΠ»Π΅Π½. ΠΠ½ ΠΎΡΡΠ°Π»ΡΡ ΠΏΡΠ΅ΠΆΠ½ΠΈΠΌ Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π²ΡΠΏΡΡΠΊΠ° Π²Π΅ΡΡΠΈΠΈ 1.0, ΡΡΠΎ ΡΠΎΡΡΠΎΡΠ»ΡΡ Π² 2012 Π³ΠΎΠ΄Ρ. ΠΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΌ.
Golang ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Google
ΠΠ°, ΡΡΠΎ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΡΠΌΡΠΌ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ. ΠΠΎ Go ΡΠΎΠ·Π΄Π°Π½ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ΅ΠΉ. Google ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΊΡΡΠΏΠ½Π΅ΠΉΡΠΈΡ ΠΎΠ±Π»Π°ΡΠ½ΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡ Π² ΠΌΠΈΡΠ΅, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΡΡ.
Π―Π·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Go ΡΠΎΠ·Π΄Π°Π½ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ Google Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠΈΡ Π½ΡΠΆΠ΄, ΠΊΠ°ΡΠ°ΡΡΠΈΡ ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΠΈ. ΠΡΠΎ ΡΠ΅ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π²Ρ ΡΠΎΠΆΠ΅ ΡΡΠΎΠ»ΠΊΠ½Π΅ΡΠ΅ΡΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ².
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Go ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡΡ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡ IBM, Intel, Adobe, Medium ΠΈ BBC.
ΠΡΠ²ΠΎΠ΄Ρ
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΠ·ΡΠΊ Go ΡΠΈΠ»ΡΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ·ΡΠΊΠΎΠ², ΡΡΠΎ Π²ΡΠ΅ ΡΠΎΡ ΠΆΠ΅ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Go ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ:
ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΠ΅ ΠΎΡΠ²Π°ΠΈΠ²Π°ΡΡ ΡΠ·ΡΠΊ Go, Π²Ρ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΉ Π»ΠΈΠΌΠΈΡ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π½Π°Ρ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΡΠΈΠ»ΡΠ½ΠΎΠ΅ Π΄Π°Π²Π»Π΅Π½ΠΈΠ΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠ΄. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ½ΡΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠΆΠ΅ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π½ΠΈΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈ Π½Π° Π΄Π΅ΡΠ΅Π²ΠΎΠΌ, ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΌ ΠΆΠ΅Π»Π΅Π·Π΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ IOT), ΡΡΠΎ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΡΡΠ΅ΠΊΡ Π½Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ.
Π―Π·ΡΠΊ Go: ΡΡΠΎ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΡΡΠΈΡΡ Π΅Π³ΠΎ ΠΊΠ°ΠΊ Π²ΡΠΎΡΠΎΠΉ
Π 2009 Π³ΠΎΠ΄Ρ Π² Google ΡΠΎΠ·Π΄Π°Π»ΠΈ Π½ΠΎΠ²ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π Π°Π·Π±ΠΈΡΠ°Π΅ΠΌΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ Π±Π΅Π· ΡΡΠΎΠ³ΠΎ Π±ΡΠ»ΠΎ Π½Π΅ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ ΠΈ Π·Π° ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π»ΡΠ±ΡΡ Go.
Go ΠΈΠ»ΠΈ Golang β ΡΠ·ΡΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Π² Google Π ΠΎΠ± ΠΠ°ΠΉΠΊ ΠΈ ΠΠ΅Π½ Π’ΠΎΠΌΠΏΡΠΎΠ½, Π² ΠΏΡΠΎΡΠ»ΠΎΠΌ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ Π»Π΅Π³Π΅Π½Π΄Π°ΡΠ½ΠΎΠΉ Bell Labs. ΠΠ±Π° β ΠΊΡΠ»ΡΡΠΎΠ²ΡΠ΅ Π»ΠΈΡΠ½ΠΎΡΡΠΈ Π² Computer Science. Π Π’ΠΎΠΌΠΏΡΠΎΠ½ ΠΊ ΡΠΎΠΌΡ ΠΆΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Π΅ΠΉ ΠΠ‘ Unix ΠΈ ΡΠ·ΡΠΊΠ° B (ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΈΠΊΠ° C).
Π€Π°Π½Π°Ρ Free Software Foundation, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Linux ΠΈ Π½Π΅Π΄ΠΎΠ»ΡΠ±Π»ΠΈΠ²Π°Π΅Ρ Windows. ΠΠΈΡΠ΅Ρ ΠΈΡΡΠΎΡΠΈΠΈ ΠΏΡΠΎ ΠΊΠΎΠ΄ΠΈΠ½Π³ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Python. ΠΠ»ΡΠ±Π»Π΅Π½ Π² LISP, Π½ΠΎ ΠΏΠΎΠΊΠ° ΡΡΠΎ Π½Π΅ ΡΠΌΠ΅Π΅Ρ Π½Π° Π½Π΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ.
ΠΡ Π·Π΄ΡΠ°Π²ΡΡΠ²ΡΠΉ, Go: ΠΏΠΈΡΠ΅ΠΌ Π½Π°ΡΡ ΠΏΠ΅ΡΠ²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ΠΠΎ ΡΡΠ°Π΄ΠΈΡΠΈΠΈ ΡΡΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Β« Hello, World!Β». Π ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ β ΡΠ°Π·Π±ΠΎΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°:
ΠΠ°ΠΊΠΈΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ Π΅ΡΡΡ Π² Go
Go β ΡΠ·ΡΠΊ ΡΠΎ ΡΡΡΠΎΠ³ΠΎΠΉ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠ΅ΠΉ, ΡΠΎ Π΅ΡΡΡ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΉ ΡΠΈΠΏ ΠΈ ΠΌΠ΅Π½ΡΡΡ Π΅Π³ΠΎ Π½Π΅Π»ΡΠ·Ρ. Π‘ΡΠ°Π²Π½ΠΈΠΌ Ρ PHP:
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ Π½Π° Π»Π΅ΡΡ ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΡΠΎΠ²Π΅Π»ΠΈ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ ΡΡΡΠΎΠΊΠΎΠΉ ΠΈ ΡΠ΅Π»ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ. Π ΡΠ·ΡΠΊΠ΅ Go ΡΡΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ β Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π° ΠΊΠ°ΠΊ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ, ΡΠ°ΠΊΠΎΠΉ ΠΎΠ½Π° ΠΈ ΠΎΡΡΠ°Π½Π΅ΡΡΡ Π½Π° ΠΏΡΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ Π²ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. Π Π΅ΡΠ»ΠΈ ΠΏΠΎΠΏΡΡΠ°Π΅ΠΌΡΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ Π² Π½Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° β ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Go ΠΏΠΎΠ΄ΡΠΊΠ°ΠΆΠ΅Ρ, ΡΡΠΎ Ρ Π½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ°.
Π ΡΠ·ΡΠΊΠ΅ Π΅ΡΡΡ 11 ΡΠΈΠΏΠΎΠ² ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π». ΠΠ½ΠΈ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ Π±ΠΈΡ, ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠΎΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠΈΠΏ byte Π΄Π»Ρ Π΄Π²ΠΎΠΈΡΠ½ΡΡ ΡΠΈΡΠ΅Π») ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠΌ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, uintptr Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ). ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΅ΡΡΡ ΡΠΈΡΠ»Π° Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ, ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡΠ΅ ΡΠΈΡΠ»Π°, Π±ΡΠ»Π΅Π²Ρ ΡΠΈΡΠ»Π°, ΡΡΡΠΎΠΊΠΈ ΠΈ ΡΡΠΈ ΡΠΈΠΏΠ° ΡΠΈΡΠ΅Π» Ρ Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π»ΡΠ±ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΡΠΌΠΎΠΌ ΠΏΠ°ΠΌΡΡΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°.
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π² Go ΠΎΠ±ΡΡΠ²Π»ΡΡΡΡΡ Π² ΡΡΠΈΠ»Π΅ ΠΠ°ΡΠΊΠ°Π»Ρ β ΡΠ΅ΡΠ΅Π· ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ var, Π° ΡΠ°ΠΌΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΠ°ΡΡ Ρ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ:
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ Π² Go β Π·Π½Π°ΠΊ Β«ΡΠ°Π²Π½ΠΎΒ»:
ΠΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌ Π² Go: Π³ΠΎΡΡΡΠΈΠ½Ρ, ΠΊΠ°Π½Π°Π»Ρ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ
ΠΡΡ ΠΎΠ΄Π½ΠΎ Π²Π°ΠΆΠ½ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Go β ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ. Π’ΡΡ ΠΏΡΠΈΠ΄ΡΡΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ³ΡΡΠ·ΠΈΡΡΡΡ Π² ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ.
Π 1965 Π³ΠΎΠ΄Ρ ΠΠΎΡΠ΄ΠΎΠ½ ΠΡΡ, ΠΎΡΠ½ΠΎΠ²Π°ΡΠ΅Π»Ρ Intel, ΡΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°Π» Π·Π°ΠΊΠΎΠ½: ΠΊΠ°ΠΆΠ΄ΡΠ΅ Π΄Π²Π° Π³ΠΎΠ΄Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ°Π½Π·ΠΈΡΡΠΎΡΠΎΠ² Π½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΡ Π΅ΠΌΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π²Π°ΠΈΠ²Π°ΡΡΡΡ. ΠΠΈΠΊΠ°ΠΊΠΈΡ Π½Π°ΡΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ ΡΠΎΡΠΌΡΠ» Π·Π° Π½ΠΈΠΌ Π½Π΅Ρ β ΠΏΡΠΎΡΡΠΎ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅. Π Π΄ΠΎ XXI Π²Π΅ΠΊΠ° Β«Π·Π°ΠΊΠΎΠ½ ΠΡΡΠ°Β» ΡΠ°Π±ΠΎΡΠ°Π» ΠΈΡΠΏΡΠ°Π²Π½ΠΎ. ΠΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΠΏΠΎΡΠ»Π΅ Pentium 4 ΡΡΠ°Π»ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΠΎ: Π΅ΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ, ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ Π±ΡΠ΄ΡΡ Π½Π°Π³ΡΠ΅Π²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΡΠ²Π΅ΡΡ Π½ΠΎΠ²Π°Ρ. Π’ΠΎΠ³Π΄Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΈ Π½Π°ΡΠ°Π»ΠΈ Π΄Π΅Π»Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄Π΅ΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ β ΡΠ°ΠΊΡΠΎΠ²Π°Ρ ΡΠ°ΡΡΠΎΡΠ° ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ°Π½Π·ΠΈΡΡΠΎΡΠΎΠ² ΠΏΠΎΡΡΠΈ Π½Π΅ ΠΌΠ΅Π½ΡΠ»ΠΈΡΡ, Π° ΡΡΠΌΠΌΠ°ΡΠ½ΠΎΠ΅ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΡΠΎΡΠ»ΠΎ.
Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ°ΠΊΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ², ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π°Π΄ΠΎ ΡΡΠ°Π·Ρ ΠΏΠΈΡΠ°ΡΡ Ρ ΡΠ°ΡΡΡΡΠΎΠΌ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄Π΅ΡΠ½ΠΎΡΡΡ. Π Go Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΡΡΠ½ΠΎΡΡΠΈ: Π³ΠΎΡΡΡΠΈΠ½Ρ ΠΈ ΠΊΠ°Π½Π°Π»Ρ.
ΠΠΎΡΡΡΠΈΠ½Ρ
ΠΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ, ΡΠΎ Π΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. Π§ΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ Π³ΠΎΡΡΡΠΈΠ½Ρ, Π½Π°Π΄ΠΎ ΠΏΡΠΎΡΡΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΠ΅ΡΠ΅Π΄ Π½Π΅ΠΉ go.
ΠΠΎΡ ΠΊΠ°ΠΊ ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ:
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ β ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ Π²ΡΠ·ΠΎΠ², Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° Π·Π°Π΄Π΅ΡΠΆΠΊΡ time. Sleep (10), ΠΎΠ±Π΅ΠΈΡ Π³ΠΎΡΡΡΠΈΠ½. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π² Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π±Π΅ΡΡΠΌΡΡΠ»Π΅Π½Π½ΠΎ, Π° Π²ΠΎΡ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΉ β ΠΎΡΠ΅Π½Ρ Π΄Π°ΠΆΠ΅ ΠΎΠΏΡΠ°Π²Π΄Π°Π½ΠΎ. ΠΠΊΠΎΠ½ΠΎΠΌΠΈΡΡΡ Π²ΡΠ΅ΠΌΡ ΠΈ ΡΠ΅ΡΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎ.
ΠΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Π³ΠΎΡΡΡΠΈΠ½ Π² Go ΡΠ»Π΅Π΄ΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ: ΠΎΠ½Π° ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ ΡΠ΄ΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡ ΡΠΈΡΠ»ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΡΠ΄Π΅Ρ. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π³ΠΎΡΡΡΠΈΠ½ β Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°, β ΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΡΠ°ΡΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ Π²ΡΡΡΠ½ΡΡ.
ΠΠ°Π½Π°Π»Ρ
ΠΡΠΎ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ ΠΎΠ±ΡΠ΅Π³ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π΄Π°Π½Π½ΡΡ . ΠΠ°Π½Π°Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΊΠ°ΠΊ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π³ΠΎΡΡΡΠΈΠ½ ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΠΈΠΌ ΠΎΠ±ΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ ΠΈ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ Π΄Π°Π½Π½ΡΠΌΠΈ. Π ΠΊΠ°Π½Π°Π»Π°Ρ Π΅ΡΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° β ΡΡΠΎΠ±Ρ ΡΠ°Π·Π½ΡΠ΅ Π³ΠΎΡΡΡΠΈΠ½Ρ Π½Π΅ ΡΠΌΠΎΠ³Π»ΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π·Π°ΠΊΠΈΠ½ΡΡΡ ΡΡΠ΄Π° ΡΠ°Π·Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ ΠΊΠ°Π½Π°Π»ΠΎΠ²: ΠΎΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ ΠΈ ΡΡΠΈΡΡΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, int β ΡΠ΅Π»ΡΠ΅ ΡΠΈΡΠ»Π°.
ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ ΠΈ ΡΡΠ°Π·Ρ Π·Π°Π΄Π°ΡΠΌ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ . ΠΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠ°Π½Π°Π»Π° Π±ΡΠ΄Π΅Ρ Π΅Π³ΠΎ Π°Π΄ΡΠ΅Ρ Π² ΠΏΠ°ΠΌΡΡΠΈ (Π²ΡΠ²ΠΎΠ΄ Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° Printf).
Π’Π΅ΠΏΠ΅ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΠΌ Π³ΠΎΡΡΡΠΈΠ½Ρ ΠΈ ΠΊΠ°Π½Π°Π»:
Π ΡΠ΅ΠΉΡΠ°Ρ ΡΠ»Π΅Π΄ΠΈΡΠ΅ Π·Π° ΡΡΠΊΠ°ΠΌΠΈ β Π±ΡΠ΄Π΅ΠΌ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄:
Π ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ ΠΎΡΠ»ΠΈΡΠ½ΠΎ Π²ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΈ ΡΠ·ΡΠΊ Go Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π΅Ρ. Π Π½ΡΠΌ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΠΠ ΠΈ Π²ΡΡ ΡΠ°ΠΊΠΎΠ΅. ΠΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΊΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΠ° Π΄Π΅Π»Π°Π΅Ρ Golang ΠΌΠΎΡΠ½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Π΄Π»Ρ Π²ΡΡΠΎΠΊΠΎΠ½Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ, ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΈ ΡΠ»ΠΎΠΆΠ½ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ.