АлСксСй НайдСнов. ITooLabs. Π‘Π»ΡƒΡ‡Π°ΠΉ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Go (Golang). Част 1

АлСксСй НайдСнов, ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π΅Π½ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ 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 ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΡΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ MegaFon. Най-ΠΎΠ±Ρ‰ΠΎ ΠΊΠ°Π·Π°Π½ΠΎ, ΠΎΠ±ΠΈΡ‡Π°ΠΌΠ΅ Π΄Π° сС впускамС Π² ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ ΠΈΠΌΠ°ΠΌΠ΅ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ 100 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° Π°Π±ΠΎΠ½Π°Ρ‚ΠΈ Π½Π° 44 ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Ρ‚ΡƒΠΊ Π² Русия. Π•Ρ‚ΠΎ Π·Π°Ρ‰ΠΎ, Π°ΠΊΠΎ някой ΠΈΠΌΠ° някакви бизнСс ΠΈΠ΄Π΅ΠΈ, Π²ΠΈΠ½Π°Π³ΠΈ смС щастливи Π΄Π° Π³ΠΈ ΠΈΠ·ΡΠ»ΡƒΡˆΠ°ΠΌΠ΅.

  • 5000 потрСбитСлски ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ.
  • ΠžΠ±Ρ‰ΠΎ 20 000 Π°Π±ΠΎΠ½Π°Ρ‚ΠΈ. Всичко Π΅ b2b - Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ само с Ρ„ΠΈΡ€ΠΌΠΈ.
  • 300 Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€Π° Π½Π° ΠΌΠΈΠ½ΡƒΡ‚Π° ΠΏΡ€Π΅Π· дСня.
  • 100 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° ΠΌΠΈΠ½ΡƒΡ‚ΠΈ Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€ΠΈ ΠΌΠΈΠ½Π°Π»Π°Ρ‚Π° Π³ΠΎΠ΄ΠΈΠ½Π° (ΠΏΡ€Π°Π·Π½ΡƒΠ²Π°Ρ…ΠΌΠ΅). Π’ΠΎΠ²Π° Π΅ Π±Π΅Π· Π΄Π° сС Π²Π·Π΅ΠΌΠ°Ρ‚ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π΅Π³ΠΎΠ²ΠΎΡ€ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са Π½Π° Π½Π°ΡˆΠ°Ρ‚Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°.

Как Π·Π°ΠΏΠΎΡ‡Π½Π°?

Как ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΈΡ‚Π΅ ΠΏΠΈΡ‡ΠΎΠ²Π΅ Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‚ Π΄Π° правят своя собствСна ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°? Врябва ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΄Π° Π²Π·Π΅ΠΌΠ΅ΠΌ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄, Ρ‡Π΅ ΠΈΠΌΠ°Ρ…ΠΌΠ΅ история Π½Π° Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ Π½Π° "Ρ‚Π²ΡŠΡ€Π΄ΠΎ прСдприятиС" ΠΈ Π΄ΠΎΡ€ΠΈ Π² Π½Π°ΠΉ-Ρ‚ΠΎΡ‡Π½ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Π³ΠΎΠ΄ΠΈΠ½Π°Ρ‚Π° Π·Π° прСдприятиС! Π‘Π΅ΡˆΠ΅ ΠΎΠ½ΠΎΠ²Π° щастливо Π²Ρ€Π΅ΠΌΠ΅, ΠΊΠΎΠ³Π°Ρ‚ΠΎ дойдСш ΠΏΡ€ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ каТСш: β€žΠ˜ΠΌΠ°ΠΌΠ΅ Π½ΡƒΠΆΠ΄Π° ΠΎΡ‚ ΠΎΡ‰Π΅ няколко ΡΡŠΡ€Π²ΡŠΡ€Π°.β€œ И ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚: β€žΠ”Π°, няма Π²ΡŠΠΏΡ€ΠΎΡ! ИмамС дСсСтка Π² Π±Π°Π³Π°ΠΆΠ½ΠΈΠΊΠ°.

Π’Π°ΠΊΠ° Ρ‡Π΅ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ…ΠΌΠ΅ Oracle, Java, WebSphere, Db2 ΠΈ всичко Ρ‚ΠΎΠ²Π°. Π—Π°Ρ‚ΠΎΠ²Π° Π²Π·Π΅Ρ…ΠΌΠ΅, Ρ€Π°Π·Π±ΠΈΡ€Π° сС, Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€ΠΈΡ‚Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° доставчицитС, ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°Ρ…ΠΌΠ΅ Π³ΠΈ ΠΈ сС ΠΎΠΏΠΈΡ‚Π°Ρ…ΠΌΠ΅ Π΄Π° ΠΈΠ·Π»Π΅Ρ‚ΠΈΠΌ с тях. Π˜Π³Ρ€Π°Π΅Ρ…Π° сами. Π‘ΠΈ Π±ΠΈΠ»ΠΎ Ρ‚Π°ΠΊΡŠΠ² Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ΅Π½ ΡΡ‚Π°Ρ€Ρ‚ΡŠΠΏ.

Всичко Π·Π°ΠΏΠΎΡ‡Π½Π° ΠΏΡ€Π΅Π· 2009 Π³. ΠžΡ‚ 2006 Π³. Π½ΠΈΠ΅ смС тясно Π°Π½Π³Π°ΠΆΠΈΡ€Π°Π½ΠΈ Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ‚Π° Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅, ΠΏΠΎ Π΅Π΄ΠΈΠ½ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ Π½Π°Ρ‡ΠΈΠ½. НаправихмС няколко пСрсонализирани Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΠΈ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈ (ΠΊΠ°Ρ‚ΠΎ Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ сСга ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΠΎ ΠΏΠΎΡ€ΡŠΡ‡ΠΊΠ°): ΠΏΠΎΠ³Π»Π΅Π΄Π½Π°Ρ…ΠΌΠ΅, Ρ€Π΅ΡˆΠΈΡ…ΠΌΠ΅, Ρ‡Π΅ Π΅ Π΄ΠΎΠ±Ρ€Π΅ ΠΈ Ρ€Π΅ΡˆΠΈΡ…ΠΌΠ΅ Π΄Π° Ρ€Π°Π·Π΄Π²ΠΈΠΆΠΈΠΌ Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΎ стартиранС.

АлСксСй НайдСнов. ITooLabs. Π‘Π»ΡƒΡ‡Π°ΠΉ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Go (Golang). Част 1

Π’Π·Π΅ΠΌΠ΅Ρ‚Π΅ VMWare. Въй ΠΊΠ°Ρ‚ΠΎ Π²ΡŠΡ€Π²ΡΡ…ΠΌΠ΅ сами, Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ Π΄Π° изоставим готиния доставчик Storage. НиС Π·Π½Π°Π΅ΠΌ всичко Π·Π° тях: Ρ‡Π΅ обСщанията трябва Π΄Π° сС раздСлят Π½Π° 3, Π° Ρ†Π΅Π½Π°Ρ‚Π° трябва Π΄Π° сС ΡƒΠΌΠ½ΠΎΠΆΠΈ ΠΏΠΎ 10. Π—Π°Ρ‚ΠΎΠ²Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ…ΠΌΠ΅ DirDB ΠΈ Ρ‚.Π½.

Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Π·Π°ΠΏΠΎΡ‡Π½Π° Π΄Π° растС. Услугата Π·Π° таксуванС бСшС Π΄ΠΎΠ±Π°Π²Π΅Π½Π° към Ρ‚ΠΎΠ²Π°, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π²Π΅Ρ‡Π΅ Π½Π΅ моТСшС Π΄Π° сС справи. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ Π·Π° таксуванС ΠΎΡ‚ MySQL сС прСмСсти Π² Mongo. Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ…ΠΌΠ΅ Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° всички повиквания, ΠΊΠΎΠΈΡ‚ΠΎ ΠΎΡ‚ΠΈΠ²Π°Ρ‚ Ρ‚Π°ΠΌ:

АлСксСй НайдСнов. ITooLabs. Π‘Π»ΡƒΡ‡Π°ΠΉ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Go (Golang). Част 1

Но някъдС Π²ΡŠΡ‚Ρ€Π΅ сС Π²ΡŠΡ€Ρ‚ΠΈ ΡΡŠΡ‰ΠΈΡΡ‚ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ Π½Π° доставчика - основният, ядрСн, ΠΊΠΎΠΉΡ‚ΠΎ някога Π²Π·Π΅Ρ…ΠΌΠ΅. ΠŸΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»Π½ΠΎ Π² края Π½Π° 2011 Π³. ΠΎΡΡŠΠ·Π½Π°Ρ…ΠΌΠ΅ Π·Π° сСбС си, Ρ‡Π΅ основното ΠΏΡ€Π΅Ρ‡ΠΊΠ° Π·Π° нас, Ρ€Π°Π·Π±ΠΈΡ€Π° сС, Ρ‰Π΅ бъдС Ρ‚ΠΎΠ·ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ - Ρ‰Π΅ сС сблъскамС с Π½Π΅Π³ΠΎ. ВидяхмС стСна ΠΏΡ€Π΅Π΄ нас, Π² която сС Π²Ρ‚ΡƒΡ€Π½Π°Ρ…ΠΌΠ΅ Π² пълСн Π³Π°Π»ΠΎΠΏ, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π²ΡŠΡ€Π²ΡΡ…Π°, бяха Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ.
Π‘ΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ Π½Π΅Ρ‰ΠΎ. Π Π°Π·Π±ΠΈΡ€Π° сС, Π½Π°ΠΏΡ€Π°Π²ΠΈΡ…ΠΌΠ΅ доста проучвания Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈ - ΠΊΠ°ΠΊΡ‚ΠΎ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄, Ρ‚Π°ΠΊΠ° ΠΈ Ρ‚Π°ΠΊΠΈΠ²Π° ΠΎΡ‚ доставчици. Няма Π΄Π° сС спирам Π½Π° Ρ‚ΠΎΠ²Π° сСга - Π½Π΅ Π΅ Ρ‚ΠΎΠ²Π° Π²ΡŠΠΏΡ€ΠΎΡΡŠΡ‚. ΠŸΠΎΡΠ»Π΅Π΄Π½ΠΈΡΡ‚ Ρ€Π΅Π·Π΅Ρ€Π²Π΅Π½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, Π·Π° ΠΊΠΎΠΉΡ‚ΠΎ помислихмС, бСшС Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ наша собствСна ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°.

Π’ ΠΊΡ€Π°ΠΉΠ½Π° смСтка стигнахмС Π΄ΠΎ Ρ‚ΠΎΠ·ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚. Π—Π°Ρ‰ΠΎ? Π—Π°Ρ‰ΠΎΡ‚ΠΎ всички доставчици ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ са Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΈ Π·Π° Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΠΏΡ€Π΅Π΄ΠΈ 10 Π³ΠΎΠ΄ΠΈΠ½ΠΈ. Π•, Π°ΠΊΠΎ Π΅ 10-годишСн, ΠΈ ΠΎΡ‰Π΅ няколко! Π˜Π·Π±ΠΎΡ€ΡŠΡ‚ Π·Π° нас стана ΠΎΡ‡Π΅Π²ΠΈΠ΄Π΅Π½: ΠΈΠ»ΠΈ сС сбогувамС с Π½Π°ΡˆΠ°Ρ‚Π° страхотна идСя Π·Π° ΠΈΠ΄Π΅Π°Π»Π½Π° услуга (Π·Π° ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΠΈ, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ ΠΈ сСбС си), ΠΈΠ»ΠΈ ΠΏΡ€Π°Π²ΠΈΠΌ Π½Π΅Ρ‰ΠΎ своС.

Π Π΅ΡˆΠΈΡ…ΠΌΠ΅ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ Π½Π΅Ρ‰ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎ!

Изисквания Π·Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°

Ако ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π½Π΅Ρ‰ΠΎ дълго Π²Ρ€Π΅ΠΌΠ΅ (СксплоатиратС Π½Π΅Ρ‡ΠΈΠΉ Π΄Ρ€ΡƒΠ³ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚), Ρ‚ΠΎΠ³Π°Π²Π° Π² Π³Π»Π°Π²Π°Ρ‚Π° Π²ΠΈ Π±Π°Π²Π½ΠΎ сС Ρ„ΠΎΡ€ΠΌΠΈΡ€Π° ΠΌΠΈΡΡŠΠ»Ρ‚Π°: ΠΊΠ°ΠΊ Π±ΠΈΡ… Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΠ» сам? Въй ΠΊΠ°Ρ‚ΠΎ всички Π² компанията смС програмисти (с ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΎΠ΄Π°Π²Π°Ρ‡ΠΈΡ‚Π΅, няма нСпрограмисти), Π½Π°ΡˆΠΈΡ‚Π΅ изисквания са Π±ΠΈΠ»ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°Π½ΠΈ дълго Π²Ρ€Π΅ΠΌΠ΅ ΠΈ са Π±ΠΈΠ»ΠΈ ясни:

  1. Висока скорост Π½Π° Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅. ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΡŠΡ‚ Π½Π° ΠΏΡ€ΠΎΠ΄Π°Π²Π°Ρ‡Π°, ΠΊΠΎΠΉΡ‚ΠΎ Π½ΠΈ ΠΈΠ·ΠΌΡŠΡ‡Π²Π°ΡˆΠ΅, Π½Π΅ Π½ΠΈ ΡƒΡΡ‚Ρ€ΠΎΠΉΠ²Π°ΡˆΠ΅ Π½Π° ΠΏΡŠΡ€Π²ΠΎ място, Π·Π°Ρ‰ΠΎΡ‚ΠΎ всичко сС ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΡˆΠ΅ дълго ΠΈ Π±Π°Π²Π½ΠΎ. Π˜ΡΠΊΠ°Ρ…ΠΌΠ΅ Π±ΡŠΡ€Π·ΠΎ – ΠΈΠΌΠ°Ρ…ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ΄Π΅ΠΈ! ВсС ΠΎΡ‰Π΅ ΠΈΠΌΠ°ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ΄Π΅ΠΈ, Π½ΠΎ Ρ‚ΠΎΠ³Π°Π²Π° ΡΠΏΠΈΡΡŠΠΊΡŠΡ‚ с ΠΈΠ΄Π΅ΠΈ бСшС Ρ‚Π°ΠΊΡŠΠ², Ρ‡Π΅ изглСТдашС ΠΊΠ°Ρ‚ΠΎ дСсСт Π³ΠΎΠ΄ΠΈΠ½ΠΈ Π½Π°ΠΏΡ€Π΅Π΄. Π‘Π΅Π³Π° само Π·Π° Π΅Π΄Π½Π° Π³ΠΎΠ΄ΠΈΠ½Π°.
  2. Максимално оползотворяванС Π½Π° многоядрСното ТСлязо. Π’ΠΎΠ²Π° ΡΡŠΡ‰ΠΎ бСшС Π²Π°ΠΆΠ½ΠΎ Π·Π° нас, Π·Π°Ρ‰ΠΎΡ‚ΠΎ видяхмС, Ρ‡Π΅ Ρ‰Π΅ ΠΈΠΌΠ° само всС ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ядра.
  3. Висока надСТдност. Π’ΠΎΠ·ΠΈ, ΠΊΠΎΠΉΡ‚ΠΎ ΡΡŠΡ‰ΠΎ ΠΏΠ»Π°ΠΊΠ°Ρ…ΠΌΠ΅.
  4. Висока отказоустойчивост.
  5. Π˜ΡΠΊΠ°Ρ…ΠΌΠ΅ Π΄Π° Π·Π°Π²ΡŠΡ€ΡˆΠΈΠΌ с Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π΅Π½ процСс Π½Π° освобоТдаванС. Π—Π° Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ Ρ‚ΠΎΠ²Π°, Π½ΠΈ Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ ΠΈΠ·Π±ΠΎΡ€ Π½Π° Π΅Π·ΠΈΠΊ.

АлСксСй НайдСнов. ITooLabs. Π‘Π»ΡƒΡ‡Π°ΠΉ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Go (Golang). Част 1

Π‘ΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ, ΠΎΡ‚ изискванията към ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, ΠΊΠΎΠΈΡ‚ΠΎ смС си прСдставили, явно Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ растат ΠΈ изискванията към Π΅Π·ΠΈΠΊΠ°.

  1. Ако искамС ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° многоядрСни систСми, Ρ‚ΠΎΠ³Π°Π²Π° ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡƒΠΆΠ΄Π° ΠΎΡ‚ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ изпълнСниС.
  2. Ако сС Π½ΡƒΠΆΠ΄Π°Π΅ΠΌ ΠΎΡ‚ скорост Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡƒΠΆΠ΄Π° ΠΎΡ‚ Π΅Π·ΠΈΠΊ, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΎ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅, ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅. Ако някой Π½Π΅ Π΅ срСщал Ρ€Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π°, Ρ‚ΠΎΠ³Π°Π²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ проста:
    • ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ Π΅ Π·Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ Π΄Π²Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ нишки работят Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ядра;
    • Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΡ‚ΠΎ изпълнСниС, ΠΏΠΎ-спСциално ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° СдноврСмСнност, Π΅ Π·Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ Π΅Π·ΠΈΠΊΡŠΡ‚ (ΠΈΠ»ΠΈ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° изпълнСниС, ΠΊΠ°ΠΊΠ²ΠΎΡ‚ΠΎ ΠΈ Π΄Π° Π΅) ΠΏΠΎΠΌΠ°Π³Π° Π΄Π° сС скриС цялата слоТност, която ΠΈΠ΄Π²Π° ΠΎΡ‚ ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎΡ‚ΠΎ изпълнСниС.
  3. Висока стабилност. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ сС Π½ΡƒΠΆΠ΄Π°Π΅Ρ…ΠΌΠ΅ ΠΎΡ‚ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ ΠΈ Ρ‚ΠΎΠΉ бСшС ΠΏΠΎ-Π΄ΠΎΠ±ΡŠΡ€ ΠΎΡ‚ Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΈΠΌΠ°Ρ…ΠΌΠ΅ Π² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Π½Π° доставчика.

АлСксСй НайдСнов. ITooLabs. Π‘Π»ΡƒΡ‡Π°ΠΉ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Go (Golang). Част 1

Π’ΡΡŠΡ‰Π½ΠΎΡΡ‚ нямахмС ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ, Π°ΠΊΠΎ си спомнятС. ΠŸΡŠΡ€Π²ΠΎ, Erlang - Π½ΠΈΠ΅ Π³ΠΎ ΠΎΠ±ΠΈΡ‡Π°ΠΌΠ΅ ΠΈ Π³ΠΎ Π·Π½Π°Π΅ΠΌ, Ρ‚ΠΎΠ²Π° бСшС моят Π»ΠΈΡ‡Π΅Π½, Π»ΠΈΡ‡Π΅Π½ Ρ„Π°Π²ΠΎΡ€ΠΈΡ‚. Π’Ρ‚ΠΎΡ€ΠΎ, Java Π΄ΠΎΡ€ΠΈ Π½Π΅ Π΅ Java, Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Scala. Π’Ρ€Π΅Ρ‚ΠΎ, Π΅Π·ΠΈΠΊΡŠΡ‚, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‚ΠΎΠ³Π°Π²Π° ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ…ΠΌΠ΅ - Π“ΠΎ. Π’ΠΎΠΊΡƒ-Ρ‰ΠΎ сС появи Ρ‚ΠΎΠ³Π°Π²Π°, ΠΏΠΎ-Ρ‚ΠΎΡ‡Π½ΠΎ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°ΡˆΠ΅ ΠΎΡ‚ ΠΎΠΊΠΎΠ»ΠΎ Π΄Π²Π΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ, Π½ΠΎ всС ΠΎΡ‰Π΅ Π½Π΅ бСшС пуснат.

ПобСдСни 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

ΠŸΠΎΠ³Π»Π΅Π΄Π½Π΅Ρ‚Π΅ с Π΅Π΄ΠΈΠ½ ΠΏΠΎΠ³Π»Π΅Π΄

Π’ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ Π΅Π·ΠΈΠΊΡŠΡ‚ Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΈΠ»ΠΈ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ прост ΠΈ Ρ€Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌ. ИмамС ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅: Π² някои случаи Ρ‚Π΅ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€Π°Π½ΠΈ, Π² Π΄Ρ€ΡƒΠ³ΠΈ Π½Π΅ (ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅ Ρ‚Π°ΠΊΠ° ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅ сС ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Ρ‚).

АлСксСй НайдСнов. ITooLabs. Π‘Π»ΡƒΡ‡Π°ΠΉ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Go (Golang). Част 1

Π’ΠΈΠΆΠ΄Π° сС, Ρ‡Π΅ Π΅ ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΎ Π΄Π° сС описват структури. Π’ΠΈΠΆΠ΄Π° сС, Ρ‡Π΅ ΠΈΠΌΠ°ΠΌΠ΅ концСпцията Π·Π° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π» (ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ Π΅ Π·Π²Π΅Π·Π΄ΠΈΡ‡ΠΊΠ°Ρ‚Π°). Π’ΠΈΠΆΠ΄Π° сС, Ρ‡Π΅ ΠΈΠΌΠ° спСциална ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° инициализация Π½Π° масиви ΠΈ асоциативни масиви.

ΠŸΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»Π½ΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌΠΎ - ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΆΠΈΠ²Π΅Π΅Ρ‚Π΅. ΠžΠΏΠΈΡ‚Π²Π°ΠΌ сС Π΄Π° напиша Π—Π΄Ρ€Π°Π²Π΅ΠΉ, свят:

АлСксСй НайдСнов. ITooLabs. Π‘Π»ΡƒΡ‡Π°ΠΉ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Go (Golang). Част 1

ΠΊΠ°ΠΊΠ²ΠΎ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ Π’ΠΎΠ²Π° Π΅ C-ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ синтаксис, Ρ‚ΠΎΡ‡ΠΊΠ°Ρ‚Π° ΠΈ запСтая Π½Π΅ Π΅ Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½Π°. МоТС Π΄Π° бъдС Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π» Π·Π° Π΄Π²Π° Ρ€Π΅Π΄Π°, Π½ΠΎ само Π°ΠΊΠΎ Ρ‚ΠΎΠ²Π° са Π΄Π²Π΅ конструкции, ΠΊΠΎΠΈΡ‚ΠΎ са Ρ‚ΠΎΡ‡Π½ΠΎ Π½Π° Π΅Π΄ΠΈΠ½ Ρ€Π΅Π΄.

Π’ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ скобитС Π² ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½ΠΈΡ‚Π΅ структури (Π½Π° 14-ия Ρ€Π΅Π΄) Π½Π΅ са Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΈ, Π½ΠΎ Ρ„ΠΈΠ³ΡƒΡ€Π½ΠΈΡ‚Π΅ Π²ΠΈΠ½Π°Π³ΠΈ са Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΈ. Π’ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ писанСто Π΅ статично. Π’ΠΈΠΌ Π² ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ случаи сС ΠΏΠΎΠΊΠ°Π·Π²Π°. Π’ΠΎΠ·ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΅ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-слоТСн ΠΎΡ‚ обичайния Hello, world - само Π·Π° Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅, Ρ‡Π΅ ΠΈΠΌΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°.

Какво Π΄Ρ€ΡƒΠ³ΠΎ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ Π²Π°ΠΆΠ½ΠΎ? ΠšΠΎΠ΄ΡŠΡ‚ Π΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Π½ Π² ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ. И Π·Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π° във вашия собствСн ΠΊΠΎΠ΄, трябва Π΄Π° Π³ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€Π°Ρ‚Π΅ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°Ρ‚Π° Π·Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€Π°Π½Π΅ - Ρ‚ΠΎΠ²Π° ΡΡŠΡ‰ΠΎ Π΅ Π²Π°ΠΆΠ½ΠΎ. Π—Π°ΠΏΠΎΡ‡Π²Π°ΠΌΠ΅ - Ρ€Π°Π±ΠΎΡ‚ΠΈ. Π‘Ρ‚Ρ€Π°Ρ…ΠΎΡ‚Π΅Π½!

НСка ΠΎΠΏΠΈΡ‚Π°ΠΌΠ΅ Π½Π΅Ρ‰ΠΎ ΠΏΠΎ-слоТно: Π—Π΄Ρ€Π°Π²Π΅ΠΉ, свят, Π½ΠΎ сСга Π΅ http ΡΡŠΡ€Π²ΡŠΡ€. Какво интСрСсно Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ Ρ‚ΡƒΠΊ?

АлСксСй НайдСнов. ITooLabs. Π‘Π»ΡƒΡ‡Π°ΠΉ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Go (Golang). Част 1

ΠŸΡŠΡ€Π²ΠΎ, функцията дСйства ΠΊΠ°Ρ‚ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ функцията, която ΠΈΠΌΠ°ΠΌΠ΅, Π΅ β€žΠΏΡŠΡ€Π²ΠΎΠΊΠ»Π°ΡΠ΅Π½ Π³Ρ€Π°ΠΆΠ΄Π°Π½ΠΈΠ½β€œ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎ интСрСсни Π½Π΅Ρ‰Π° с нСя във Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π΅Π½ стил. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ Π½Π΅ΠΎΡ‡Π°ΠΊΠ²Π°Π½ΠΎΡ‚ΠΎ: Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°Ρ‚Π° Π·Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€Π°Π½Π΅ ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‰Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ към Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ Π½Π° GitHub. Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠ°, Ρ‚Π°ΠΊΠ° Π΅ – Π½Π΅Ρ‰ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅, Ρ‚Π°ΠΊΠ° трябва Π΄Π° сС ΠΏΠΎΡΡ‚ΡŠΠΏΠ²Π°.

Π’ Go унивСрсалният ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π΅ URL Π°Π΄Ρ€Π΅ΡΡŠΡ‚ Π½Π° Π½Π΅Π³ΠΎΠ²ΠΎΡ‚ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅. Има спСциална ΠΏΠΎΠΌΠΎΡ‰Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Goget, която Ρ€Π°Π±ΠΎΡ‚ΠΈ Π·Π° всички зависимости, изтСгля Π³ΠΈ, инсталира Π³ΠΈ, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π° Π³ΠΈ ΠΈ Π³ΠΈ подготвя Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅, Π°ΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ. Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Goget Π·Π½Π°Π΅ Π·Π° html-meta. Π‘ΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚Π΅ http дирСктория, която Ρ‰Π΅ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° Π²Ρ€ΡŠΠ·ΠΊΠΈ към ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΡ‚ΠΎ Π²ΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ (ΠΊΠ°ΠΊΡ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠΌ Π½ΠΈΠ΅ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€).

Какво Π΄Ρ€ΡƒΠ³ΠΎ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅? Http ΠΈ Json Π² ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½Π°Ρ‚Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ ΠΈΠΌΠ° интроспСкция - рСфлСксия, която трябва Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ / json, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π½ΠΈΠ΅ просто замСствамС някакъв ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ ΠΎΠ±Π΅ΠΊΡ‚ Π·Π° Π½Π΅Π³ΠΎ.

ΠŸΡƒΡΠΊΠ°ΠΌΠ΅ Π³ΠΎ ΠΈ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ ΠΈΠΌΠ°ΠΌΠ΅ 20 Ρ€Π΅Π΄Π° ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡ‚ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°, изпълнява ΠΈ Π΄Π°Π²Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΎΡ‚ΠΎ срСдно Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π°Ρ‚Π° (Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π°Ρ‚Π°, Π½Π° която Ρ€Π°Π±ΠΎΡ‚ΠΈ).
Какво Π΄Ρ€ΡƒΠ³ΠΎ Π΅ Π²Π°ΠΆΠ½ΠΎ ΠΎΡ‚ Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ Π²Π΅Π΄Π½Π°Π³Π° Ρ‚ΡƒΠΊ? Π’ΠΎΠΉ сС ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π° Π² Π΅Π΄ΠΈΠ½ статичСн Π΄Π²ΠΎΠΈΡ‡Π΅Π½ Ρ„Π°ΠΉΠ» (buinary). Π’ΠΎΠ·ΠΈ Π΄Π²ΠΎΠΈΡ‡Π΅Π½ Ρ„Π°ΠΉΠ» няма Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ зависимости, няма Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ! МоТС Π΄Π° сС ΠΊΠΎΠΏΠΈΡ€Π° във всяка систСма, Π΄Π° сС стартира Π²Π΅Π΄Π½Π°Π³Π° ΠΈ Ρ‰Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ.

ΠŸΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°ΠΉΠΊΠΈ.

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

Go ΠΈΠΌΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€Π°Ρ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π° всСки потрСбитСлски Ρ‚ΠΈΠΏ. ОсвСн Ρ‚ΠΎΠ²Π°, Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ Π½Π΅ΠΏΡ€Π΅ΠΌΠ΅Π½Π½ΠΎ структура, Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС псСвдоним ΠΎΡ‚ някакъв Ρ‚ΠΈΠΏ. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€Π°Ρ‚Π΅ псСвдоним Π·Π° N32 ΠΈ Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ, Π·Π° Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈ Π½Π΅Ρ‰ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ.

И Ρ‚ΡƒΠΊ ΠΈΠ·ΠΏΠ°Π΄Π°ΠΌΠ΅ Π² ступор Π·Π° ΠΏΡŠΡ€Π²ΠΈ ΠΏΡŠΡ‚ ... Оказва сС, Ρ‡Π΅ Go няма класовС ΠΊΠ°Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΠ²Π°. Π’Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚ Go ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΊΠ°ΠΆΠ°Ρ‚, Ρ‡Π΅ ΠΈΠΌΠ° Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅, Π½ΠΎ Ρ‚ΠΎΠ²Π° Π΅ съвсСм Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎ. ΠšΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΏΠΎ-скоро Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡŠΡ‚ спрС Π΄Π° мисли Π·Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°Ρ‚ΠΎ Π·Π° наслСдство, Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π΅. Π’ Go няма класовС, няма ΠΈ наслСдяванС.

Π’ΡŠΠΏΡ€ΠΎΡ! Какво Π½ΠΈ Π΄Π°Π΄Π΅ компанията ΠΎΡ‚ Π°Π²Ρ‚ΠΎΡ€ΠΈ, Ρ€ΡŠΠΊΠΎΠ²ΠΎΠ΄Π΅Π½Π° ΠΎΡ‚ Google, Π·Π° Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ слоТността Π½Π° свСта? Π”Π°Π΄Π΅Π½ΠΈ са Π½ΠΈ интСрфСйси!

АлСксСй НайдСнов. ITooLabs. Π‘Π»ΡƒΡ‡Π°ΠΉ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Go (Golang). Част 1

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡŠΡ‚ Π΅ спСциалСн Ρ‚ΠΈΠΏ, ΠΊΠΎΠΉΡ‚ΠΎ Π²ΠΈ позволява Π΄Π° ΠΏΠΈΡˆΠ΅Ρ‚Π΅ прости ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ, сигнатури Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ. ОсвСн Ρ‚ΠΎΠ²Π° всСки Ρ‚ΠΈΠΏ, Π·Π° ΠΊΠΎΠΉΡ‚ΠΎ Ρ‚Π΅Π·ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‚ (сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚), Ρ‰Π΅ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π° Π½Π° Ρ‚ΠΎΠ·ΠΈ интСрфСйс. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½Π°Ρ‚Π° функция Π·Π° Π΅Π΄ΠΈΠ½ Ρ‚ΠΈΠΏ, Π·Π° Π΄Ρ€ΡƒΠ³ (ΠΊΠΎΠΉΡ‚ΠΎ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π° Π½Π° Ρ‚ΠΎΠ·ΠΈ Ρ‚ΠΈΠΏ интСрфСйс). Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° Π½Π° Ρ‚ΠΎΠ·ΠΈ интСрфСйс ΠΈ присвоСтС някой ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ към нСя.

Π—Π° Ρ…Π°Ρ€Π΄ΠΊΠΎΡ€ Ρ„Π΅Π½ΠΎΠ²Π΅Ρ‚Π΅ ΠΌΠΎΠ³Π° Π΄Π° ΠΊΠ°ΠΆΠ°, Ρ‡Π΅ Ρ‚Π°Π·ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ Ρ‰Π΅ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° Π΄Π²Π° указатСля: Π΅Π΄ΠΈΠ½ към Π΄Π°Π½Π½ΠΈ, Π° другият към спСциална дСскрипторна Ρ‚Π°Π±Π»ΠΈΡ†Π°, която Π΅ спСцифична Π·Π° Ρ‚ΠΎΠ·ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ Ρ‚ΠΈΠΏ, към интСрфСйса Π½Π° Ρ‚ΠΎΠ·ΠΈ Ρ‚ΠΈΠΏ. ВоСст, ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ΡŠΡ‚ ΠΏΡ€Π°Π²ΠΈ Ρ‚Π°ΠΊΠΈΠ²Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ с дСскриптори ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅.

И, Ρ€Π°Π·Π±ΠΈΡ€Π° сС, ΠΈΠΌΠ° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π·Π° ΠΏΡ€Π°Π·Π½ΠΎΡ‚Π° Π² Go. Π”ΡƒΠΌΠ°Ρ‚Π° интСрфСйс {} (с Π΄Π²Π΅ Ρ„ΠΈΠ³ΡƒΡ€Π½ΠΈ скоби) Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°, която Π²ΠΈ позволява Π΄Π° посочитС всСки ΠΎΠ±Π΅ΠΊΡ‚ ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ.
Π”ΠΎΡ‚ΡƒΠΊ всичко Π΅ Π½Π°Ρ€Π΅Π΄, всичко Π΅ ΠΏΠΎΠ·Π½Π°Ρ‚ΠΎ. Нищо ΠΈΠ·Π½Π΅Π½Π°Π΄Π²Π°Ρ‰ΠΎ.

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅: goroutines

Π‘Π΅Π³Π° стигамС Π΄ΠΎ Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ Π½ΠΈ интСрСсува: Π»Π΅ΠΊΠΈ процСси - Π³ΠΎΡ€ΡƒΡ‚ΠΈΠ½ΠΈ (goroutines) Π² тСрминологията Π½Π° Go.

АлСксСй НайдСнов. ITooLabs. Π‘Π»ΡƒΡ‡Π°ΠΉ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Go (Golang). Част 1

  1. ΠŸΡŠΡ€Π²ΠΎ, Ρ‚Π΅ са наистина Π»Π΅ΠΊΠΈ (ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ‚ 2 Kb).
  2. Π’Ρ‚ΠΎΡ€ΠΎ, Ρ€Π°Π·Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Π·Π° създаванС Π½Π° Ρ‚Π°ΠΊΠ°Π²Π° goroutine са Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΈ: ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ хиляда ΠΎΡ‚ тях Π² сСкунда - Π½ΠΈΡ‰ΠΎ няма Π΄Π° сС случи.
  3. Π’Π΅ сС обслуТват ΠΎΡ‚ Ρ‚Π΅Ρ…Π΅Π½ собствСн ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΠΊ, ΠΊΠΎΠΉΡ‚ΠΎ просто ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»Ρ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π° ΠΎΡ‚ Π΅Π΄Π½Π° Π³ΠΎΡ€ΡƒΡ‚ΠΈΠ½Π° Π½Π° Π΄Ρ€ΡƒΠ³Π°.
  4. Π’ Ρ‚ΠΎΠ·ΠΈ случай ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŠΡ‚ сС ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»Ρ Π² слСднитС случаи:
    • Π°ΠΊΠΎ сС срСщнС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ go (Π°ΠΊΠΎ goroutine стартира слСдващата goroutine);
    • Π°ΠΊΠΎ Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‰ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎ/ΠΈΠ·Ρ…ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅;
    • Π°ΠΊΠΎ сС задСйства ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅ Π½Π° Π±ΠΎΠΊΠ»ΡƒΠΊ;
    • Π°ΠΊΠΎ сС стартира някаква опСрация с ΠΊΠ°Π½Π°Π»ΠΈ.

ВоСст, всСки ΠΏΡŠΡ‚, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Go сС изпълнява Π½Π° ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€, тя ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π° броя Π½Π° ядрата Π² систСмата, стартира Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° нишки, ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ (ΠΊΠΎΠ»ΠΊΠΎ ядра ΠΈΠΌΠ° систСмата ΠΈΠ»ΠΈ ΠΊΠΎΠ»ΠΊΠΎ стС ΠΉ ΠΊΠ°Π·Π°Π»ΠΈ). Π‘ΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΠΊΡŠΡ‚ Ρ‰Π΅ изпълнява Ρ‚Π΅Π·ΠΈ Π»Π΅ΠΊΠΈ нишки Π·Π° изпълнСниС Π½Π° всички Ρ‚Π΅Π·ΠΈ нишки Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма във всяко ядро.

Врябва Π΄Π° сС ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠΈ, Ρ‡Π΅ Ρ‚ΠΎΠ²Π° Π΅ Π½Π°ΠΉ-СфСктивният Π½Π°Ρ‡ΠΈΠ½ Π·Π° оползотворяванС Π½Π° ТСлязото. ОсвСн Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ смС ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, Π½ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅. НиС ΠΏΡ€Π°Π²ΠΈΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, DPI систСми, ΠΊΠΎΠΈΡ‚ΠΎ позволяват обслуТванС Π½Π° 40 Π³ΠΈΠ³Π°Π±ΠΈΡ‚Π° Π² Π΅Π΄Π½ΠΎ устройство (Π² зависимост ΠΎΡ‚ Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊΠ²ΠΎ сС случва Π² Ρ‚Π΅Π·ΠΈ Π»ΠΈΠ½ΠΈΠΈ).

Π’Π°ΠΌ, Π΄ΠΎΡ€ΠΈ ΠΏΡ€Π΅Π΄ΠΈ Go, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ…ΠΌΠ΅ Ρ‚ΠΎΡ‡Π½ΠΎ ΡΡŠΡ‰Π°Ρ‚Π° схСма Ρ‚ΠΎΡ‡Π½ΠΎ ΠΏΠΎΡ€Π°Π΄ΠΈ Ρ‚Π°Π·ΠΈ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°: Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π²ΠΈ позволява Π΄Π° Π·Π°ΠΏΠ°Π·ΠΈΡ‚Π΅ мСстополоТСниСто Π½Π° кСша Π½Π° процСсора, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈΡ‚Π΅ броя Π½Π° ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½ΠΈΡΡ‚Π° Π½Π° контСкста Π½Π° ОБ (ΠΊΠΎΠ΅Ρ‚ΠΎ ΡΡŠΡ‰ΠΎ ΠΎΡ‚Π½Π΅ΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅). ΠŸΠΎΠ²Ρ‚Π°Ρ€ΡΠΌ: Ρ‚ΠΎΠ²Π° Π΅ Π½Π°ΠΉ-СфСктивният Π½Π°Ρ‡ΠΈΠ½ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ТСлязото.

Π’ΠΎΠ·ΠΈ прост ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΡ‚ 21 Ρ€Π΅Π΄Π° Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠΉΡ‚ΠΎ просто ΠΏΡ€Π°Π²ΠΈ Π΅Ρ…ΠΎ-ΡΡŠΡ€Π²ΡŠΡ€. Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ ΠΈΠΌΠ°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄, Ρ‡Π΅ функцията Π·Π° обслуТванС Π΅ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ проста, тя Π΅ Π»ΠΈΠ½Π΅ΠΉΠ½Π°. Няма обаТдания, няма Π½ΡƒΠΆΠ΄Π° Π΄Π° сС ΠΌΡŠΡ‡ΠΈΡ‚Π΅ ΠΈ мислитС... ΠŸΡ€ΠΎΡΡ‚ΠΎ Ρ‡Π΅Ρ‚Π΅Ρ‚Π΅ ΠΈ ΠΏΠΈΡˆΠ΅Ρ‚Π΅!

Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅, Π°ΠΊΠΎ Ρ‡Π΅Ρ‚Π΅Ρ‚Π΅ ΠΈ ΠΏΠΈΡˆΠ΅Ρ‚Π΅, Ρ‚ΠΎΠ²Π° Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ трябва Π΄Π° Π±Π»ΠΎΠΊΠΈΡ€Π° - Ρ‚Π°Π·ΠΈ goroutine просто сС поставя Π½Π° опашка ΠΈ сС Π²Π·Π΅ΠΌΠ° ΠΎΡ‚ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΠΊΠ°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ станС възмоТно ΠΎΡ‚Π½ΠΎΠ²ΠΎ. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ Ρ‚ΠΎΠ·ΠΈ прост ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅ Π΄Π° дСйства ΠΊΠ°Ρ‚ΠΎ Π΅Ρ…ΠΎ ΡΡŠΡ€Π²ΡŠΡ€ Π·Π° Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ, ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма Π½Π° Ρ‚Π°Π·ΠΈ машина позволява.

ΠŸΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ΅Π½ΠΈΠ΅ съвсСм скоро...

Малко Ρ€Π΅ΠΊΠ»Π°ΠΌΠΈ πŸ™‚

Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€ΠΈΠΌ Π²ΠΈ, Ρ‡Π΅ останахтС с нас. Π₯арСсватС Π»ΠΈ Π½Π°ΡˆΠΈΡ‚Π΅ статии? Π˜ΡΠΊΠ°Ρ‚Π΅ Π»ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΎΡ‰Π΅ интСрСсно ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅? ΠŸΠΎΠ΄ΠΊΡ€Π΅ΠΏΠ΅Ρ‚Π΅ Π½ΠΈ, ΠΊΠ°Ρ‚ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΏΠΎΡ€ΡŠΡ‡ΠΊΠ° ΠΈΠ»ΠΈ ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π°Ρ‚Π΅ Π½Π° приятСли, ΠΎΠ±Π»Π°Ρ‡Π΅Π½ VPS Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ ΠΎΡ‚ $4.99, ΡƒΠ½ΠΈΠΊΠ°Π»Π΅Π½ Π°Π½Π°Π»ΠΎΠ³ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈ ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π½ΠΎ Π½ΠΈΠ²ΠΎ, ΠΊΠΎΠΉΡ‚ΠΎ бСшС ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½ ΠΎΡ‚ нас Π·Π° вас: Цялата истина Π·Π° VPS (KVM) E5-2697 v3 (6 ядра) 10GB DDR4 480GB SSD 1Gbps ΠΎΡ‚ $19 ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° сподСлитС ΡΡŠΡ€Π²ΡŠΡ€? (ΠΏΡ€Π΅Π΄Π»Π°Π³Π° сС с RAID1 ΠΈ RAID10, Π΄ΠΎ 24 ядра ΠΈ Π΄ΠΎ 40GB DDR4).

Dell R730xd 2 ΠΏΡŠΡ‚ΠΈ ΠΏΠΎ-Π΅Π²Ρ‚ΠΈΠ½ Π² Ρ†Π΅Π½Ρ‚ΡŠΡ€Π° Π·Π° Π΄Π°Π½Π½ΠΈ Equinix Tier IV Π² АмстСрдам? Π‘Π°ΠΌΠΎ Ρ‚ΡƒΠΊ 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV ΠΎΡ‚ $199 Π² Π₯оландия! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - ΠΎΡ‚ $99! ΠŸΡ€ΠΎΡ‡Π΅Ρ‚ΠΈ Π·Π° Как Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ инфраструктура Corp. клас с ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Dell R730xd E5-2650 v4 Π½Π° стойност 9000 Π΅Π²Ρ€ΠΎ Π·Π° стотинка?

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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€