АлСксСй Π“Ρ€Π°Ρ‡Π΅Π²: Go Frontend

Kyiv Go Meetup ΠΌΠ°ΠΉ 2018 Π³.:

АлСксСй Π“Ρ€Π°Ρ‡Π΅Π²: Go Frontend

ΠœΠΎΠ΄Π΅Ρ€Π°Ρ‚ΠΎΡ€: - Π—Π΄Ρ€Π°Π²Π΅ΠΉΡ‚Π΅ всички! Благодаря Π²ΠΈ, Ρ‡Π΅ стС Ρ‚ΡƒΠΊ! ДнСс ΠΈΠΌΠ°ΠΌΠ΅ Π΄Π²Π°ΠΌΠ° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π½ΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅Π»ΠΈ - Π›ΡŒΠΎΡˆΠ° ΠΈ Ваня. Π©Π΅ ΠΈΠΌΠ° ΠΎΡ‰Π΅ Π΄Π²Π΅, Π°ΠΊΠΎ ΠΈΠΌΠ°ΠΌΠ΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅. ΠŸΡŠΡ€Π²ΠΈΡΡ‚ Π»Π΅ΠΊΡ‚ΠΎΡ€ Π΅ АлСксСй Π“Ρ€Π°Ρ‡Π΅Π², Ρ‚ΠΎΠΉ Ρ‰Π΅ Π½ΠΈ Ρ€Π°Π·ΠΊΠ°ΠΆΠ΅ Π·Π° GopherJS.

АлСксСй Π“Ρ€Π°Ρ‡Π΅Π² (ΠΏΠΎ-Π½Π°Ρ‚Π°Ρ‚ΡŠΠΊ – АГ): – Аз съм Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π° Go ΠΈ пиша ΡƒΠ΅Π± услуги Π½Π° Go. Понякога трябва Π΄Π° сС справитС с интСрфСйса, понякога трябва Π΄Π° Π²Π»Π΅Π·Π΅Ρ‚Π΅ Π² Π½Π΅Π³ΠΎ Ρ€ΡŠΡ‡Π½ΠΎ. Искам Π΄Π° говоря Π·Π° моя ΠΎΠΏΠΈΡ‚ ΠΈ ΠΏΡ€ΠΎΡƒΡ‡Π²Π°Π½Π΅ Π½Π° Go Π² интСрфСйса.

Π›Π΅Π³Π΅Π½Π΄Π°Ρ‚Π° Π΅ слСдната: ΠΏΡŠΡ€Π²ΠΎ Ρ‰Π΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π·Π°Ρ‰ΠΎ искамС Π΄Π° стартирамС Go във Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π°, слСд Ρ‚ΠΎΠ²Π° Ρ‰Π΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅ Π΄Π° станС Ρ‚ΠΎΠ²Π°. Има Π΄Π²Π° Π½Π°Ρ‡ΠΈΠ½Π° - Web Assembly ΠΈ GopherJS. НСка Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ‚Π΅Π·ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ.

Какво Π½Π΅ Π΅ Π½Π°Ρ€Π΅Π΄ с интСрфСйса?

Всички Π»ΠΈ са съгласни, Ρ‡Π΅ всичко Π΅ Π½Π°Ρ€Π΅Π΄ с интСрфСйса?

АлСксСй Π“Ρ€Π°Ρ‡Π΅Π²: Go Frontend

Няма Π»ΠΈ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ тСстовС? Π‘Π°Π²Π½ΠΎ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅? ЕкосистСма? Π“Π»ΠΎΠ±Π°.

По ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π½Π° интСрфСйса, харСсвам Ρ†ΠΈΡ‚Π°Ρ‚Π°, ΠΊΠΎΠΉΡ‚ΠΎ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° интСрфСйса ΠΊΠ°Π·Π° Π² ΠΊΠ½ΠΈΠ³Π°Ρ‚Π° си:

АлСксСй Π“Ρ€Π°Ρ‡Π΅Π²: Go Frontend

Javascript няма систСма ΠΎΡ‚ Ρ‚ΠΈΠΏΠΎΠ²Π΅. Π‘Π΅Π³Π° Ρ‰Π΅ Π½Π°Π·ΠΎΠ²Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ срСщнах Π² Ρ…ΠΎΠ΄Π° Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° си ΠΈ Ρ‰Π΅ обясня ΠΊΠ°ΠΊ сС Ρ€Π΅ΡˆΠ°Π²Π°Ρ‚.

Π’ΠΈΠΏΠΎΠ²Π°Ρ‚Π° систСма ΠΊΠ°Ρ‚ΠΎ цяло Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π½Π°Ρ€Π΅Ρ‡Π΅ Ρ‚ΠΈΠΏΠΎΠ²Π° систСма Π² Javasript - ΠΈΠΌΠ° Ρ€Π΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ‚ Ρ‚ΠΈΠΏΠ° Π½Π° ΠΎΠ±Π΅ΠΊΡ‚Π°, Π½ΠΎ Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ Ρ‚ΠΎΠ²Π° няма Π½ΠΈΡ‰ΠΎ ΠΎΠ±Ρ‰ΠΎ с Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅. Π’ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π΅ Ρ€Π΅ΡˆΠ΅Π½ Π² TypeScript (Π΄ΠΎΠ±Π°Π²ΠΊΠ° към Javasript) ΠΈ Flow (ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° статичСн Ρ‚ΠΈΠΏ Π² Javascript). Π’ΡΡŠΡ‰Π½ΠΎΡΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡŠΡ‚ Π²Π΅Ρ‡Π΅ Π΅ достигнал Ρ‚ΠΎΡ‡ΠΊΠ°Ρ‚Π° Π½Π° Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с лош Ρ‚ΠΈΠΏ систСма Π² Javascript.

АлСксСй Π“Ρ€Π°Ρ‡Π΅Π²: Go Frontend

Π’ Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π° няма стандартна Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΊΠ°Ρ‚ΠΎ Ρ‚Π°ΠΊΠ°Π²Π° - ΠΈΠΌΠ° някои Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ ΠΈ β€žΠΌΠ°Π³ΠΈΡ‡Π΅ΡΠΊΠΈβ€œ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Π±Ρ€Π°ΡƒΠ·ΡŠΡ€ΠΈΡ‚Π΅. Но Π² Javascript няма стандартна Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΊΠ°Ρ‚ΠΎ Ρ‚Π°ΠΊΠ°Π²Π°. Π’ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π²Π΅Ρ‡Π΅ бСшС Ρ€Π΅ΡˆΠ΅Π½ вСднъТ ΠΎΡ‚ jQuery (всички ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ…Π° jQuery с всички ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΈ, ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΡ†ΠΈ, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ бяха Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π°). Π‘Π΅Π³Π° всички ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Lodash:

АлСксСй Π“Ρ€Π°Ρ‡Π΅Π²: Go Frontend

ΠžΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΎΠ±Π°ΠΆΠ΄Π°Π½Π΅ ΠΏΠΎ дяволитС. Мисля, Ρ‡Π΅ всСки видя Javascript ΠΊΠΎΠ΄ ΠΏΡ€Π΅Π΄ΠΈ ΠΎΠΊΠΎΠ»ΠΎ 5 Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΠΈ изглСТдашС ΠΊΠ°Ρ‚ΠΎ β€žΡŽΡ„ΠΊΠ°β€œ ΠΎΡ‚ нСвСроятна слоТност ΠΎΡ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΈ извиквания. Π‘Π΅Π³Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π΅ Ρ€Π΅ΡˆΠ΅Π½ (с пусканСто Π½Π° ES-15 ΠΈΠ»ΠΈ ES-16), обСщанията са Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ към Javascript ΠΈ всСки ΠΌΠΎΠΆΠ΅ Π΄Π° диша ΠΏΠΎ-лСсно Π·Π° извСстно Π²Ρ€Π΅ΠΌΠ΅.

АлСксСй Π“Ρ€Π°Ρ‡Π΅Π²: Go Frontend

Π”ΠΎΠΊΠ°Ρ‚ΠΎ Π½Π΅ Π΄ΠΎΠΉΠ΄Π΅ Π°Π΄ΡŠΡ‚ Π½Π° Promice... НС Π·Π½Π°ΠΌ ΠΊΠ°ΠΊ сС справя front-end индустрията, Π½ΠΎ Π²ΠΈΠ½Π°Π³ΠΈ сС ΠΊΠ°Ρ€Π°Ρ‚ Π² някаква странна Π΄ΠΆΡƒΠ½Π³Π»Π°. УспяхмС ΠΈ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ адски ΠΌΠ½ΠΎΠ³ΠΎ обСщания. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Ρ€Π΅ΡˆΠΈΡ…ΠΌΠ΅ Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΊΠ°Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ…ΠΌΠ΅ Π½ΠΎΠ² ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² - async/await:

АлСксСй Π“Ρ€Π°Ρ‡Π΅Π²: Go Frontend

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ с асинхронността Π΅ Ρ€Π΅ΡˆΠ΅Π½. Async/await Π΅ доста популярСн ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π΅Π·ΠΈΡ†ΠΈ. Python ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ ΠΈΠΌΠ°Ρ‚ Ρ‚ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ - доста Π΅ Π΄ΠΎΠ±ΡŠΡ€. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ€Π΅ΡˆΠ΅Π½.

Какъв ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π½Π΅ Π΅ Ρ€Π΅ΡˆΠ΅Π½? ЕкспонСнциално нарастващата слоТност Π½Π° Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅, слоТността Π½Π° СкосистСмата ΠΈ самитС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ.

АлСксСй Π“Ρ€Π°Ρ‡Π΅Π²: Go Frontend

  • Π‘ΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡΡŠΡ‚ Π½Π° Javascript Π΅ ΠΌΠ°Π»ΠΊΠΎ странСн. Всички Π·Π½Π°Π΅ΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ с добавянСто Π½Π° масив ΠΈ ΠΎΠ±Π΅ΠΊΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ шСги.
  • Javascript Π΅ ΠΌΡƒΠ»Ρ‚ΠΈ-ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ°. Π’ΠΎΠ²Π° Π΅ особСно Π½Π°Π»Π΅ΠΆΠ°Ρ‰Π° систСма сСга, ΠΊΠΎΠ³Π°Ρ‚ΠΎ СкосистСмата Π΅ ΠΌΠ½ΠΎΠ³ΠΎ голяма:
    • всСки пишС Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ стиловС - някои ΠΏΠΈΡˆΠ°Ρ‚ структурно, Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΠΈΡˆΠ°Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΎ, Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ ΠΏΠΈΡˆΠ°Ρ‚ ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π½Π°Ρ‡ΠΈΠ½ΠΈ;
    • ΠΎΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠΈ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ;
    • ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ β€žΠ·Π°Π±Π°Π²Π»Π΅Π½ΠΈΠ΅β€œ с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ Π² Javasript - Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° rambda сС появи ΠΈ сСга Π½ΠΈΠΊΠΎΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ‡Π΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ, написани Π² Ρ‚Π°Π·ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°.

  • Всичко Ρ‚ΠΎΠ²Π° ΠΎΠΊΠ°Π·Π²Π° голямо влияниС Π²ΡŠΡ€Ρ…Ρƒ СкосистСмата ΠΈ тя сС Π΅ разраснала нСвСроятно. ΠŸΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ са Π½Π΅ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΈ Π΅Π΄ΠΈΠ½ с Π΄Ρ€ΡƒΠ³: някои са Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° обСщания, Π΄Ρ€ΡƒΠ³ΠΈ са Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° async/await, някои са Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΈ извиквания. Π’Π΅ ΡΡŠΡ‰ΠΎ ΠΏΠΈΡˆΠ°Ρ‚ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠΈ!
  • Π’ΠΎΠ²Π° ΠΏΡ€Π°Π²ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Ρ‚Ρ€ΡƒΠ΄Π΅Π½ Π·Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°. Π’Ρ€ΡƒΠ΄Π½ΠΎ Π΅ Π΄Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ΅Ρ‚Π΅ Π³Ρ€Π΅ΡˆΠΊΠ°, Π°ΠΊΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ ΠΊΠΎΠ΄Π°.

Какво С Web Assembly?

Π‘ΠΌΠ΅Π»ΠΈΡ‚Π΅ ΠΌΠΎΠΌΡ‡Π΅Ρ‚Π° ΠΎΡ‚ Mozilla Foundation ΠΈ Ρ€Π΅Π΄ΠΈΡ†Π° Π΄Ρ€ΡƒΠ³ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ измислиха Ρ‚Π°ΠΊΠΎΠ²Π° Π½Π΅Ρ‰ΠΎ ΠΊΠ°Ρ‚ΠΎ Web Assembly. Какво Π΅ Ρ‚ΠΎΠ²Π°?

АлСксСй Π“Ρ€Π°Ρ‡Π΅Π²: Go Frontend

  • Π’ΠΎΠ²Π° Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π° машина, Π²Π³Ρ€Π°Π΄Π΅Π½Π° Π² Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π°, която ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° Π΄Π²ΠΎΠΈΡ‡Π΅Π½ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚.
  • Π”Π²ΠΎΠΈΡ‡Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ стигат Π΄ΠΎ Ρ‚Π°ΠΌ ΠΈ сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ СстСствСно, тоСст Π±Ρ€Π°ΡƒΠ·ΡŠΡ€ΡŠΡ‚ Π½Π΅ трябва Π΄Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π° всички β€žΡŽΡ„ΠΊΠ°β€œ Π½Π° javascript ΠΊΠΎΠ΄ всСки ΠΏΡŠΡ‚.
  • Всички Π±Ρ€Π°ΡƒΠ·ΡŠΡ€ΠΈ ΠΈΠΌΠ°Ρ‚ Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€Π°Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°.
  • Въй ΠΊΠ°Ρ‚ΠΎ Ρ‚ΠΎΠ²Π° Π΅ Π±Π°ΠΉΡ‚ ΠΊΠΎΠ΄, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ Π·Π° всСки Π΅Π·ΠΈΠΊ.
  • Π§Π΅Ρ‚ΠΈΡ€ΠΈ основни Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π° Π²Π΅Ρ‡Π΅ сС доставят с ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Web Assembly.
  • Π‘ΠΊΠΎΡ€ΠΎ ΠΎΡ‡Π°ΠΊΠ²Π°ΠΌΠ΅ Π²Π³Ρ€Π°Π΄Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π² Go. Π’Π°Π·ΠΈ Π½ΠΎΠ²Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π²Π΅Ρ‡Π΅ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π°: GOARCH=wasm GOOS=js (скоро). ЗасСга, Π΄ΠΎΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°ΠΌ, Π½Π΅ Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π΅Π½, Π½ΠΎ ΠΈΠΌΠ° изявлСниС, Ρ‡Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Ρ‰Π΅ бъдС Π² Go.

Какво Π΄Π° ΠΏΡ€Π°Π²ΠΈΠΌ сСга? GopherJS

Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ нямамС ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Web Assembly, ΠΈΠΌΠ° транспилатор ΠΊΠ°Ρ‚ΠΎ GopherJS.

АлСксСй Π“Ρ€Π°Ρ‡Π΅Π²: Go Frontend

  • Go ΠΊΠΎΠ΄ΡŠΡ‚ сС транспилира Π² β€žΡ‡ΠΈΡΡ‚β€œ Javascript.
  • Π Π°Π±ΠΎΡ‚ΠΈ във всички Π±Ρ€Π°ΡƒΠ·ΡŠΡ€ΠΈ - няма Π½ΠΎΠ²ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ само ΠΎΡ‚ ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈ Π±Ρ€Π°ΡƒΠ·ΡŠΡ€ΠΈ (Ρ‚ΠΎΠ²Π° Π΅ Vanilla JS, ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° всичко).
  • Има ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΏΠΎΡ‡Ρ‚ΠΈ всичко, ΠΊΠΎΠ΅Ρ‚ΠΎ Go ΠΈΠΌΠ°, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ goroutines ΠΈ ΠΊΠ°Π½Π°Π»ΠΈ... всичко, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΎΠ±ΠΈΡ‡Π°ΠΌΠ΅ ΠΈ Π·Π½Π°Π΅ΠΌ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ.
  • ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° сС ΠΏΠΎΡ‡Ρ‚ΠΈ цялата стандартна Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, с ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠ½Π΅Π·ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ няма смисъл Π΄Π° сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ Π² Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π°: syscall, Π½Π΅Ρ‚Π½ΠΈ взаимодСйствия (ΠΈΠΌΠ° net/http ΠΊΠ»ΠΈΠ΅Π½Ρ‚, Π½ΠΎ няма ΡΡŠΡ€Π²ΡŠΡ€ ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ сС Π΅ΠΌΡƒΠ»ΠΈΡ€Π° Ρ‡Ρ€Π΅Π· XMLHttpRequest). ΠžΠ±Ρ‰ΠΎ Π²Π·Π΅Ρ‚ΠΎ цялата стандартна Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π΅ Π½Π°Π»ΠΈΡ‡Π½Π° - Π΅Ρ‚ΠΎ я Π² Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π°, Π΅Ρ‚ΠΎ stdlib Π½Π° Go, ΠΊΠΎΠΉΡ‚ΠΎ ΠΎΠ±ΠΈΡ‡Π°ΠΌΠ΅.
  • Цялата ΠΏΠ°ΠΊΠ΅Ρ‚Π½Π° СкосистСма Π² Go, всички Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° Ρ‚Ρ€Π΅Ρ‚ΠΈ страни (шаблони ΠΈ Ρ‚.Π½.) ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ΠΈ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° GopherJS ΠΈ стартирани Π² Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π°.

GopherJS Π΅ ΠΌΠ½ΠΎΠ³ΠΎ лСсСн Π·Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ - Ρ‚ΠΎΠ²Π° Π΅ просто ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ Go ΠΏΠ°ΠΊΠ΅Ρ‚. ΠžΡ‚ΠΈΠ²Π°ΠΌΠ΅ Π΄Π° Π²Π·Π΅ΠΌΠ΅ΠΌ ΠΈ ΠΈΠΌΠ°ΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° GopherJS Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ:

АлСксСй Π“Ρ€Π°Ρ‡Π΅Π²: Go Frontend

Π’ΠΎΠ²Π° Π΅ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° малък Π·Π΄Ρ€Π°Π²Π΅ΠΉ свят...

АлСксСй Π“Ρ€Π°Ρ‡Π΅Π²: Go Frontend

...ОбикновСна ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Go, стандартСн fmt ΠΏΠ°ΠΊΠ΅Ρ‚ Π·Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΈ Binding Js Π·Π° достиганС Π΄ΠΎ API Π½Π° Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π°. Println Π² ΠΊΡ€Π°ΠΉΠ½Π° смСтка Ρ‰Π΅ бъдС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½ Π² ΠΊΠΎΠ½Π·ΠΎΠ»Π΅Π½ ΠΆΡƒΡ€Π½Π°Π» ΠΈ Π±Ρ€Π°ΡƒΠ·ΡŠΡ€ΡŠΡ‚ Ρ‰Π΅ изпишС β€žHello gophersβ€œ! Π’ΠΎΠ»ΠΊΠΎΠ²Π° Π΅ просто: Π½ΠΈΠ΅ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°ΠΌΠ΅ GopherJS – стартирамС Π³ΠΎ Π² Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π° – всичко Ρ€Π°Π±ΠΎΡ‚ΠΈ!

Какво имаш Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°? ΠŸΠΎΠ΄Π²ΡŠΡ€Π·ΠΈΠΈ

АлСксСй Π“Ρ€Π°Ρ‡Π΅Π²: Go Frontend

Има ΠΎΠ±Π²ΡŠΡ€Π·Π²Π°Π½ΠΈΡ Π·Π° всички популярни js Ρ€Π°ΠΌΠΊΠΈ:

  • JQuery;
  • Angular.js;
  • D3.js Π·Π° Ρ‡Π΅Ρ€Ρ‚Π°Π½Π΅ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с Π³ΠΎΠ»Π΅ΠΌΠΈ Π΄Π°Π½Π½ΠΈ;
  • React.js;
  • VueJS;
  • ΠΈΠΌΠ° Π΄ΠΎΡ€ΠΈ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Electron (тоСст Π²Π΅Ρ‡Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° пишСм настолни прилоТСния Π½Π° Electron);
  • ΠΈ Π½Π°ΠΉ-ΡΠΌΠ΅ΡˆΠ½ΠΎΡ‚ΠΎ Π½Π΅Ρ‰ΠΎ Π΅ WebGL (ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡ€Π°Π²ΠΈΠΌ изцяло Π³Ρ€Π°Ρ„ΠΈΡ‡Π½ΠΈ прилоТСния, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΈΠ³Ρ€ΠΈ с 3D Π³Ρ€Π°Ρ„ΠΈΠΊΠ°, ΠΌΡƒΠ·ΠΈΠΊΠ° ΠΈ всички Скстри);
  • ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈ ΠΎΠ±Π²ΡŠΡ€Π·Π²Π°Π½ΠΈΡ към всички популярни javascript Ρ€Π°ΠΌΠΊΠΈ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

Π Π°ΠΌΠΊΠ°

  1. Π’Π΅Ρ‡Π΅ ΠΈΠΌΠ° ΡƒΠ΅Π± Ρ€Π°ΠΌΠΊΠ°, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π΅Π½Π° спСциално Π·Π° GopherJS - Vecty. Π’ΠΎΠ²Π° Π΅ ΠΏΡŠΠ»Π½ΠΎΡ†Π΅Π½Π΅Π½ Π°Π½Π°Π»ΠΎΠ³ Π½Π° React.js, Π½ΠΎ само Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π΅Π½ Π² Go, със спСцификата Π½Π° GopherJS.
  2. Има Ρ‡Π°Π½Ρ‚ΠΈ Π·Π° ΠΈΠ³Ρ€Π° (ΠΈΠ·Π½Π΅Π½Π°Π΄Π°!). НамСрих Π΄Π²Π°Ρ‚Π° Π½Π°ΠΉ-популярни:
    • Engo;
    • Π•Π±ΠΈΡ‚Π΅Π½.

Π©Π΅ Π²ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ° няколко ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π·Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ Π²Π΅Ρ‡Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π² Go:

АлСксСй Π“Ρ€Π°Ρ‡Π΅Π²: Go Frontend

Или Ρ‚Π°Π·ΠΈ опция (Π½Π΅ ΠΌΠΎΠΆΠ°Ρ… Π΄Π° намСря 3D ΡˆΡƒΡ‚ΡŠΡ€, Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π±ΠΈ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°):

АлСксСй Π“Ρ€Π°Ρ‡Π΅Π²: Go Frontend

Какво ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΠΌ?

Π‘Π΅Π³Π° индустрията Π½Π° прСдния ΠΊΡ€Π°ΠΉ Π΅ Π² Ρ‚Π°ΠΊΠΎΠ²Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅, Ρ‡Π΅ всички Π΅Π·ΠΈΡ†ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΈ Ρ‚ΠΎΠ²Π° ΠΏΠ»Π°ΠΊΠ°Ρ…Π° ΠΎΡ‚ Javascript, Ρ‰Π΅ сС Π²Ρ‚ΡƒΡ€Π½Π°Ρ‚ Ρ‚Π°ΠΌ. Π‘Π΅Π³Π° всичко Ρ‰Π΅ бъдС ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ΠΎ Π² β€žWeb Assembliesβ€œ. Какво Π½ΠΈ трябва, Π·Π° Π΄Π° Π·Π°Π΅ΠΌΠ΅ΠΌ ΠΏΠΎΠ»Π°Π³Π°Ρ‰ΠΎΡ‚ΠΎ Π½ΠΈ сС място Ρ‚Π°ΠΌ ΠΊΠ°Ρ‚ΠΎ Π³ΠΎΡ„Π΅Ρ€ΠΈ?

АлСксСй Π“Ρ€Π°Ρ‡Π΅Π²: Go Frontend

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

И сСга Π΅ Π΄ΠΎΠ±ΡŠΡ€ шанс Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ UI Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² Go, ΠΊΠΎΠΈΡ‚ΠΎ Π΄Π° работят Π½Π° GopherJS! Най-накрая ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ своя собствСна Ρ€Π°ΠΌΠΊΠ°! Π’ΠΎΠ²Π° Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΡŠΡ‚, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Ρ€Π°ΠΌΠΊΠ° ΠΈ тя Ρ‰Π΅ бъдС Π΅Π΄Π½Π° ΠΎΡ‚ ΠΏΡŠΡ€Π²ΠΈΡ‚Π΅ ΠΈ Ρ‰Π΅ бъдС Π²ΡŠΠ·ΠΏΡ€ΠΈΠ΅Ρ‚Π° Ρ€Π°Π½Π½ΠΎ, ΠΈ Ρ‰Π΅ Π±ΡŠΠ΄Π΅Ρ‚Π΅ Π·Π²Π΅Π·Π΄Π° (Π°ΠΊΠΎ Π΅ Π΄ΠΎΠ±Ρ€Π° Ρ€Π°ΠΌΠΊΠ°).

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π°Π΄Π°ΠΏΡ‚ΠΈΡ€Π°Ρ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π²Π΅Ρ‡Π΅ са Π² СкосистСмата Go към спСцификата Π½Π° Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Template engine). Π’Π΅ Π²Π΅Ρ‡Π΅ Ρ‰Π΅ работят, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΈ ΠΎΠ±Π²ΡŠΡ€Π·Π²Π°Π½ΠΈΡ, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ лСсно Π΄Π° изобразяватС ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π² Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π°. ОсвСн Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, услуга, която ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π΅Π½Π΄ΠΈΡ€Π° Π΅Π΄Π½ΠΎ ΠΈ ΡΡŠΡ‰ΠΎ Π½Π΅Ρ‰ΠΎ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° ΠΈ Π½Π° прСдния ΠΊΡ€Π°ΠΉ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ ΠΊΠΎΠ΄ – всичко, ΠΊΠΎΠ΅Ρ‚ΠΎ харСсват Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° прСдния ΠΊΡ€Π°ΠΉ (само сСга Π² Go).

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΈΠ³Ρ€Π°! ΠŸΡ€ΠΎΡΡ‚ΠΎ Π·Π° забавлСниС…

Π’ΠΎΠ²Π° Π΅ всичко, ΠΊΠΎΠ΅Ρ‚ΠΎ исках Π΄Π° ΠΊΠ°ΠΆΠ°.

АлСксСй Π“Ρ€Π°Ρ‡Π΅Π²: Go Frontend

Π’ΡŠΠΏΡ€ΠΎΡΠΈ

Π’ΡŠΠΏΡ€ΠΎΡ (Π½Π°Ρ€ΠΈΡ‡Π°Π½ ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ Q): – Π”Π° пиша Π½Π° Go ΠΈΠ»ΠΈ Js?

AG: – ПишСш Ρ€ΡƒΡ‚ΠΈΠ½ΠΈ, ΠΊΠ°Π½Π°Π»ΠΈ, структури, Π²Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ – всичко Π² Go... ΠΠ±ΠΎΠ½ΠΈΡ€Π°Ρˆ сС Π·Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΠ΅, ΠΏΡ€Π΅Π΄Π°Π²Π°Ρˆ функция Ρ‚Π°ΠΌ.

AT: – Π—Π½Π°Ρ‡ΠΈ пиша с β€žΠ³ΠΎΠ»ΠΈβ€œ Js?

AG: – НС, ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΊΠ°Ρ‚ΠΎ Π² Go ΠΈ сС ΡΠ²ΡŠΡ€Π·Π²Π°Ρ‚Π΅ с API Π½Π° Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π° (API Π½Π΅ Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½). ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ свои собствСни ΠΎΠ±Π²ΡŠΡ€Π·Π²Π°Π½ΠΈΡ, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡΡ‚Π° Π΄Π° сС ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‚ Π΄ΠΎ ΠΊΠ°Π½Π°Π»Π° - Π½Π΅ Π΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ.

AT: – Ами ΠΌΠΎΠ±ΠΈΠ»Π½ΠΎΡ‚ΠΎ?

AG: – ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ видях: ΠΈΠΌΠ° ΠΎΠ±Π²ΡŠΡ€Π·Π²Π°Π½ΠΈΡ Π·Π° ΠΊΠΎΡ€Π΄ΠΎΠ²Π° корСкция, която Js изпълнява. Π’ React Native - Π½Π΅ Π·Π½Π°ΠΌ; ΠΌΠΎΠΆΠ΅ Π±ΠΈ ΠΈΠΌΠ°, ΠΌΠΎΠΆΠ΅ Π±ΠΈ Π½Π΅ (Π½Π΅ сС интСрСсувах особСно). Π•Π½Π΄ΠΆΠΈΠ½ΡŠΡ‚ Π½Π° ΠΈΠ³Ρ€Π°Ρ‚Π° N-go ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΈ Π΄Π²Π΅Ρ‚Π΅ ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ прилоТСния - ΠΊΠ°ΠΊΡ‚ΠΎ iOS, Ρ‚Π°ΠΊΠ° ΠΈ Android.

AT: – Π’ΡŠΠΏΡ€ΠΎΡ относно Web Assembly. ВсС ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ място сС Π·Π°Π΅ΠΌΠ°, Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ компрСсията ΠΈ β€žΡ†ΠΈΠΏΠ²Π°Π½Π΅Ρ‚ΠΎβ€œ... Няма Π»ΠΈ Π΄Π° ΡƒΠ±ΠΈΠ΅ΠΌ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄ свСта ΠΏΠΎ Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ ΠΎΡ‰Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅?

AG: – Web Assembly Π΅ Π΄Π²ΠΎΠΈΡ‡Π΅Π½ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, Π° двоичният ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС във Ρ„ΠΈΠ½Π°Π»Π½Π°Ρ‚Π° вСрсия ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ тСкст... Π’ΠΈΠ΅ стС ΠΏΡ€ΠΈΠ²Π»Π΅Ρ‡Π΅Π½ΠΈ ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° изпълнСниС, Π½ΠΎ Ρ‚ΠΎΠ²Π° Π΅ ΡΡŠΡ‰ΠΎΡ‚ΠΎ ΠΊΠ°Ρ‚ΠΎ Π΄Π° ΠΈΠ·Ρ‚Π΅Π³Π»ΠΈΡ‚Π΅ стандартната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π½Π° Javascript, ΠΊΠΎΠ³Π°Ρ‚ΠΎ я няма, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π½ΠΈΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ ΠΌΠ°Π»ΠΊΠΎ Lodash. НС Π·Π½Π°ΠΌ ΠΊΠΎΠ»ΠΊΠΎ Π²Π·Π΅ΠΌΠ° Lodash.

AT: – ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° изпълнСниС...

AG: – Π’ β€žΡ‡ΠΈΡΡ‚β€œ Javascript?

AT: - Π΄Π° НиС Π³ΠΎ компрСсирамС, ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΡ€Π°Ρ‚ΠΈΠΌ...

AG: – Но Ρ‚ΠΎΠ²Π° Π΅ тСкст... ΠšΠ°Ρ‚ΠΎ цяло Π΅Π΄ΠΈΠ½ ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΌΠ½ΠΎΠ³ΠΎ, Π½ΠΎ Ρ‚ΠΎΠ²Π° Π΅ всичко (ΠΈΠΌΠ°Ρ‚Π΅ цялото Π²Ρ€Π΅ΠΌΠ΅ Π·Π° изпълнСниС). Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° ΠΏΠΈΡˆΠ΅Ρ‚Π΅ своя собствСна бизнСс Π»ΠΎΠ³ΠΈΠΊΠ°, която Ρ‰Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈ двоичния Π²ΠΈ Ρ„Π°ΠΉΠ» с 1%. ЗасСга Π½Π΅ Π²ΠΈΠΆΠ΄Π°ΠΌ Ρ‚ΠΎΠ²Π° Π΄Π° ΡƒΠ±ΠΈΠ²Π° интСрфСйса. ОсвСн Ρ‚ΠΎΠ²Π° Web Assembly Ρ‰Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ ΠΎΡ‚ Javascript ΠΏΠΎ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Π°Ρ‚Π° ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° – Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°.

AT: – Π’ΠΎΠ²Π° всС ΠΎΡ‰Π΅ Π΅ спорСн ΠΌΠΎΠΌΠ΅Π½Ρ‚... ВсС ΠΎΡ‰Π΅ няма Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚Π½Π° рСализация Π½Π° β€œVasma” (Web Assembly), Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€Π΅Ρ†Π΅Π½ΠΈ Π΅Π΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ. ΠšΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»Π½ΠΎ, Π΄Π°: всички Ρ€Π°Π·Π±ΠΈΡ€Π°ΠΌΠ΅, Ρ‡Π΅ бинарният ΠΊΠΎΠ΄ трябва Π΄Π° бъдС ΠΏΠΎ-Π±ΡŠΡ€Π·, Π½ΠΎ ΡΠ΅Π³Π°ΡˆΠ½ΠΎΡ‚ΠΎ внСдряванС Π½Π° ΡΡŠΡ‰ΠΈΡ V8 Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ.

AG: - Π”Π°.

AT: – ΠšΠΎΠΌΠΏΠΈΠ»Π°Ρ†ΠΈΡΡ‚Π° Ρ‚Π°ΠΌ Ρ€Π°Π±ΠΎΡ‚ΠΈ наистина ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΡ‚ΠΈΠ½ΠΎ ΠΈ Π½Π΅ Π΅ Ρ„Π°ΠΊΡ‚, Ρ‡Π΅ Ρ‰Π΅ ΠΈΠΌΠ° голямо прСдимство.

AG: – Web Assembly ΡΡŠΡ‰ΠΎ сС ΠΏΡ€Π°Π²ΠΈ ΠΎΡ‚ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΌΠΎΠΌΡ‡Π΅Ρ‚Π°.

AT: – Π‘Ρ‚Ρ€ΡƒΠ²Π° ΠΌΠΈ сС, Ρ‡Π΅ всС ΠΎΡ‰Π΅ Π΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π΄Π° сС ΠΏΡ€Π΅Ρ†Π΅Π½ΠΈ Web Assembly. Π Π°Π·Π³ΠΎΠ²ΠΎΡ€ΠΈ сС водят ΠΎΡ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ΄ΠΈΠ½ΠΈ, Π½ΠΎ ΠΌΠ°Π»ΠΊΠΎ са Ρ€Π΅Π°Π»Π½ΠΈΡ‚Π΅ постиТСния, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС усСтят.

AG: - МоТС би. ЩС видим.

AT: – НямамС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄Π°... МоТС Π±ΠΈ трябва Π΄Π° оставим Ρ‚Π΅Π·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Π½Π° Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π°? Π—Π°Ρ‰ΠΎ Π΄Π° ходя Ρ‚Π°ΠΌ?

AG: – Врябва Π΄Π° ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°ΠΌΠ΅ пСрсонал ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΡ†ΠΈ Π½Π° ΠΏΡŠΡ€Π²Π° линия.

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

Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€ΠΈΠΌ Π²ΠΈ, Ρ‡Π΅ останахтС с нас. Π₯арСсватС Π»ΠΈ Π½Π°ΡˆΠΈΡ‚Π΅ статии? Π˜ΡΠΊΠ°Ρ‚Π΅ Π»ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΎΡ‰Π΅ интСрСсно ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅? ΠŸΠΎΠ΄ΠΊΡ€Π΅ΠΏΠ΅Ρ‚Π΅ Π½ΠΈ, ΠΊΠ°Ρ‚ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΏΠΎΡ€ΡŠΡ‡ΠΊΠ° ΠΈΠ»ΠΈ ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π°Ρ‚Π΅ Π½Π° приятСли, ΠΎΠ±Π»Π°Ρ‡Π΅Π½ 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

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