Kyiv Go Meetup ืืื 2018:
ืขืืคืจืช: - ืฉืืื ืืืืื! ืชืืื ืฉืืืืช ืืื! ืืืื ืืฉ ืื ื ืฉื ื ืืืืจืื ืจืฉืืืื - ืืืืฉื ื-ืื ืื. ืืืื ืขืื ืฉื ืืื ืื ืืืื ืื ื ืืกืคืืง ืืื. ืืืืืจ ืืจืืฉืื ืืื ืืืืกืื ืืจืฆ'ื, ืืื ืืกืคืจ ืื ื ืขื GopherJS.
ืืืืกืื ืืจืฆ'ื (ืืืื - AG): โ ืื ื ืืคืชื Go, ืืื ื ืืืชื ืฉืืจืืชื ืืื ืืจื ื ื-Go. ืืคืขืืื ืืชื ืฆืจืื ืืืชืืืื ืขื ืืืืืช, ืืคืขืืื ืืชื ืฆืจืื ืืืืื ืก ืืืื ืืื ืืช. ืื ื ืจืืฆื ืืืืจ ืขื ืื ืืกืืื ืืืืืงืจ ืฉืื ื-Go ืืืืืช ืืงืฆื.
ืืืืื ืืื ืืื: ืชืืืื ื ืืืจ ืขื ืืื ืื ืื ื ืจืืฆืื ืืืคืขืื ืืช Go ืืืืืช, ืืื ื ืืืจ ืขื ืืื ืื ืืืื ืืืืขืฉืืช. ืืฉื ื ืฉืชื ืืจืืื - Web Assembly ื-GopherJS. ืืืื ื ืจืื ืื ืืกืืืืก ืฉื ืืคืชืจืื ืืช ืืืื ืืื ื ืืชื ืืขืฉืืช.
ืื ืจืข ืืืืืช?
ืืื ืืืื ืืกืืืืื ืฉืืื ืืกืืจ ืขื ืืืืืช?
ืืื ืืกืคืืง ืืืืงืืช? ืื ืืื ืืืืืช? ืืขืจืืช ืืงืืืืืืช? ืืกืืจ ืืืืจ.
ืืืื ื-frontend, ืื ื ืืืื ืืช ืืฆืืืื ืฉืืืจ ืืื ืืืคืชืื ื-frontend ืืกืคืจ ืฉืื:
ื-Javascript ืืื ืืขืจืืช ืกืืืื. ืืขืช ืืฆืืื ืืช ืืืขืืืช ืฉื ืชืงืืชื ืืื ืืืืื ืขืืืืชื ืืืกืืืจ ืืืฆื ืื ื ืคืชืจืืช.
ืืขืจืืช ืืืืคืืก ืืืืคื ืืืื ืืงืืฉื ืืืืื ืืืืงืจื ืืขืจืืช ืืืคืืก ื-Javasript - ืืฉ ืงืืืื ืฉืืฆืืื ืื ืืช ืกืื ืืืืืืืงื, ืืื ืืืขืฉื ืืื ืืื ืฉืื ืงืฉืจ ืืืืคืืกืื. ืืขืื ืื ื ืคืชืจืช ื-TypeScript (ืชืืกืฃ ื-Javasript) ืื-Flow (ืืืืง ืืกืื ืกืืื ื-Javascript). ืืืขืฉื, ื-frontend ืืืจ ืืืืข ืื ืงืืื ืฉื ืคืชืจืื ืืืขืื ืฉื ืืขืจืืช ืืกืื ืืจืืข ื-Javascript.
ืืื ืกืคืจืืื ืกืื ืืจืืืช ืืืคืืคื ืืืื - ืืฉ ืืื ืืืืืืงืืื ืืืื ืื ืืคืื ืงืฆืืืช "ืงืกื" ืืืคืืคื ืื. ืืื ื-Javascript ืืื ืกืคืจืืื ืกืื ืืจืืืช ืืืื. ืืขืื ืื ื ืคืชืจื ืืืจ ืคืขื ืืืช ืขื ืืื jQuery (ืืืื ืืฉืชืืฉื ื-jQuery ืขื ืื ืืืืช ืืืืคืืก, ืืขืืืจืื, ืืคืื ืงืฆืืืช ืฉื ืืจืฉื ืืื ืืขืืื). ืขืืฉืื ืืืื ืืฉืชืืฉืื ื-Lodash:
ืืชืงืฉืจืืช ืืืืจืช ืืขืืืื. ืื ื ืืืฉื ืฉืืืื ืจืื ืืช ืงืื Javascript ืืคื ื ื-5 ืฉื ืื, ืืืื ื ืจืื ืืื "ืืืจืืืช" ืฉื ืืืจืืืืช ืืืืืื ืฉื ืืชืงืฉืจืืืืช ืืืืจืืช. ืืขืช ืืืขืื ืืื ื ืคืชืจื (ืขื ืืฉืืจืืจ ืฉื ES-15 ืื ES-16), ืืืืืืช ื ืืกืคื ื-Javascript ืืืืื ืืืืืื ืื ืฉืื ืืืื ืื.
ืขื ืฉืืืืื ืื ืฉื Promice ืืืืข... ืื ื ืื ืืืืข ืืื ืชืขืฉืืืช ืืคืจืื ื-ืื ื ืืกืชืืจืช, ืืื ืื ืชืืื ืืกืืขืื ืืช ืขืฆืื ืืืืื ื'ืื ืื ืืืืจ. ืืฆืืื ื ืื ืืขืฉืืช ืืืื ืื ืขื ืืืืืืช. ืืื ืคืชืจื ื ืืช ืืืขืื ืขื ืืื ืืืกืคืช ืคืจืืืืืืื ืืืฉ - ืืกืื ืืจืื/ืืื:
ืืืขืื ืขื ื-ืกืื ืืจืื ื ืคืชืจื. Async/await ืืื ืคืจืืืืืืื ืคืืคืืืจื ืืืื ืืฉืคืืช ืฉืื ืืช. ืืคืืืชืื ืืืืจืื ืืฉ ืืืฉื ืื - ืืื ืื ืืืื. ืืืขืื ื ืคืชืจื.
ืืืื ืืขืื ืื ื ืคืชืจื? ืืืืจืืืืช ืืืืืืช ืืืืืจืช ืฉื ืืกืืจืืช, ืืืืจืืืืช ืฉื ืืืขืจืืช ืืืงืืืืืืช ืืืชืืื ืืืช ืขืฆืื.
- ืชืืืืจ Javascript ืงืฆืช ืืืืจ. ืืืื ื ืืืืจืื ืืช ืืืขืืืช ืืืืกืคืช ืืขืจื ืืืืืืืงื ืืืืืืืช ืืืจืืช.
- Javascript ืืื ืจื ืคืจืืืืื. ืืืื ืืขืจืืช ืืืืคื ืืืืืื ืืขืช ืืืฉืจ ืืืขืจืืช ืืืงืืืืืืช ืืืืื ืืืื:
- ืืืื ืืืชืืื ืืกืื ืื ืืช ืฉืื ืื - ืืืง ืืืชืืื ืืฆืืจื ืืื ืืช, ืืืง ืืืชืืื ืคืื ืงืฆืืื ืืืช, ืืคืชืืื ืฉืื ืื ืืืชืืื ืืืจืืื ืฉืื ืืช;
- ืืืืืืืช ืฉืื ืืช, ืคืจืืืืืืช ืฉืื ืืช ืืืฉืจ ืืชื ืืฉืชืืฉ ืืืืืืืช ืฉืื ืืช;
- ืืฉ ืืจืื "ืืืฃ" ืขื ืชืื ืืช ืคืื ืงืฆืืื ืื ื-Javasript - ืกืคืจืืืช rambda ืืืคืืขื ืืขืืฉืื ืืฃ ืืื ืื ืืืื ืืงืจืื ืชืืื ืืืช ืฉื ืืชืื ืืกืคืจืืื ืืื.
- ืื ืื ืืฉืคืืข ืืืื ืขื ืืืขืจืืช ืืืงืืืืืืช, ืืืื ืืืื ืืฆืืจื ืืืืืื. ืืืืืืืช ืืื ื ืชืืืืืช ืื ืืื: ืืืงื ืืืืกืกืืช ืขื ืืืืืืช, ืืืงื ืืืืกืกืืช ืขื ืืกืื ืืจืื/ืืื, ืืืงื ืืืืกืกืืช ืขื ืืชืงืฉืจืืืืช ืืืืจืืช. ืื ืื ืืืชืืื ืืคืจืืืืืืช ืฉืื ืืช!
- ืื ืืงืฉื ืขื ืชืืืืงื ืฉื ืืคืจืืืงื. ืงืฉื ืืืฆืื ืืื ืื ืืื ื ืืืื ืืงืจืื ืืช ืืงืื.
ืืื Web Assembly?
ืืืืจ'ื ืืืืืฆืื ืืงืจื ืืืืืื ืืืกืคืจ ืืืจืืช ืืืจืืช ืืขืื ืืืจ ืืื ืืื Web Assembly. ืื ืื?
- ืืืื ืืืื ื ืืืจืืืืืืช ืืืืื ืืช ืืืคืืคื ืืชืืืืช ืืคืืจืื ืืืื ืืจื.
- ืชืืื ืืืช ืืื ืืจืืืช ืืืืขืืช ืืฉื ืืืืืฆืขืืช ืืืขื ืืืืคื ืืงืืจื, ืืืืืจ, ืืืคืืคื ืื ืฆืจืื ืื ืชื ืืช ืื ื"ืืืจืืืช" ืฉื ืงืื javascript ืืื ืคืขื.
- ืื ืืืคืืคื ืื ืืฆืืืจื ืขื ืชืืืื.
- ืืืืืื ืฉืืื bytecode, ืืชื ืืืื ืืืชืื ืืืืจ ืืื ืฉืคื.
- ืืจืืขื ืืคืืคื ืื ืขืืงืจืืื ืืืจ ื ืฉืืืื ืขื ืชืืืื ื-Web Assembly.
- ืื ื ืืฆืคืื ืืชืืืื ืืงืืจืืช ื-Go ืืงืจืื. ืืืจืืืืงืืืจื ืืืืฉื ืืื ืืืจ ื ืืกืคื: GOARCH=wasm GOOS=js (ืืงืจืื). ืขื ืืื, ืืืืื ืืื ืชื, ืื ืื ืคืื ืงืฆืืื ืื, ืืื ืืฉ ืืืืจื ืฉืื ืืืืื ืืืื ื-Go.
ืื ืืขืฉืืช ืขืืฉืื? GopherJS
ืืื ื ืืื ืื ื ืชืืืื ื-Web Assembly, ืืื ืืฉื ื ืืจื ืกืคืืืจ ืืื GopherJS.
- ืงืื Go ืืืขืืจ ื-Javascript "ืืืืจ".
- ืคืืขื ืืื ืืืคืืคื ืื - ืืื ืชืืื ืืช ืืืฉืืช ืฉื ืชืืืืช ืจืง ืขื ืืื ืืคืืคื ืื ืืืืจื ืืื (ืืื Vanilla JS, ืฉืคืืขื ืขื ืื ืืืจ).
- ืืฉ ืชืืืื ืืืขื ืืื ืื ืฉืืฉ ื-Go, ืืืื ืืืจืืืื ืื ืืขืจืืฆืื... ืื ืื ืฉืื ืื ื ืื ืื ืืืืืื ืืืืืขืื.
- ืืืขื ืื ืืกืคืจืืื ืืกืื ืืจืืืช ื ืชืืืช, ืคืจื ืืืืชื ืืืืืืช ืฉืืื ืืืืื ืืชืืื ืืื ืืืคืืคื: syscall, ืืื ืืจืืงืฆืืืช ื ืื (ืืฉ ืืงืื net/http, ืืื ืืื ืฉืจืช, ืืืืงืื ืืืืงื ืืืืฆืขืืช XMLHttpRequest). ืืืืคื ืืืื, ืื ืืกืคืจืืื ืืกืื ืืจืืืช ืืืื ื - ืื ื ืืื ืืืคืืคื, ืื ื stdlib ืฉื Go, ืฉืื ืื ื ืืืืืื.
- ืื ืืงืืกืืกืื ืืืืืื ื-Go, ืื ืคืชืจืื ืืช ืฆื ืฉืืืฉื (ืชืื ืืืช ืืื') ื ืืชื ืื ืืืืืืจ ืืืืฆืขืืช GopherJS ืืืืคืขืื ืืืคืืคื.
ืงื ืืืื ืืืฉืื ืืช GopherJS - ืื ืจืง ืืืืืช Go ืจืืืื. ืื ืื ื ืืืืืื ืืงืื, ืืืฉ ืื ื ืคืงืืืช GopherJS ืืื ืืช ืืช ืืืคืืืงืฆืื:
ืื ืขืืื ืฉืืื ืงืื ืืื...
...ืชืืื ืืช Go ืจืืืื, ืืืืืช fmt ืกืคืจืืื ืจืืืื ื-Binding Js ืืื ืืืืืข ื-API ืฉื ืืืคืืคื. Println ืืกืืคื ืฉื ืืืจ ืืืืจ ืืืืื ืืืกืืฃ ืืืืคืืคื ืืืชืื "Hello gophers"! ืื ืื ืื ืคืฉืื: ืื ืื ื ืขืืฉืื GopherJS build - ืื ืื ื ืืฉืืงืื ืืช ืื ืืืคืืคื - ืืื ืขืืื!
ืื ืืฉ ืื ืืจืืข? ืืจืืืืช
ืืฉ ืืจืืืืช ืืื ืืกืืจืืช js ืืคืืคืืืจืืืช:
- JQuery;
- Angular.js;
- D3.js ืืฉืจืืื ืืขืืืื ืขื ืืื ืืืื;
- React.js;
- VueJS;
- ืืฉ ืืคืืื ืชืืืื ื-Electron (ืืืืืจ, ืื ืื ื ืืืจ ืืืืืื ืืืชืื ืืืฉืืื ืฉืืืื ืขืืืื ืขื Electron);
- ืืืืืจ ืืืฆืืืง ืืืืชืจ ืืื WebGL (ืื ืื ื ืืืืืื ืืืฆืืจ ืืคืืืงืฆืืืช ืืจืคืืืช ืืืืืช, ืืืื ืืฉืืงืื ืขื ืืจืคืืงื ืชืืช ืืืืืืช, ืืืืืงื ืืื ืืืื);
- ืืขืื ืืจืืืืช ืจืืืช ืืื ืืกืืจืืช ื-Javascript ืืืกืคืจืืืช ืืคืืคืืืจืืืช.
ืืกืืจืช
- ืืฉ ืืกืืจืช ืืื ืืจื ื ืฉืืืจ ืคืืชืื ืืืืืื ืขืืืจ GopherJS - Vecty. ืืื ืื ืืืื ืืื ืฉื React.js, ืื ืคืืชื ืจืง ื-Go, ืขื ืืคืจืืื ืืกืคืฆืืคืืื ืฉื GopherJS.
- ืืฉ ืชืืงื ืืฉืืง (ืืคืชืขื!). ืืฆืืชื ืืช ืืฉื ืืื ืืื ืคืืคืืืจืืื:
- ืื ืื;
- ืืืื.
ืื ื ืืจืื ืื ืืื ืืืืืืืช ืืื ืื ื ืจืื ืืื ืืชื ืืืจ ืืืื ืืืชืื ื-Go:
ืื ืืคืฉืจืืช ืื (ืื ืืฆืืืชื ืืืฆืื ืืืจื ืชืืช ืืืื, ืืื ืืืื ืืื ืงืืืืช):
ืื ืื ื ืืฆืืข?
ืืขืช ืชืขืฉืืืช ืืืืืช ื ืืฆืืช ืืืฆื ืืื ืฉืื ืืฉืคืืช ืฉืืขืืจ ืืื ื-Javascript ืืืืจื ืืฉื. ืืขืช ืืื ืืืจืื ื"ืืกืืคืืช ืืื ืืจื ื". ืื ืื ืื ื ืฆืจืืืื ืืื ืืชืคืืก ืืช ืืงืืื ื ืืจืืื ืฉื ืืืืคืจืื?
Go ืื ืืื ืืืืคื ืืกืืจืชื ืฉืื ืฉืคืช ืชืื ืืช ืืขืจืืช, ืืืื ืืืขื ืกืคืจืืืช ืืขืืืื ืขื ืืืฉืง ืืืฉืชืืฉ. ืืฉ ืืฉืื, ืืื ืืื ืืฆื ื ืืืฉ, ืืฆื ืื ืืชืคืงื.
ืืขืืฉืื ืืฉ ืืืืื ืืช ืืืื ืืืฆืืจ ืกืคืจืืืช ืืืฉืง ืืฉืชืืฉ ื-Go ืฉืืคืขืื ืขื GopherJS! ืกืืฃ ืกืืฃ ืชืืื ืืืชืื ืืกืืจืช ืืฉืื! ืื ืืืื ืฉืื ืืชื ืืืื ืืืชืื ืืกืืจืช, ืืืื ืชืืื ืืืจืืฉืื ืืช ืืืงืื ืืืืืฅ ืืืงืื, ืืืชื ืชืืื ืืืื (ืื ืื ืืกืืจืช ืืืื).
ืืชื ืืืื ืืืชืืื ืืจืื ืืืืืืช ืฉืื ืืช ืฉืืืจ ื ืืฆืืืช ืืืขืจืืช ืืืงืืืืืืช ืฉื Go ืืคืจืื ืืืคืืคื (ืืืืืื, Template engine). ืื ืืืจ ืืขืืื, ืืชื ืืืื ืืขืฉืืช ืืจืืืืช ื ืืืืช ืื ืฉืืชื ืืืื ืืงืืืช ืืจื ืืจ ืืช ืืชืืื ืืฉืืจืืช ืืืคืืคื. ืื ืืกืฃ, ืืชื ืืืื ืืืฆืืจ, ืืืฉื, ืฉืืจืืช ืฉืืืื ืืจื ืืจ ืืช ืืืชื ืืืืจ ืืฉืจืช ืืืืืืช ืืงืฆื, ืืืืฆืขืืช ืืืชื ืงืื - ืื ืื ืฉืืคืชืื ืงืฆื ืืืืืื (ืจืง ืขืืฉืื ื-Go).
ืืชื ืืืื ืืืชืื ืืฉืืง! ืกืชื ืืฉืืื ืืืืฃโฆ
ืื ืื ืื ืฉืจืฆืืชื ืืืืื.
ืฉืืืืช
ืฉืืื (ืืืื ืฉ'): โ ืืื ืื ื ืืืชื ื-Go ืื ื-Js?
AG: โ ืืืชืืื ืฉืืจืืช, ืขืจืืฆืื, ืืื ืื, ืืืืขื โ ืืื ืืื... ื ืจืฉืืช ืืืืจืืข, ืืขืืืจ ืฉื ืคืื ืงืฆืื.
ืืชืื: - ืื ืื ื ืืืชื ื-Js "ืขืืจืื"?
AG: โ ืื, ืืชื ืืืชื ืืืืื ื-Go ืืืชืืืจ ื-API ืฉื ืืืคืืคื (ื-API ืื ืืฉืชื ื). ืืชื ืืืื ืืืชืื ืืจืืืืช ืืฉืื ืื ืฉืืืืขืืช ืืืฉืืื ืืขืจืืฅ - ืื ืื ืงืฉื.
ืืชืื: - ืื ืืืื ื ืืื?
AG: โ ืืืืื ืจืืืชื: ืืฉ ืืจืืืืช ืืชืืงืื ืงืืจืืืื ืฉ-Js ืืจืืฅ. ื-React Native - ืื ื ืื ืืืืข; ืืืื ืืฉ, ืืืื ืื (ืื ืืชืขื ืืื ืชื ืืืืืื). ืื ืืข ืืืฉืืง N-go ืชืืื ืืฉืชื ืืืคืืืงืฆืืืช ืื ืืื - ืื ื-iOS ืืื ืืื ืืจืืืื.
ืืชืื: โ ืฉืืื ืืืื ืืกืคืช ืืื ืืจื ื. ืืืชืจ ืืืืชืจ ืืงืื ื ืชืคืก, ืืืจืืช ืืืืืกื ืื"ืืืืืฅ"... ืืื ืื ื ืืจืื ืืช ืืขืืื ืืคืจืื ื-ืื ื ืืฆืืจื ืืื ืขืื ืืืชืจ?
AG: โ Web Assembly ืืื ืคืืจืื ืืื ืืจื, ืืืื ืืจื ืืืจืืจืช ืืืื ืื ืืืื ืืืืืช ืืืืืืจื ืืกืืคืืช ืืืชืจ ืืืงืกื... ืืชื ื ืืฉื ืืืื ืจืืฆื, ืืื ืื ืืื ืืืจืืจืช ืกืคืจืืืช Javascript ืืจืืืื ืืฉืืื ืื ืฉื, ืื ืื ืื ื ืืฉืชืืฉ ืืงืฆืช Lodash. ืื ื ืื ืืืืข ืืื ืืืืฉ ืืืงื.
ืืชืื: - ืืจืืจ ืฉืคืืืช ืืืื ืจืืฆื...
AG: - ื-Javascript "ืืืืจ"?
ืืชืื: - ืื. ืื ื ืืืืกืื ืืืชื ืืคื ื ืฉืืืืชื...
AG: - ืืื ืื ืืงืกื... ืืืืคื ืืืื, ืืื ืืืื ื ืจืื ืืื ืืจืื, ืืื ืื ืืื (ืืฉ ืื ืืช ืื ืืื ืืจืืฆื). ืืืืจ ืืื, ืืชื ืืืชื ืืช ืืืืืืื ืืขืกืงื ืฉืื, ืืฉืจ ืืืืื ืืช ืืืื ืืจื ืฉืื ื-1%. ืขื ืื ืื ื ืื ืจืืื ืฉืื ืืืจื ืืช ืืืืืช. ืืชืจื ืืื, Web Assembly ืืขืืื ืืืจ ืืืชืจ ื-Javascript ืืืกืืื ืืืจืืจื - ืืื ืฆืืจื ืื ืชื ืืืชื.
ืืชืื: โ ืื ืขืืืื ื ืงืืื ืฉื ืืื ืืืืืืงืช... ืืื ืขืืืื ืืืฉืื ืืืืืก ืฉื "Vasma" (ืืกืคืช ืืื ืืจื ื) ืื ืฉื ืืชื ืืฉืคืื ืืืืคื ืื ืืฉืืขื. ืืืืื ื ืงืื ืกืคืืืืืืช, ืื: ืืืื ื ืืืื ืื ืฉืืื ืืจื ืฆืจืื ืืืืืช ืืืืจ ืืืชืจ, ืืื ืืืืฉืื ืื ืืืื ืฉื ืืืชื V8 ืืขืื ืืืื.
AG: - ืื.
ืืชืื: - ืงืืืคืืืฆืื ืฉื ืขืืืืช ืืืฉ ืืื ืืื ืืื ืื ืขืืืื ืฉืืืื ืืชืจืื ืืืื.
AG: - Web Assembly ื ืขืฉื ืื ืขื ืืื ืืืืจืื ืืืืืื.
ืืชืื: โ ื ืจืื ืื ืฉืขืืืื ืงืฉื ืืฉืคืื ืืช Web Assembly. ืืฉ ืฉืืืืช ืืืจ ืืจืื ืฉื ืื, ืืื ืืฉ ืืขื ืืืฉืืื ืืืืชืืื ืฉืืคืฉืจ ืืืจืืืฉ.
AG: - ืืืื. ื ืจืื.
ืืชืื: โ ืืื ืื ื ืืขืืืช ืืงืฆื ืืืืืจื... ืืืื ืืืื ืืืฉืืืจ ืืช ืืืขืืืช ืืืื ืืงืฆื ืืงืืื? ืืื ืืืืช ืืฉื?
AG: - ืขืืื ื ืืฉืืืจ ืขื ืฆืืืช ืฉื ืขืืืืื ืืืืืช.
ืืื ืืืืขืืช ๐
ืชืืื ืฉื ืฉืืจืช ืืืชื ื. ืืื ืืชื ืืืื ืืช ืืืืืจืื ืฉืื ื? ืจืืฆืื ืืจืืืช ืขืื ืชืืื ืืขื ืืื? ืชืืื ืื ื ืขื ืืื ืืืฆืืข ืืืื ื ืื ืืืืฆื ืืืืจืื,
Dell R730xd ืืื ืคื 2 ืืืจืื ืื ืชืื ืื Equinix Tier IV ืืืืกืืจืื? ืจืง ืืื
ืืงืืจ: www.habr.com