Kyiv Go Meetup ααα§αααΆ ααααΆα 2018α
ααΉαααΆαα - αα½ααααΈβα’αααβααΆααα’ααααααΆ! ααΌαα’ααα»ααααααΆααααΆααα
ααΈααα! αααααααααΎαααΆαααΆαααα·αααααΌαααΆαααΈαααΌαααΊ ααΈα’αΌααΆ αα·ααααΆαααααΆα ααΆααΉαααΆαααΈααααααααααααααα·αααΎααΎαααΆαααααααααααααΆααα ααΆαααα·αααααΌαααΊ Alexey Grachev ααΆααααΉαααααΆααααΎαα’αααΈ GopherJS α
Alexey Grachev (ααα ααα - AG)α - αααα»αααΆα’αααα’αα·αααααα Go α αΎααααα»ααααααααααΆααααααα ααααααα αααα»α Go α αααααααα’αααααααΌααααααααΆαααΆαα½α frontend αααααααα’αααααααΌαα αΌααα αααα»αααΆαααααα αααα»αβα ααβαα·ααΆαβα’αααΈβααβαα·αααβααααβαααα»αβαα·αβααΆαβααααΆαβααααΆαβαα βαααα»α Go on the frontend α
ααΏααααααααΊαααα ααααΌαααΎαααΉααα·ααΆαα’αααΈααΌαα ααα»αααααΎαα
ααααααΎαααΆα 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 hell ααααα... αααα»ααα·αααΉαααΆααΎα§ααααΆα ααααααΆααα»αααααααααααααααααααΆααααα ααα»αααααα½ααααααααααΎαα‘αΆααααα½αα―αα
αΌααα
αααα»αααααα
αααααα ααΎαβααβα’αΆα
βααααΎβαααβααΆαβααΆαβαααααΆα αααααΆαααα ααΎαααΆααααααααΆααααα αΆαααααααααααααα»αααααααααΈ - async/awaitα
αααα αΆααΆαα½αα’ααααΆαααααΌαααΆααααααααΆαα Async/await ααΊααΆαα»αααααααααααα·αααα½ααα
αααα»αααΆααΆααααααα Python αα·αα’ααααααααΆααα·ααΈααΆαααααααα - ααΆααα’ααΆααα αααα αΆααααΌαααΆααααααααΆαα
ααΎαααα αΆα’αααΈαα·αααααΌαααΆααααααααΆα? ααΆααααα»αααααΆαααΆααααααΎαα‘αΎαααααααααααα ααΆααααα»αααααΆαααααααααααα’αααΌα‘αΌαααΈ αα·ααααααα·ααΈαααα½αα―αα
- ααΆααααααααααα Javascript ααΊα αααααααααα·α α ααΎαααΆααα’ααααααΆααΉαααΈαααα αΆααΆαα½αααΉαααΆαααααααα’αΆαα αα·αααααα»αα½α αα·αααΏααααααααααααααααα
- Javascript ααΊααΆαα α»ααααΌα αααααΊααΆαααααααααα·ααααα½αα₯α‘αΌαααα αα
ααααααααααααααα’αααΌα‘αΌαααΈααΆαααα αααααΆααα
- ααα»ααααααααααααΆαααααααΆααα ααΆαααααααααααααααΆ - αααααααααααΆαααααΆαα ααααααααααα»αααΆα α’αααα’αα·αααααααααααααααΆααααααα»αααααΆ
- ααΈαααα ααααααααααααΆ ααααΌαααααααααΆαα αααα’αααααααΎαααα ααααααααααααΆα
- ααΆα "ααΆααααααΆαααΈαααΆα" ααΆα αααΎαααΆαα½αααΉααααααα·ααΈαα»αααΆααα αααα»α Javasript - αααααΆααα rambda ααΆααααα αΆααααα½α α αΎαα₯α‘αΌααααααααΆαααααΆααααΆααα’αΆα α’αΆααααααα·ααΈαααααΆαααααααα αααα»ααααααΆααααααααΆαααα
- ααΆααα’αααααααααΎα±ααααΆααααααααΆαααααΆαααααΆαααααααααααααα’αααΌα‘αΌαααΈ α αΎαααΆααΆαααΈαα ααααΎααααΆαααααΆαααα·ααα½αα±ααααΏα αααα ααβαα·αβααααΌαβααααΆβααΆαα½αβααααΆα ααααβααα’ααβααΎβααΆαβαααααΆ ααααβααα’ααβααΎ async/await ααααβααα’ααβααΎβααΆαβα α βαααα‘ααα ααβααβαααααβααΆαβααααΆαβααααααβααα!
- αααααααΎα±ααααααααααααα·ααΆααααα»αααΆαααααΆαα ααΆαα·ααΆααααα»αααΆααααααααααα α»α ααααα·αααΎα’ααααα·αα’αΆα α’αΆαααΌαα
ααΎ Web Assembly ααΆα’αααΈ?
α’αααααααΆα αΆαααααΈ Mozilla Foundation αα·ααααα»αα αα»ααα½αα ααα½ααααααΆααααααααΎαααΏαααΌα ααΆ Web Assembly α ααΎβαααβααΆβα’αααΈ?
- αααααΊααΆαααΆαααΈααα·αααα·ααααααΆααααααΎαα‘αΎααα αααα»ααααααα·ααΈαα»ααααααααΆαααααααααααααΆααααααΈαα
- αααααα·ααΈαααααααααααααΈααα αααααΈααα α αΎαααααΌαααΆαααααα·ααααα·ααααΎαααααΎα αααααΊαααααα·ααΈαα»ααααα·αα αΆαααΆα αααα "αα»αααΆα" ααΆααα’ααααααΌα javascript ααΆααααααααααα
- αααααα·ααΈαα»αααααΆααα’ααααΆααααααΆαααΆαααΆααααα
- αααααΆαααΆααΆ bytecode α’αααα’αΆα ααααα compiler αααααΆααααΆααΆααΆαα½αα
- αααααα·ααΈαα»ααααααα ααα½α 4 ααΆαααΉααααααΌαααΆαα½αααΉαααΆαααΆαααα 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 ααΉαααααΌαααΆαααααααααα
ααΆ console log α αΎα browser ααΉαααααα βHello gophersβ! ααΆααΆααααααΆααα ααΎααααααΎα GopherJS - ααΎαααΎαααααΎαααΆαααΆαα
αααα»ααααααα·ααΈαα»ααα - α’αααΈαααααΎαααΆα!
ααΎα’αααααΆαα’αααΈαααααα αααααα? ααΆαα α
ααΆαααΆαα
ααααααΆαα js frameworks ααααααα·ααααΆααα’ααα
- JQuery;
- Angular.js;
- D3.js αααααΆααααΌα αα·αααααΎααΆαααΆαα½ααα·αααααααα;
- React.js;
- VueJS;
- ααΆαααΌααααΈααααΆαααΆαααααααααΆααα’αα‘α·α αααα»α (αααααΊααΎαα’αΆα ααααααααααα·ααΈαα»αααααΌαααααΎα’αα‘α·α αααα»ααα½α α αΎα);
- α αΎαα’αααΈααααα½αα±ααα’ααααααΎα αααα»ααααααΊ WebGL (ααΎαα’αΆα αααααΎααααααα·ααΈααααΆα ααα·ααααααα αα½αααΆααα αααααααααΆαααααΆα ααα·α 3D αααααααΈ αα·αααααααα’ααΆααα’αα);
- αα·αααΆαα αααααΆααααααααααααΆα αααΎααα ααΉαααααααααα javascript αα·ααααααΆαααααααααα·ααααΆααα’ααα
ααααα
- ααΆαβαααααααααβαααααΆαβαα½αβαααβααΆαβαααααΎαβα‘αΎαβααΆβαα·αααβαααααΆαα GopherJS - Vecty α αααααΊααΆ analogue αααααααα React.js ααα»ααααααααΌαααΆααααααΎαα‘αΎααααα αααα»α Go ααΆαα½αααΉααααααααα·ααααααα GopherJS α
- ααΆαααΆααΌαα αααα (ααααΆααααα’αΎα!) αααα»αααΆαααααΎαααΈααααααααα·αααααα»α:
- α’ααα ααα;
- α’ααΈαααΈααΈαα
αααα»αβααΉαβαααα αΆαβα’αααβααΌαβα§ααΆα αααβαα½αβα ααα½αβααβααΌαααΆαβαα·αβα’αααΈβαααβα’αααβα’αΆα βαααααβαα½α βα αΎαβαα βαααα»α Go:
α¬αααααΎαααα (αααα»ααα·αα’αΆα
ααααΎαα§αααααααΆαα 3D αα ααα»αααααααα ααααΆααΆααΆα)α
ααΎαααα»ααααααα’αααΈ?
α₯α‘αΌααααα§ααααΆα ααααααΆααα»αααΊαααα·ααα αααα»αααααΆαααΆααααααΆααΆααΆααα’αααααααΈαα»αααΆααααααααΈ Javascript ααΉααααααΆαααααααΆαααα ααΈαααα α₯α‘αΌααααα’αααΈααααααααΆαααΉαααααΌαααΆαα αααααααΆ "Web Assemblies" α ααΎβααΎαβααααΌαβααΆαβα’αααΈβααααβααΎααααΈβααβααααααβααβααααΉαααααΌαβααααβααΎαβαα βααΈαααβαααα»αβααΆαβααΆ Gophers?
Go ααΆαααααααααΆααΆααΆααΆααΆααααααααααα·ααΈαααααααα α αΎαααΆααΌαα
αα·αααΆααααααΆααααααααΆααααααΎααΆαααΆαα½α UI ααα ααΆαβα’αααΈβαα½α ααα»ααααβααααΌαβααΆαβααβαααβαααβα
ααβααΆααβαααααΆα αα·αβααΆαβαα»αααΆαα
α αΎαα₯α‘αΌααααααΊααΆα±ααΆαααααα’αααα»αααΆααααααΎααααααΆααα UI αα αααα»α Go αααααΉαααααΎαααΆαααΎ GopherJS! ααΈαααα»αα’αααα’αΆα αααααααααααααααααΆαααααα½αααααα’αααααΆα! αααααΊααΆαααααααΆαααα’αααα’αΆα ααααααααααααααααΆα α αΎαααΆααΉαααααΆαααΆααααααα½αααααΆαα’αα»αααααααΌα α αΎαα’αααααΉαααααΆαααΆααΆααΆ (ααααα·αααΎααΆααΆαααααααααααα’) α
α’αααβα’αΆα βαααααβαααα ααβαααααβααααΆβααΆβα αααΎαβαααβααΆαβαα½α βα αΎαβαα βαααα»αβααααααααβα’αααΌβαα βααΉαβααααααβααΆααααΆααβααβαααααα·ααΈαα»αααβααΆαβα’ααΈαααΊαα·α (α§ααΆα ααα αααΆαααΈαβααααΌ)α αα½αααΆααΉαααααΎαααΆααα½α α αΎα α’αααα’αΆα αααααΎαααΆαα ααααΆαααΆααααα½α ααΌα ααααα’αααα’αΆα αααα αΆαααΆαα·ααΆαααααααΆαααα αααα»ααααααα·ααΈαα»αααααΆαα’ααΈαααΊαα·αααΆααααΆαααΆααααα½αα ααΎαααΈααα α’αααα’αΆα αααααΎαααΆα§ααΆα ααα ααααΆαααααααα’αΆα αααα αΆαααΏαααΌα ααααΆαα ααΎαααΆαααΈααα αα·ααα αααααααΆααα»α αααααααΎααΌαααΌα ααααΆ - α’αααΈααααααααΆααααα’αααα’αα·αααααααααααααΆααα»αα αΌαα α·ααα (ααΆαααα₯α‘αΌαααααα αααα»α Go) α
α’αααα’αΆα αααααα ααααααΆα! ααααΆααβααβαααααΎα β¦
αααα αΎαααΆα’αααΈααααααα»αα αααα·ααΆαα
αααα½α
αααα½α (ααα αααα α ααΆ Q)α - ααΎαααα»αααααααααα»α Go α¬ Js?
AGα - α’αααααααααααααΆαα ααΆααα αα ααΆαααααααα αααααα - α’αααΈααααααααΆααα αααα»α Go... α’αααααΆαααααΉαααα·ααΆααα ααααααΆαααα»αααΆααα ααΈαααα
αααα»αα - ααΌα αααααααα»ααααααααΆ "α’αΆααααΆα" Js?
AGα - αα α’ααααααααααΌα ααΆαα αααα»α Go α αΎαααααΆαααα browser API ( API αα·αααΆαααααΆααααααΌααα)α α’αααα’αΆα αααααα αααααααΆαααααα½αααααα’ααα ααΌα ααααααΆαααααΌαααΆαααααΎαα ααΆααααα»αααα·α - ααΆαα·ααα·ααΆαααα
αααα»αα - α α»αααΌααααααα ααααα·α?
AGα - αααα»ααα·αααΆααΆαααΎαα ααΆαααΆαα ααααααΆαααααα Cordova ααα Js ααααΎαααΆαα αα αααα»α React Native - αααα»ααα·αααΉα; αααα ααααΆααΆα αααα ααααΆαα·αααα (αααα»ααα·αα αΆααα’αΆααααααααΆαα·ααααα)α αααΆαααΈαα αααα N-go ααΆααααααΆαααααααα·ααΈααΌαααααα - ααΆαα iOS αα·α Android α
αααα»αα - αααα½αα’αααΈααααα·ααΆαααα αααααα αααααααααααααΆααααα αααΎααααα»αααααΌαααΆαα αΆαααα αααααΈααΆααΆαααΆααααα αΆαα αα·α "ααααα½α"... ααΎααΎαααΉααα·ααααααΆαααα·αααααααΆααα»αααΆααααααααααααα?
AGα - Web Assembly ααΊααΆαααααααααααΈα α αΎααααααααααααααΈαααΆαααααΆαααΎααα·αα’αΆα αααα·ααα αααα»αααΆαα ααααααΆαα α»ααααααα αααΎαααΆαα’ααααα... α’αααααααΌαααΆαααΆααα αααααααΎαααΆα ααα»αααααααααΊααΌα ααααΆααΉαααΆαα’αΌαα ααααΈαααααΆααα Javascript αααααααΆααα ααααααααΆαα·αααΆα ααΌα ααααααΎα ααααΎ Lodash ααααα αααα»ααα·αααΉαααΆ Lodash α αααΆαααα»ααααΆαααα
αααα»αα - ααΆααααααααα·α ααΆααααααααΎαααΆα ...
AGα - αα αααα»α "αα»ααα" Javascript?
αααα»αα - ααΆαα ααΎαααααα½αααΆαα»ααααααααΎααΆ ...
AGα - ααα»αααααααααΊααΆα’ααααα... ααΆααΌαα ααααΆααα αΆααααΌα ααΆα αααΎα ααα»αααααααααΆααΆααα’αα (α’αααααΆααααααααΎαααΆαααΆααααΌα)α αααααΆααααα’αααααααααααααα·ααααΆα’αΆααΈαααααααααΆαααααα½αααααα’ααα αααααΉααααααΎααααααααααααααΈαααααα’ααα 1% α αα αΌαβααβαααβαααβααα αααα»αβαα·αβααΎαβααΆαβαααααΆααβαααβααα ααΎαααΈααααα ααα Web Assembly ααΉαααααΎαααΆαααΏαααΆα Javascript αααααΆααα ααα»ααααΆααααααα - ααΆαα·αα αΆαααΆα ααααααα
αααα»αα - ααααα ααααΆα ααα»α α ααααΌαα ααααΆα... αα·αααΆααααΆαααΆαα’αα»ααααα―αααΆααααααΆαα½ααα "Vasma" (Web Assembly) ααΎααααΈα±ααααα’αΆα αα·αα·α ααααααααα·αα αααΆααααΆααα ααΆααααα·α ααΆαα ααΎαααΆααα’ααααααΆαααααΆαααααααααααααΈααα½αααααΏαααΆα ααα»ααααααΆαα’αα»αααααα αα α»αααααααα V8 ααΌα ααααΆααΊααΆαααααα·αααααΆαααΆααα
AGα - ααΆαα
αααα»αα - ααΆαα ααααααα ααΈααααα·αααΆααααΎαααΆαααα’ααΆαα α αΎαααΆαα·ααααααΆααΆααα·ααααααΆααΆααΉαααΆαα’ααααααααααααααααααα
AGα - Web Assembly ααααααΌαααΆααααααΎαα‘αΎααααα’ααααααααααα
αααα»αα - ααΆα αΆααααΌα ααΆαααα»αααΆααΆαα αααα·ααΆααααα»αααΆααα·αα·α αααα Web Assembly α ααΆαααΆαααααααΆααΆα αααΎαααααΆαααααα ααα»ααααααΆαααα·αααα·αααα·αααααΆαααα·α αα½α αααα’αΆα ααΆαα’αΆααααααααΆαα
AGα - αααα ααα ααΎαααΉαααΎαα
αααα»αα - ααΎααα·αααΆααααα αΆαα ααΎαααααααΆαααααααα ... αααα ααααΆααΎααα½ααααα»ααααα αΆααΆααααααα ααΎαααααααΆααα»α? α ααα»α’αααΈαα ααΈααα?
AGα - ααΎαααααΌααααααΆαα»ααααα·ααααααααααα½ααα»αα
ααΆαααααΆαααΆαα·ααααααααα½αα ααα½απ
ααΌαα’ααα»αα
ααααααΆαααααΆαααα
ααΆαα½ααα½αααΎαα ααΎα’αααα
αΌαα
α·αααα’αααααααααααΎααα? α
ααααΎαααααΉαααΆααα½αα±ααα
αΆααα’αΆααααααααααααααααα? ααΆααααααΎααααααΆααααααΆαα·αα¬ααααΆαααααα·αααααααα·,
Dell R730xd 2x αααααΆααα
αααα»αααααααααααα·αααααα Equinix Tier IV αα
ααΈαααα»α Amsterdam? αα
ααΈααα
ααααα: www.habr.com