АлСксСй Найдёнов. ITooLabs. КСйс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Go (Golang) Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π§Π°ΡΡ‚ΡŒ 1

АлСксСй Найдёнов, CEO ITooLabs, рассказываСт ΠΏΡ€ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Ρ‚Π΅Π»Π΅ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ для ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² связи Π½Π° языкС программирования Go (Golang). АлСксСй Ρ‚Π°ΠΊΠΆΠ΅ дСлится ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ развСртывания ΠΈ эксплуатации ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΊΡ€ΡƒΠΏΠ½Π΅ΠΉΡˆΠΈΡ… азиатских ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² связи, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ использовал ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ для оказания услуг голосовой ΠΏΠΎΡ‡Ρ‚Ρ‹ (VoiceMail) ΠΈ Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ АВБ (Cloud PBX).

АлСксСй Найдёнов. ITooLabs. КСйс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Go (Golang) Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π§Π°ΡΡ‚ΡŒ 1

АлСксСй Найдёнов (Π΄Π°Π»Π΅Π΅ – АН): – ВсСм ΠΏΡ€ΠΈΠ²Π΅Ρ‚! МСня Π·ΠΎΠ²ΡƒΡ‚ АлСксСй Найдёнов. Π― – Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ITooLabs. ΠŸΠ΅Ρ€Π²ΠΎ-Π½Π°ΠΏΠ΅Ρ€Π²ΠΎ я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ здСсь дСлаю ΠΈ ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ здСсь оказался.

Если Π²Ρ‹ посмотритС Bitrix24 Marketplace (Ρ€Π°Π·Π΄Π΅Π» «ВСлСфония»), Ρ‚ΠΎ 14 ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ 36, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π°ΠΌ Π΅ΡΡ‚ΡŒ (40%) – это ΠΌΡ‹:

АлСксСй Найдёнов. ITooLabs. КСйс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Go (Golang) Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π§Π°ΡΡ‚ΡŒ 1

Π’ΠΎΡ‡Π½Π΅Π΅ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, это наши ΠΏΠ°Ρ€Ρ‚Π½Ρ‘Ρ€Ρ‹-ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, Π½ΠΎ Π·Π° всСм этим стоит наша ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° (Platform as a Service) – Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΈΠΌ ΠΏΡ€ΠΎΠ΄Π°Ρ‘ΠΌ Π·Π° Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΊΠΎΠΏΠ΅Π΅Ρ‡ΠΊΡƒ. БобствСнно, ΠΎ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠΈ этой ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΏΡ€ΠΈΡˆΠ»ΠΈ Π² Go, я Π±Ρ‹ ΠΈ Ρ…ΠΎΡ‚Π΅Π» Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ.

Π¦ΠΈΡ„Ρ€Ρ‹ ΠΏΠΎ нашСй ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ сСйчас:

АлСксСй Найдёнов. ITooLabs. КСйс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Go (Golang) Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π§Π°ΡΡ‚ΡŒ 1

44 ΠΏΠ°Ρ€Ρ‚Π½Ρ‘Ρ€Π°-ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Β«ΠœΠ΅Π³Π°Ρ„ΠΎΠ½Β». ΠœΡ‹, Π²ΠΎΠΎΠ±Ρ‰Π΅ говоря, ΠΎΡ‡Π΅Π½ΡŒ любим ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ Π² Ρ€Π°Π·Π½Ρ‹Π΅ Π°Π²Π°Π½Ρ‚ΡŽΡ€Ρ‹, ΠΈ Ρƒ нас Π΅ΡΡ‚ΡŒ фактичСский доступ ΠΊ 100 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°ΠΌ Π°Π±ΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² 44 ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² здСсь, Π² России. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ссли Ρƒ ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ бизнСс-ΠΈΠ΄Π΅ΠΈ, ΠΌΡ‹ всСгда ΠΈΡ… с Ρ€Π°Π΄ΠΎΡΡ‚ΡŒΡŽ Π²Ρ‹ΡΠ»ΡƒΡˆΠ°Π΅ΠΌ.

  • 5000 ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ-ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.
  • 20Β 000 Π°Π±ΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π² суммС. Π­Ρ‚ΠΎ всё b2b – ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с компаниями.
  • 300 Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Π² ΠΌΠΈΠ½ΡƒΡ‚Ρƒ Π΄Π½Ρ‘ΠΌ.
  • 100 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² ΠΌΠΈΠ½ΡƒΡ‚ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Π·Π° ΠΏΡ€ΠΎΡˆΠ»Ρ‹ΠΉ Π³ΠΎΠ΄ (ΠΌΡ‹ это ΠΎΡ‚ΠΏΡ€Π°Π·Π΄Π½ΠΎΠ²Π°Π»ΠΈ). Π­Ρ‚ΠΎ Π±Π΅Π· ΡƒΡ‡Ρ‘Ρ‚Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ΠΏΠ΅Ρ€Π΅Π³ΠΎΠ²ΠΎΡ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅ΡΡ‚ΡŒ Π½Π° нашСй ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅.

Как это Π½Π°Ρ‡ΠΈΠ½Π°Π»ΠΎΡΡŒ?

Как Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Ρ‡ΡƒΠ²Π°ΠΊΠΈ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ свою ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ? Надо Π΅Ρ‰Ρ‘ ΡƒΡ‡Π΅ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ нас Π² Π°Π½Π°ΠΌΠ½Π΅Π·Π΅ Π±Ρ‹Π»Π° Β«Ρ…Π°Ρ€Π΄ΠΊΠΎΡ€-ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π°ΠΉΠ·Β» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, Π΄Π° Π΅Ρ‰Ρ‘ ΠΈ Π² самоС Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ для enterprise врСмя Π³ΠΎΠ΄Π°! Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Ρ‚ΠΎ счастливоС врСмя, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡˆΡŒ ΠΊ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΡƒ ΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΡˆΡŒ: «Нам Π½ΡƒΠΆΠ½ΠΎ Π΅Ρ‰Ρ‘ ΠΏΠ°Ρ€Ρƒ сСрвСров». А Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊ: Β«Π”Π° Π½Π΅ вопрос! Π£ нас дСсятка Π² стойкС стоит».

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ занимались Oracle, Java, WebSphere, Db2 ΠΈ всё Ρ‚Π°ΠΊΠΎΠ΅. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ взяли, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π»ΡƒΡ‡ΡˆΠΈΠ΅ вСндорскиС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ΠΈΡ… ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π»ΠΈ с этим Π²Π·Π»Π΅Ρ‚Π΅Ρ‚ΡŒ. Гуляли Π½Π° свои. Π­Ρ‚ΠΎ Π±Ρ‹ Ρ‚Π°ΠΊΠΎΠΉ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ стартап.

Всё это Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π°Ρ‡Π°Π»ΠΎΡΡŒ Π² 2009 Π³ΠΎΠ΄Ρƒ. Π‘ 2006-Π³ΠΎ ΠΌΡ‹ ΠΏΠ»ΠΎΡ‚Π½ΠΎ занимаСмся опСраторскими Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ, Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅. Π‘Π΄Π΅Π»Π°Π»ΠΈ нСсколько Π·Π°ΠΊΠ°Π·Π½Ρ‹Ρ… Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… АВБ (Π²Ρ€ΠΎΠ΄Π΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Ρƒ нас сСйчас имССтся Π½Π° Π·Π°ΠΊΠ°Π·): посмотрСли, Ρ€Π΅ΡˆΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ это Ρ…ΠΎΡ€ΠΎΡˆΠΎ, ΠΈ Ρ€Π΅ΡˆΠΈΠ»ΠΈ Π·Π°ΠΌΡƒΡ‚ΠΈΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ стартап.

АлСксСй Найдёнов. ITooLabs. КСйс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Go (Golang) Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π§Π°ΡΡ‚ΡŒ 1

Взяли VMWare. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ гуляли Π½Π° свои, Ρ‚ΠΎ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ сразу ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ ΠΊΡ€ΡƒΡ‚ΠΎΠ³ΠΎ вСндорского Storage. ΠœΡ‹ всё ΠΏΡ€ΠΎ Π½ΠΈΡ… Π·Π½Π°Π΅ΠΌ: Ρ‡Ρ‚ΠΎ обСщания Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° 3, Π° ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ ΡƒΠΌΠ½ΠΎΠΆΠ°Ρ‚ΡŒ Π½Π° 10. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΄Π΅Π»Π°Π»ΠΈ DirDB ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

ΠŸΠΎΡ‚ΠΎΠΌ ΠΎΠ½ΠΎ Π½Π°Ρ‡Π°Π»ΠΎ расти. К этому добавился сСрвис Π±ΠΈΠ»Π»ΠΈΠ½Π³Π°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° пСрСстала ΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ. Π—Π°Ρ‚Π΅ΠΌ сСрСр Π±ΠΈΠ»Π»ΠΈΠ½Π³Π° с MySQL ΡƒΡˆΡ‘Π» Π½Π° Mongo. Π’ ΠΈΡ‚ΠΎΠ³Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ всС Π²Ρ‹Π·ΠΎΠ²Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚ΡƒΠ΄Π° ΠΈΠ΄ΡƒΡ‚:

АлСксСй Найдёнов. ITooLabs. КСйс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Go (Golang) Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π§Π°ΡΡ‚ΡŒ 1

Но Π³Π΄Π΅-Ρ‚ΠΎ Ρ‚Π°ΠΌ, Π²Π½ΡƒΡ‚Ρ€ΠΈ, крутится Ρ‚ΠΎΡ‚ самый вСндорский ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ – Π³Π»Π°Π²Π½Ρ‹ΠΉ, ядСрный, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΠΊΠΎΠ³Π΄Π°-Ρ‚ΠΎ взяли. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΊ ΠΊΠΎΠ½Ρ†Ρƒ 2011 Π³ΠΎΠ΄Π° ΠΌΡ‹ для сСбя поняли, Ρ‡Ρ‚ΠΎ Π³Π»Π°Π²Π½Ρ‹ΠΌ Π±ΡƒΡ‚Ρ‹Π»ΠΎΡ‡Π½Ρ‹ΠΌ Π³ΠΎΡ€Π»Ρ‹ΡˆΠΊΠΎΠΌ для нас, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ этот ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ – ΠΌΡ‹ Π² Π½Π΅Π³ΠΎ упрёмся. ΠœΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ собой стСну, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±Π΅ΠΆΠ°Π»ΠΈ Π½Π° ΠΏΠΎΠ»Π½ΠΎΠΌ скаку, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ шли, добавлялись.
БоотвСтствСнно, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΡ‹ ΠΏΡ€ΠΎΠ²Π΅Π»ΠΈ довольно Π΄ΠΎΠ»Π³ΠΈΠ΅ исслСдования ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² – ΠΈ open source, ΠΈ вСндорских. Π― Π½Π΅ Π±ΡƒΠ΄Ρƒ сСйчас Π½Π° этом ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ – Π½Π΅ ΠΎ Ρ‚ΠΎΠΌ Ρ€Π΅Ρ‡ΡŒ. Π‘Π°ΠΌΡ‹ΠΉ послСдний запасной Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ Π΄ΡƒΠΌΠ°Π»ΠΈ – это Π΄Π΅Π»Π°Ρ‚ΡŒ свою ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ.

Π’ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ ΠΌΡ‹ ΠΏΡ€ΠΈΡˆΠ»ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊ этому Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρƒ. ΠŸΠΎΡ‡Π΅ΠΌΡƒ? ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ всС вСндорскиС ΠΈ open source ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹ дСлались для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ 10-Π»Π΅Ρ‚Π½Π΅ΠΉ давности. Π₯ΠΎΡ€ΠΎΡˆΠΎ, Ссли 10-Π»Π΅Ρ‚Π½Π΅ΠΉ, Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈ большС! Для нас стал ΠΎΡ‡Π΅Π²ΠΈΠ΄Π΅Π½ Π²Ρ‹Π±ΠΎΡ€: Π»ΠΈΠ±ΠΎ ΠΌΡ‹ прощаСмся с нашСй прСкрасной ΠΈΠ΄Π΅Π΅ΠΉ ΠΎΠ± идСальной услугС (для ΠΏΠ°Ρ€Ρ‚Π½Ρ‘Ρ€ΠΎΠ², ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ сСбя), Π»ΠΈΠ±ΠΎ ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ своё.

ΠœΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ своё!

ВрСбования ΠΊ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅

Если Π΄ΠΎΠ»Π³ΠΎ Ρ‡Π΅ΠΌ-Ρ‚ΠΎ занимаСшься (ΡΠΊΡΠΏΠ»ΡƒΠ°Ρ‚ΠΈΡ€ΡƒΠ΅ΡˆΡŒ Ρ‡ΡƒΠΆΠΎΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚), Ρ‚ΠΎ Π² Π³ΠΎΠ»ΠΎΠ²Π΅ ΠΏΠΎΡ‚ΠΈΡ…ΠΎΠ½ΡŒΠΊΡƒ ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΌΡ‹ΡΠ»ΡŒ: Π° ΠΊΠ°ΠΊ Π±Ρ‹ я это сдСлал сам? ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ всС программисты (ΠΊΡ€ΠΎΠΌΠ΅ ΠΏΡ€ΠΎΠ΄Π°Π²Ρ†ΠΎΠ², Π½Π΅ программистов Π½Π΅Ρ‚), Ρ‚ΠΎ трСбования Ρƒ нас слоТились Π΄Π°Π²Π½ΠΎ, ΠΈ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ понятны:

  1. Высокая ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ВСндорский ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ нас ΠΌΡƒΡ‡ΠΈΠ», Π½Π΅ устраивал Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ всё ΠΏΠΎΠ»ΡƒΡ‡Π°Π»ΠΎΡΡŒ Π΄ΠΎΠ»Π³ΠΎ ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ. ΠœΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ быстро – Ρƒ нас Π±Ρ‹Π»ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ΄Π΅ΠΉ! Π£ нас ΠΈ сСйчас ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ΄Π΅ΠΉ, Π½ΠΎ Ρ‚ΠΎΠ³Π΄Π° список ΠΈΠ΄Π΅ΠΉ Π±Ρ‹Π» Ρ‚Π°ΠΊΠΎΠΉ, Ρ‡Ρ‚ΠΎ казалось, Π±ΡƒΠ΄Ρ‚ΠΎ Π²ΠΏΠ΅Ρ€Ρ‘Π΄ Π»Π΅Ρ‚ Π½Π° Π΄Π΅ΡΡΡ‚ΡŒ. БСйчас Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Π³ΠΎΠ΄.
  2. Максимальная утилизация многоядСрного ΠΆΠ΅Π»Π΅Π·Π°. Π­Ρ‚ΠΎ Ρ‚ΠΎΠΆΠ΅ для нас Π±Ρ‹Π»ΠΎ Π²Π°ΠΆΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ, Ρ‡Ρ‚ΠΎ ядСр Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ большС ΠΈ большС.
  3. Высокая Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎΡΡ‚ΡŒ. Π’ΠΎ, с Ρ‡Π΅ΠΌ ΠΌΡ‹ Ρ‚ΠΎΠΆΠ΅ наплакались.
  4. Высокая ΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ ΠΊ сбоям.
  5. ΠœΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΠΏΡ€ΠΈΠΉΡ‚ΠΈ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ ΠΊ процСссу с Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½Ρ‹ΠΌΠΈ Ρ€Π΅Π»ΠΈΠ·Π°ΠΌΠΈ. Для этого Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ Π±Ρ‹Π» Π²Ρ‹Π±ΠΎΡ€ языка.

АлСксСй Найдёнов. ITooLabs. КСйс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Go (Golang) Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π§Π°ΡΡ‚ΡŒ 1

БоотвСтствСнно, ΠΈΠ· Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ для сСбя ΠΏΡ€Π΅Π΄ΡŠΡΠ²ΠΈΠ»ΠΈ, Π²Ρ‹Ρ€Π°ΡΡ‚Π°ΡŽΡ‚ явно Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ трСбования ΠΊ языку.

  1. Если ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΡΠ΄Π΅Ρ€Π½Ρ‹Ρ… систСм, Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ выполнСния.
  2. Если Π½Π°ΠΌ Π½ΡƒΠΆΠ½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ – Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ язык с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΎΠ³ΠΎ программирования. Если ΠΊΡ‚ΠΎ Π½Π΅ сталкивался с Ρ€Π°Π·Π½ΠΈΡ†Π΅ΠΉ, Ρ‚ΠΎ ΠΎΠ½Π° ΠΎΡ‡Π΅Π½ΡŒ простая:
    • ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ – это ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π΄Π²Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠ° Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ядрах;
    • ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Ρ‚ΠΎΡ‡Π½Π΅Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° конкурСнтности – это ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ язык (ΠΈΠ»ΠΈ runtime, Π½Π΅Π²Π°ΠΆΠ½ΠΎ) ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡΠΊΡ€Ρ‹Ρ‚ΡŒ всю ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, которая Π²Ρ‹Ρ‚Π΅ΠΊΠ°Π΅Ρ‚ ΠΈΠ· ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ выполнСния.
  3. Высокая ΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ Π±Ρ‹Π» кластСр, ΠΏΡ€ΠΈΡ‡Ρ‘ΠΌ Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ Ρƒ нас Π±Ρ‹Π» Π½Π° вСндорском ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π΅.

АлСксСй Найдёнов. ITooLabs. КСйс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Go (Golang) Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π§Π°ΡΡ‚ΡŒ 1

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Ρƒ нас Π±Ρ‹Π»ΠΎ Π½Π΅ Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π° самом Π΄Π΅Π»Π΅, Ссли Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Β«Π­Ρ€Π»Π°Π½Π³Β» – ΠΌΡ‹ Π΅Π³ΠΎ любим ΠΈ Π·Π½Π°Π΅ΠΌ, это Π±Ρ‹Π» ΠΌΠΎΠΉ Π»ΠΈΡ‡Π½Ρ‹ΠΉ, ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°Π²ΠΎΡ€ΠΈΡ‚. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Java – Π΄Π°ΠΆΠ΅ Π½Π΅ Java, Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Scala. Π’-Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ…, язык, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π° Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΌΡ‹ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Π·Π½Π°Π»ΠΈ – Go. Он Ρ‚ΠΎΠ³Π΄Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ-Ρ‚ΠΎΠ»ΡŒΠΊΠΎ появился, Ρ‚ΠΎΡ‡Π½Π΅Π΅, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π΄Π²Π° Π³ΠΎΠ΄Π° ΡƒΠΆΠ΅ сущСствовал, Π½ΠΎ Π΅Ρ‰Ρ‘ Π½Π΅ Π²Ρ‹ΡˆΠ΅Π» Π² Ρ€Π΅Π»ΠΈΠ·.

ПобСдил Go!

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ Go

ΠœΡ‹ сдСлали ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ Π½Π° Π½Ρ‘ΠΌ. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΡŽ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ.

ΠšΡ€Π°Ρ‚ΠΊΠ°Ρ история Go. Π‘Ρ‚Π°Ρ€Ρ‚ΠΎΠ²Π°Π» Π² 2007-ΠΌ, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ Π² 2009-ΠΌ, пСрвая вСрсия Π²Ρ‹ΡˆΠ»Π° Π² 2012-ΠΌ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΡ‹ Π½Π°Ρ‡Π°Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ Π΄ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Ρ€Π΅Π»ΠΈΠ·Π°). Π˜Π½ΠΈΡ†ΠΈΠ°Ρ‚ΠΎΡ€ΠΎΠΌ выступал Google, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ…ΠΎΡ‚Π΅Π» Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρƒ сСбя, ΠΊΠ°ΠΊ я ΠΏΠΎΠ΄ΠΎΠ·Ρ€Π΅Π²Π°ΡŽ, Java.

Авторы – вСсьма ΠΈΠΌΠ΅Π½ΠΈΡ‚Ρ‹:

  • КСн Вомсон, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ стоял Π·Π° Unix’ом, ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π» UTF-8, Ρ€Π°Π±ΠΎΡ‚Π°Π» Π½Π°Π΄ систСмой Plan 9;
  • Π ΠΎΠ± Пайк, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ вмСстС с КСном ΠΏΡ€ΠΈΠ΄ΡƒΠΌΡ‹Π²Π°Π» UTF-8, Ρ‚ΠΎΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π» Π½Π°Π΄ Plan 9, Π½Π°Π΄ Inferno, Limbo Π² Bell Labs;
  • Π ΠΎΠ±Π΅Ρ€Ρ‚ Π“ΠΈΠ·ΠΌΠ΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ ΠΈ любим Π·Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π» Java HotSpot Compiler, ΠΈ Π·Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π» Π½Π°Π΄ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ Π² V8 (ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π΅ Javascript’а ΠΎΡ‚ Google);
  • И Π±ΠΎΠ»Π΅Π΅ 700 участников, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ наши ΠΏΠ°Ρ‚Ρ‡ΠΈ.

АлСксСй Найдёнов. ITooLabs. КСйс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Go (Golang) Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π§Π°ΡΡ‚ΡŒ 1

Go: ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд

ΠœΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ язык Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ простой, понятный. Π£ нас Π΅ΡΡ‚ΡŒ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹: Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях ΠΈΡ… Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ, Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… – Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ (это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Ρ‚ΠΈΠΏΡ‹ выводятся, Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅).

АлСксСй Найдёнов. ITooLabs. КСйс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Go (Golang) Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π§Π°ΡΡ‚ΡŒ 1

Π’ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ΄Π½ΠΎ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ структуры. Π’ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ понятиС указатСля (Ρ‚Π°ΠΌ, Π³Π΄Π΅ Π·Π²Ρ‘Π·Π΄ΠΎΡ‡ΠΊΠ°). Π’ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° для объявлСния ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ массивов ΠΈ ассоциативных массивов.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ понятно – ΠΆΠΈΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ. ΠŸΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Hello, world:

АлСксСй Найдёнов. ITooLabs. КСйс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Go (Golang) Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π§Π°ΡΡ‚ΡŒ 1

Π§Ρ‚ΠΎ Π²ΠΈΠ΄ΠΈΠΌ? Π­Ρ‚ΠΎ Π‘ΠΈ-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ синтаксис, Ρ‚ΠΎΡ‡ΠΊΠ° с запятой Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Π°. Она ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ для Π΄Π²ΡƒΡ… строк, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли это Π΄Π²Π΅ конструкции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ строкС.

Π’ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ скобки Π² ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… структурах (Π² 14-ΠΉ строкС) Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹, Π° Π²ΠΎΡ‚ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ всСгда. Π’ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ типизация статичСская. Π’ΠΈΠΌ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв выводится. Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‡ΡƒΡ‚ΡŒ слоТнСС ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ Hello, world – просто для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°.

Π§Ρ‚ΠΎ Π΅Ρ‰Ρ‘ Π²ΠΈΠ΄ΠΈΠΌ Π²Π°ΠΆΠ½ΠΎΠ³ΠΎ? Код ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹. И для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² своём собствСнном ΠΊΠΎΠ΄Π΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΅Π³ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ import – это Ρ‚ΠΎΠΆΠ΅ Π²Π°ΠΆΠ½ΠΎ. ЗапускаСм – Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ!

ΠŸΡ€ΠΎΠ±ΡƒΠ΅ΠΌ дальшС Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ послоТнСС: Hello, world, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ это http-сСрвСр. Π§Ρ‚ΠΎ Π²ΠΈΠ΄ΠΈΠΌ интСрСсного здСсь?

АлСксСй Найдёнов. ITooLabs. КСйс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Go (Golang) Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π§Π°ΡΡ‚ΡŒ 1

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, функция выступаСт ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ функция Ρƒ нас – «пСрвоклассный Π³Ρ€Π°ΠΆΠ΄Π°Π½ΠΈΠ½Β» ΠΈ с Π½ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ всСго интСрСсного Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ стилС. Π’ΠΈΠ΄ΠΈΠΌ Π΄Π°Π»Π΅Π΅ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠ΅: Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° import ссылаСтся нСпосрСдствСнно Π½Π° Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ GitHub. Всё Π²Π΅Ρ€Π½ΠΎ, Ρ‚Π°ΠΊ ΠΈ Π΅ΡΡ‚ΡŒ – Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‚Π°ΠΊ ΠΈ Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ.

Π’ Go ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π° являСтся url Π΅Π³ΠΎ рСпозитория. Π•ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° Goget, которая сходит Π·Π° всСми зависимостями, скачаСт ΠΈΡ…, установит, скомпилируСт ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ ΠΊ использованию, Ссли это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ. ΠŸΡ€ΠΈ этом Goget Π·Π½Π°Π΅Ρ‚ ΠΏΡ€ΠΎ html-meta. БоотвСтствСнно, ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ http-ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄ΡƒΡ‚ ссылки Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ свой Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ (ΠΊΠ°ΠΊ ΠΌΡ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π΅Π»Π°Π΅ΠΌ).

Π§Ρ‚ΠΎ ΠΌΡ‹ Π΅Ρ‰Ρ‘ Π²ΠΈΠ΄ΠΈΠΌ? Http ΠΈ Json Π² ΡˆΡ‚Π°Ρ‚Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅. Π•ΡΡ‚ΡŒ, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, интроспСкция – reflection, которая Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² encoding/json, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΅ΠΌΡƒ подставляСм просто ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

ЗапускаСм ΠΈ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ нас Π² 20 строк улоТился ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ компилируСтся, запускаСтся ΠΈ ΠΎΡ‚Π΄Π°Ρ‘Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΡΡ€Π΅Π΄Π½ΡŽΡŽ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ (Π½Π° машинС, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ Π·Π°ΠΏΡƒΡ‰Π΅Π½).
Π§Ρ‚ΠΎ Π΅Ρ‰Ρ‘ Π²Π°ΠΆΠ½ΠΎ ΠΈΠ· Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ здСсь сразу ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ? Оно компилируСтся Π² ΠΎΠ΄ΠΈΠ½ статичСский Π±ΠΈΠ½Π°Ρ€Π½ΠΈΠΊ (buinary). Π£ этого Π±ΠΈΠ½Π°Ρ€Π½ΠΈΠΊΠ° Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… зависимостСй, Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ! Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Π»ΡŽΠ±ΡƒΡŽ систСму, сразу Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ, ΠΈ ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

ДвигаСмся дальшС.

Go: ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ интСрфСйсы

Π£ Go Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ для любого ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. ΠŸΡ€ΠΈΡ‚ΠΎΠΌ это Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ структура, Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ alias ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ Ρ‚ΠΈΠΏΠ°. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ alias для N32 ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ для Π½Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅.

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

Вопрос! Π§Ρ‚ΠΎ ΠΆΠ΅ компания Π°Π²Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΠΎΠ΄ руководством Google Π΄Π°Π»Π° Π½Π°ΠΌ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ всю ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΠΈΡ€Π°? Нам Π΄Π°Π»ΠΈ интСрфСйсы!

АлСксСй Найдёнов. ITooLabs. КСйс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Go (Golang) Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π§Π°ΡΡ‚ΡŒ 1

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ – это Ρ‚Π°ΠΊΠΎΠΉ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ просто ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, сигнатуры ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Π”Π°Π»ΡŒΡˆΠ΅ любой Ρ‚ΠΈΠΏ, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ эти ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ (Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ), Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ этому интСрфСйсу. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, для Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ соотвСтствуСт Ρ‚ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ интСрфСйса). Π”Π°Π»ΡŒΡˆΠ΅ – ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΈΠΏΠ° этого интСрфСйса ΠΈ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π΅ΠΉ любой ΠΈΠ· этих ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

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

И Π΅ΡΡ‚ΡŒ Π² Go, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° void. Π‘Π»ΠΎΠ²ΠΎ interface {} (с двумя Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹ΠΌΠΈ скобками) – это пСрСмСнная, которая позволяСт ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π° любой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅.
Пока Ρ‡Ρ‚ΠΎ всё Π² порядкС, всё ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½ΠΎ. НичСго ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ.

Go: goroutines

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ заинтСрСсовало: лСгковСсныС процСссы – goroutines (Π³ΠΎΡ€ΡƒΡ‚ΠΈΠ½Ρ‹) Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Go.

АлСксСй Найдёнов. ITooLabs. КСйс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Go (Golang) Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π§Π°ΡΡ‚ΡŒ 1

  1. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΎΠ½ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ лСгковСсныС (мСньшС 2 Кб).
  2. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ Π½Π° созданиС Ρ‚Π°ΠΊΠΎΠΉ Π³ΠΎΡ€ΡƒΡ‚ΠΈΠ½Ρ‹ Π½ΠΈΡ‡Ρ‚ΠΎΠΆΠ½Ρ‹: ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ тысячу Π² сСкунду – Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚.
  3. ΠžΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΎΠ½ΠΈ своим собствСнным ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ просто ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠΉ Π³ΠΎΡ€ΡƒΡ‚ΠΈΠ½Ρ‹ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ.
  4. ΠŸΡ€ΠΈ этом ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пСрСдаётся Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… случаях:
    • Ссли встрСчаСтся Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ go (Ссли Π³ΠΎΡ€ΡƒΡ‚ΠΈΠ½Π° запускаСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π³ΠΎΡ€ΡƒΡ‚ΠΈΠ½Ρƒ);
    • Ссли Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π·ΠΎΠ² Input/Out;
    • Ссли запускаСтся сборка мусора;
    • Ссли запускаСтся какая-Ρ‚ΠΎ опСрация с ΠΊΠ°Π½Π°Π»Π°ΠΌΠΈ.

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

Надо ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ это максимально эффСктивный способ ΡƒΡ‚ΠΈΠ»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΆΠ΅Π»Π΅Π·Π°. ΠšΡ€ΠΎΠΌΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ Π΅Ρ‰Ρ‘ ΠΌΠ½ΠΎΠ³ΠΎ Ρ‡Π΅Π³ΠΎ. ΠœΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, систСмы DPI, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π² ΠΎΠ΄ΠΈΠ½ unit ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ 40 Π³ΠΈΠ³Π°Π±ΠΈΡ‚ (смотря Ρ‡Ρ‚ΠΎ происходит Π² этих строках).

Π’Π°ΠΌ ΠΌΡ‹ Π΅Ρ‰Ρ‘ Π΄ΠΎ Go использовали Ρ€ΠΎΠ²Π½ΠΎ Ρ‚Ρƒ ΠΆΠ΅ схСму ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ этой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅: ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это позволяСт ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ кэша процСссора, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ количСство ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ контСкста ОБ (Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠΆΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ). ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΡŽΡΡŒ: это – максимально эффСктивный способ ΡƒΡ‚ΠΈΠ»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΆΠ΅Π»Π΅Π·Π°.

Π­Ρ‚ΠΎΡ‚ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² 21 строку – ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π΅Π»Π°Π΅Ρ‚ просто echo-server. ΠŸΡ€ΠΈ этом ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ функция serve – ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ простая, ΠΎΠ½Π° линСйная. Π’Π°ΠΌ Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… колбэков, Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π½ΡƒΠΆΠ΄Ρ‹ Π·Π°ΠΌΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΈ Π΄ΡƒΠΌΠ°Ρ‚ΡŒβ€¦ Π’Ρ‹ просто Ρ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ ΠΈ ΠΏΠΈΡˆΠ΅Ρ‚Π΅!

ΠŸΡ€ΠΈ этом, Ссли Π²Ρ‹ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ ΠΈ ΠΏΠΈΡˆΠ΅Ρ‚Π΅, ΠΎΠ½ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ – это Π³ΠΎΡ€ΡƒΡ‚ΠΈΠ½Π° просто кладётся Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΈ достаётся ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠΎΠΌ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° снова станСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Π’ΠΎ Π΅ΡΡ‚ΡŒ этот простой ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ эхо-сСрвСром Π½Π° ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ соСдинСний, сколько ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ОБ Π½Π° этой машинС.

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ совсСм скоро…

НСмного Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹ πŸ™‚

Бпасибо, Ρ‡Ρ‚ΠΎ ΠΎΡΡ‚Π°Ρ‘Ρ‚Π΅ΡΡŒ с Π½Π°ΠΌΠΈ. Π’Π°ΠΌ нравятся наши ΡΡ‚Π°Ρ‚ΡŒΠΈ? Π₯ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ большС интСрСсных ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ²? ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΡ‚Π΅ нас, ΠΎΡ„ΠΎΡ€ΠΌΠΈΠ² Π·Π°ΠΊΠ°Π· ΠΈΠ»ΠΈ ΠΏΠΎΡ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π² Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΌ, ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Π΅ VPS для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΎΡ‚ $4.99, ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π°Π½Π°Π»ΠΎΠ³ entry-level сСрвСров, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π½ Π½Π°ΠΌΠΈ для Вас: Вся ΠΏΡ€Π°Π²Π΄Π° ΠΎ VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps ΠΎΡ‚ $19 ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π΄Π΅Π»ΠΈΡ‚ΡŒ сСрвСр? (доступны Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ с RAID1 ΠΈ RAID10, Π΄ΠΎ 24 ядСр ΠΈ Π΄ΠΎ 40GB DDR4).

Dell R730xd Π² 2 Ρ€Π°Π·Π° дСшСвлС Π² Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€Π΅ Equinix Tier IV Π² АмстСрдамС? Волько Ρƒ нас 2 Ρ… Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 Π’Π’ ΠΎΡ‚ $199 Π² НидСрландах! Dell R420 β€” 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB β€” ΠΎΡ‚ $99! Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΎ Ρ‚ΠΎΠΌ Как ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ инфраструктуру ΠΊΠΎΡ€ΠΏ. класса c ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ сСрвСров Dell R730xd Π•5-2650 v4 ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΡŽ 9000 Π΅Π²Ρ€ΠΎ Π·Π° ΠΊΠΎΠΏΠ΅ΠΉΠΊΠΈ?

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com