Alexey Grachev: Haere ki Mua

Kyiv Go Meetup Haratua 2018:

Alexey Grachev: Haere ki Mua

Arataki: - Kia ora katoa! Mauruuru koe mo te tae mai ki konei! I tenei ra e rua nga kaikorero whai mana - Lyosha me Vanya. Ka rua atu ano mena ka nui te wa. Ko Alexey Grachev te kaikorero tuatahi, ka korero mai ia mo GopherJS.

Alexey Grachev (i muri nei - AG): – He kaiwhakawhanake Haere ahau, ka tuhi au i nga ratonga tukutuku ki Go. I etahi wa me mahi koe ki te taha o mua, i etahi wa me uru atu koe ki roto. Kei te pirangi au ki te korero mo aku wheako me aku rangahau ki te Haere ki mua.

Ko te korero tenei: tuatahi ka korero tatou mo te take e hiahia ana tatou ki te oma Haere ki mua, katahi ka korero me pehea e taea ai tenei. E rua nga huarahi - Huihuinga Tukutuku me te GopherJS. Kia kite tatou he aha te mana o enei otinga me te aha ka taea.

He aha te he o te mua?

E whakaae ana te katoa he pai nga mea katoa ki te taha o mua?

Alexey Grachev: Haere ki Mua

He iti rawa nga whakamatautau? Hanga puhoi? Pūnaha rauropi? pai.

Mo te taha o mua, he pai ki ahau te korero i kii tetahi o nga kaihanga o mua i tana pukapuka:

Alexey Grachev: Haere ki Mua

Karekau he punaha momo a Javascript. Inaianei ka whakaingoatia e au nga raru i pa ki a au i te waa o aku mahi me te whakamarama me pehea te whakatau.

Ko te punaha momo i te nuinga o te waa kaore e taea te kiia he punaha momo i Javasript - kei reira nga rarangi e tohu ana i te momo o te ahanoa, engari ko te mea kaore tenei e pa ki nga momo. Ka whakatauhia tenei raruraru i roto i te TypeScript (he taapiri ki te Javasript) me te Flow (he kaitaki momo pateko i roto i te Javascript). Inaa, kua tae ke te waahi o mua ki te whakaoti i te raru o te punaha momo kino i roto i te Javascript.

Alexey Grachev: Haere ki Mua

Karekau he whare pukapuka paerewa kei roto i te kaitirotiro penei - he mea hanga-i roto me nga mahi "makutu" kei roto i nga kaitirotiro. Engari i roto i te Javascript kaore he whare pukapuka paerewa penei. Kua whakatauhia tenei raruraru i te wa kotahi e jQuery (i whakamahia e te katoa te jQuery me nga tauira katoa, nga kaiawhina, nga mahi e hiahiatia ana hei mahi). Inaianei ka whakamahia e te katoa a Lodash:

Alexey Grachev: Haere ki Mua

Reinga karanga. Ki taku whakaaro i kite nga tangata katoa i te waehere Javascript tata ki te 5 tau ki muri, a he rite te ahua ki te "noodle" o te tino uaua o nga waea waea. Inaianei kua whakatauhia tenei raru (me te tukunga o ES-15, ES-16 ranei), kua taapirihia nga kupu whakaari ki te Javascript, ka taea e te katoa te manawa mo te wa poto.

Alexey Grachev: Haere ki Mua

Tae noa ki te taenga mai o Promice reinga ... Kaore au i te mohio me pehea te whakahaere o te umanga o mua, engari ka peia tonu e ratou ki etahi ngahere kee. I kaha hoki matou ki te hanga reinga i runga i nga kupu whakaari. Na ka whakatauhia e matou tenei raru ma te taapiri i tetahi kaupapa taketake hou - async/await:

Alexey Grachev: Haere ki Mua

Kua whakatauhia te raruraru me te tukutahi. Ko te Async/wait he tino rongonui i roto i nga reo rereke. Kei a Python me etahi atu tenei huarahi - he tino pai. Kua whakaoti rapanga.

He aha te raruraru kaore i te whakatauhia? Te piki haere o te uaua o nga anga, te uaua o te rauwiringa kaiao me nga kaupapa ake.

Alexey Grachev: Haere ki Mua

  • He ahua ke te wetereo Javascript. E mohio ana tatou katoa ki nga raru o te taapiri i tetahi huinga me tetahi mea me etahi atu katakata.
  • Javascript he maha-paradigma. He punaha tino kaha tenei i te wa e tino nui ana te rauwiringa kaiao:
    • ka tuhi nga tangata katoa i roto i nga momo momo - ko etahi ka tuhi hangahanga, ko etahi ka tuhi mahi, ko nga kaihanga rereke te tuhi i nga huarahi rereke;
    • mai i nga kohinga rereke, rereke nga tauira ka whakamahi koe i nga kohinga rereke;
    • He maha nga "ngahau" me nga kaupapa mahi i roto i te Javasript - kua puta te whare pukapuka rambda a inaianei kaore e taea e tetahi te panui i nga kaupapa kua tuhia ki tenei whare pukapuka.

  • Ko enei mea katoa ka pa nui ki te puunaha rauwiringa kaiao, a kua tino nui te tipu. Kare e hototahi ana nga kete ki a raua: ko etahi kei runga i nga kupu oati, ko etahi kei runga i te tukutahi/tatari, ko etahi kei runga i nga waea waea. Ka tuhi ano i roto i nga tauira rereke!
  • Na tenei ka uaua te pupuri i te kaupapa. He uaua ki te kimi i te bug mena kare e taea e koe te panui i te waehere.

He aha te Huihuinga Tukutuku?

Ko nga tangata maia mai i te Mozilla Foundation me etahi atu kamupene i puta mai he mea penei i te Huihuinga Tukutuku. He aha tenei?

Alexey Grachev: Haere ki Mua

  • He miihini mariko tenei i hangaia ki roto i te kaitirotiro e tautoko ana i te whakatakotoranga rua.
  • Ka tae atu nga kaupapa-rua ki reira ka mahia tata ki te tangata whenua, ara, kaore te kaitirotiro e hiahia ki te tarai i nga "kihu" katoa o te waehere javascript i ia wa.
  • Kua kii nga kaitirotiro katoa he tautoko.
  • I te mea he bytecode tenei, ka taea e koe te tuhi i tetahi kaikohi mo tetahi reo.
  • E wha nga kaitirotiro nui kua tukuna me te tautoko Huihuinga Tukutuku.
  • Kei te tumanako matou ki te tautoko a te tangata whenua i a Go. Kua taapirihia tenei hoahoanga hou: GOARCH=wasm GOOS=js (ka tata nei). I tenei wa, ki taku mohio, kaore i te mahi, engari he korero kei roto i te Go.

Me aha inaianei? GopherJS

Ahakoa karekau he tautoko mo te Huihuinga Tukutuku, kei reira he kaiwhakaputa penei i a GopherJS.

Alexey Grachev: Haere ki Mua

  • Ka whakawhitihia te waehere haere ki te Javascript "parakore".
  • Ka rere i roto i nga kaitirotiro katoa - kaore he ahuatanga hou e tautokohia ana e nga kaitirotiro hou (ko Vanilla JS tenei, e rere ana i runga i tetahi mea).
  • He tautoko tata mo nga mea katoa kei a Go, tae atu ki nga goroutine me nga hongere... nga mea katoa e arohaina ana e matou, e tino mohio ana.
  • Tata ki te katoa o te whare pukapuka paerewa e tautokohia ana, engari mo aua kete karekau he tikanga ki te tautoko i roto i te tirotiro: syscall, hononga kupenga (he kiritaki net/http, engari karekau he tūmau, ka peehia te kiritaki ma te XMLHttpRequest). I te nuinga o te waa, kei te waatea te whare pukapuka paerewa katoa - kei konei kei roto i te tirotiro, kei konei te stdlib a Go, e arohaina ana e matou.
  • Ko te puunaha rauwiringa kaiao katoa kei roto i te Haere, ko nga otinga tuatoru-tuatoru katoa (whakatauira, me etahi atu) ka taea te whakahiato ma te whakamahi i te GopherJS ka rere ki te tirotiro.

He tino ngawari ki te tiki a GopherJS - he putea Haere noa. Ka haere matou ki te tiki, kei a matou he tono GopherJS hei hanga i te tono:

Alexey Grachev: Haere ki Mua

He ao iti tenei kia ora...

Alexey Grachev: Haere ki Mua

...He kaupapa Haere auau, he mokete fmt whare pukapuka paerewa me te Binding Js kia tae ki te API tirotiro. Ka huri a Println ki te raarangi whakamaarama ka tuhia e te kaitirotiro "Hello gophers"! He maamaa noa: ka mahia e matou te hanga GopherJS - ka whakarewahia e matou ki te tirotiro - ka pai nga mea katoa!

He aha kei a koe i tenei wa? Nga here

Alexey Grachev: Haere ki Mua

He here mo nga anga js rongonui katoa:

  • JQuery;
  • Angular.js;
  • D3.js mo te whakamahere me te mahi me nga raraunga nui;
  • React.js;
  • VueJS;
  • he tautoko hoki mo te Electron (ara, kua taea e matou te tuhi i nga tono papamahi ki te Electron);
  • a ko te mea tino ngahau ko WebGL (ka taea e tatou te hanga tono whakairoiro-katoa, tae atu ki nga keemu me nga whakairoiro 3D, waiata me nga mea pai katoa);
  • me te maha atu o nga here ki nga anga javascript rongonui me nga whare pukapuka.

anga

  1. He anga tukutuku kua whakawhanakehia ake mo GopherJS - Vecty. He tairitenga katoa tenei o React.js, engari i whakawhanakehia anake i roto i te Haere, me nga korero motuhake o GopherJS.
  2. He putea keemu (miharo!). I kitea e ahau nga mea rongonui e rua:
    • Engo;
    • Ebiten.

Ka whakaatu ahau ki a koe etahi tauira o te ahua me nga mea ka taea e koe te tuhi ki a Haere:

Alexey Grachev: Haere ki Mua

Ko tenei whiringa ranei (Kaore i kitea e au he kaikopere 3D, engari kei te noho tonu):

Alexey Grachev: Haere ki Mua

He aha taku e tuku nei?

Inaianei kei te ahua o te umanga o mua ka rere nga reo katoa i tangi mai i a Javascript ki reira. Inaianei ka whakahiatohia nga mea katoa ki "Nga Huinga Tukutuku". He aha ta tatou e tika ai kia noho tika ki reira hei Gophers?

Alexey Grachev: Haere ki Mua

I kii a Go he reo hootaka Pūnaha, a karekau he whare pukapuka mo te mahi me te UI. He mea, engari he haurua kua whakarerea, he haurua kore mahi.

Na he waahi pai tenei ki te hanga whare pukapuka UI ki Go ka haere ki runga GopherJS! Ka taea e koe te tuhi i to ake angamahi! Ko te wa tenei ka taea e koe te tuhi i tetahi anga, a ka noho ko tetahi o nga mea tuatahi me te tango wawe, a ka waiho koe hei whetu (mehemea he anga pai).

Ka taea e koe te urutau i te maha o nga momo momo kete kei roto i te punaha rauropi Go ki nga ahuatanga o te tirotiro (hei tauira, te miihini Tauira). Ka mahi ano ratou, ka taea e koe te hanga here pai kia taea ai e koe te whakaputa tika i nga ihirangi ki te tirotiro. I tua atu, ka taea e koe te mahi, hei tauira, he ratonga ka taea te tuku i te mea ano ki runga i te tūmau me te pito o mua, ma te whakamahi i te waehere kotahi - nga mea katoa e pai ana ki nga kaiwhakawhanake o mua (anake i te Haere).

Ka taea e koe te tuhi keemu! Mo te ngahau noa…

Heoi ano taku hiahia ki te korero.

Alexey Grachev: Haere ki Mua

Au uiui

Uiui (ka kiia i muri nei ko Q): – Ka tuhi ahau ki a Haere, Js ranei?

AG: – Ka tuhi koe i nga mahinga, i nga hongere, i nga hanganga, i te whakauru - nga mea katoa i roto i te Haere... Ka ohauru koe ki tetahi huihuinga, ka tukuna he mahi ki reira.

V: – Na ka tuhituhi ahau i roto i "tahanga" Js?

AG: - Kao, ka tuhi koe me te mea i roto i te Haere ka hono atu ki te API tirotiro (kaore i rereke te API). Ka taea e koe te tuhi i a koe ake here kia tukuna nga karere ki te hongere - ehara i te mea uaua.

V: – He aha te waea pūkoro?

AG: – I tino kite ahau: he here mo te papaki Cordova e rere ana a Js. In React Native - Kare au e mohio; tera pea, kaore pea (kare au i tino aro). Ko te miihini keemu N-go e tautoko ana i nga tono pūkoro e rua - iOS me Android.

V: – Patai mo te Huihuinga Tukutuku. Kei te piki ake te waahi, ahakoa te pupuhi me te "zipping" ... E kore tatou e patu i te ao o mua i tenei ara ake?

AG: – Ko te Huihuinga Tukutuku he whakatakotoranga rua, me te taunoa kaore e taea i roto i te tukunga whakamutunga nui atu i te tuhinga... Ka kumea koe ki te wa whakahaere, engari he rite tonu tenei ki te toia ki waho o te whare pukapuka Javascript paerewa karekau i reira, no reira matou whakamahia etahi Lodash. Kaore au i te mohio ki te nui o te mahi a Lodash.

V: – He iti ake i te wa whakahaere...

AG: – I roto i te Javascript "parakore"?

V: - Ae. Ka kōpekehia e mātou i mua i te tuku...

AG: – Engari he kuputuhi tenei... I te nuinga o te waa, he ahua nui te megabyte, engari ko te mea katoa (kei a koe te wa whakahaere katoa). I muri mai, ka tuhia e koe taau ake arorau pakihi, ka piki ake to rua i te 1%. I tenei wa kaore au e kite i tenei patu i te pito o mua. I tua atu, ka tere ake te mahi a te Huihuinga Tukutuku i a Javascript mo te tino take - kaore e tika kia wetewetehia.

V: - He waahi tautohetohe tonu tenei ... Kare ano he whakatinanatanga tohutoro mo "Vasma" (Tukutuku Runanga) kia taea ai e tetahi te whakatau ma te kore korero. Ko te tikanga, ae: kei te mohio tatou katoa me tere ake te rua, engari he tino pai te whakatinanatanga o te taua V8.

AG: - Ae.

V: - Ko te whakahiato ki reira he tino pai rawa atu, ehara i te mea ka puta he painga nui.

AG: – Ko te Huihuinga Tukutuku e mahia ana e nga tangata nunui.

V: – Te ahua nei ki ahau he uaua tonu te whakawa i te Runanga Tukutuku. He maha nga tau kua korerohia inaianei, engari he iti noa nga tino whakatutukitanga ka kitea.

AG: - Pea. Ka kite tatou.

V: – Karekau he raruraru kei te tuara... Me waiho pea enei raruraru ki te taha o mua? He aha i haere ai ki reira?

AG: – Me pupuri he kaimahi mo nga kaimahi o mua.

Ko etahi panui 🙂

Mauruuru koe mo te noho ki a matou. He pai ki a koe a maatau tuhinga? Kei te hiahia koe ki te kite i etahi atu mea whakamere? Tautokohia matou ma te tuku ota me te tuku korero ki o hoa, kapua VPS mo nga kaihanga mai i te $4.99, he tairitenga ahurei o nga kaitoro taumata-urunga, na matou i hanga mo koe: Ko te pono katoa mo VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps mai i te $19 me pehea ranei te tiri i tetahi tūmau? (e waatea ana me te RAID1 me te RAID10, tae atu ki te 24 matua me te 40GB DDR4).

Dell R730xd 2x iti ake i te pokapū raraunga Equinix Tier IV i Amsterdam? Anei i konei 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV mai i te $199 i roto i te Netherlands! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - mai i te $99! Pānuihia mo Me pehea te hanga hanganga corp. akomanga ki te whakamahi o Dell R730xd E5-2650 v4 tūmau utu 9000 euros mo te pene?

Source: will.com

Tāpiri i te kōrero