E pili ana i ka mea kūʻai pūnaewele 1C

ʻO kekahi o nā hiʻohiʻona maikaʻi o 1C: ʻenehana ʻoihana ʻo ia ka hoʻonā noi, i hoʻomohala ʻia me ka hoʻohana ʻana i ka ʻenehana hana hoʻokele, hiki ke hoʻokuʻu ʻia i loko o kahi mea kūʻai lahilahi (hoʻokō) no Windows, Linux, MacOS X, a ma ke ʻano he mea kūʻai pūnaewele no 5 mau polokalamu kele - Chrome, Internet Explorer, Firefox, Safari, Edge, a me kēia mau mea me ka hoʻololi ʻole i ke code kumu noi. Eia kekahi, ma waho o ka noi i ka mea kūʻai lahilahi a ma ka polokalamu kele pūnaewele e hana a like like.
E ʻike i nā ʻokoʻa 10 (2 kiʻi ma lalo o ka ʻokiʻoki):

ʻO ka puka aniani ma Linux:

E pili ana i ka mea kūʻai pūnaewele 1C

ʻO ka pukaaniani like ma ka mea kūʻai pūnaewele (ma ka polokalamu kele Chrome):

E pili ana i ka mea kūʻai pūnaewele 1C

No ke aha mākou i hana ai i kahi mea kūʻai pūnaewele? No ka hoʻohālikelike ʻana, ua hoʻonohonoho ka manawa i kahi hana no mākou. ʻO ka hana ʻana ma luna o ka Pūnaewele he mea pono ia no nā noi ʻoihana. ʻO ka mea mua, ua hoʻohui mākou i ka hiki ke hana ma o ka Pūnaewele no kā mākou mea kūʻai lahilahi (ʻo kekahi o kā mākou mau mea hoʻokūkū, ma ke ala, ua kū ma laila; ʻo nā mea ʻē aʻe, ua haʻalele i ka mea kūʻai lahilahi a kaupalena iā lākou iho i ka hoʻokō ʻana i kahi mea kūʻai pūnaewele). Ua hoʻoholo mākou e hāʻawi i kā mākou mea hoʻohana i ka manawa e koho i ka koho mea kūʻai aku i kūpono iā lākou.

E pili ana i ka mea kūʻai pūnaewele 1C

ʻO ka hoʻohui ʻana i nā mana hoʻokumu pūnaewele i ka mea kūʻai lahilahi he papahana nui me ka hoʻololi piha ʻana i ka hoʻolālā hoʻolālā client-server. ʻO ka hana ʻana i kahi mea kūʻai pūnaewele he papahana hou loa, e hoʻomaka ana mai ka ʻōpala.

Ka hoʻokumu ʻana i ka pilikia

No laila, nā koi o ka papahana: pono e hana like ka mea kūʻai pūnaewele me ka mea kūʻai lahilahi, ʻo ia hoʻi:

  1. Hōʻike i ka mea hoʻohana
  2. E hoʻokō i ka code client i kākau ʻia ma ka ʻōlelo 1C

Hōʻike ʻia ka mea hoʻohana ma 1C i ka mea hoʻoponopono kiʻi, akā me ka haʻi ʻōlelo, me ka ʻole o ka hoʻonohonoho pixel-by-pixel o nā mea; Ma kahi o ʻekolu kakini mau ʻano mea hoʻohana i hoʻohana ʻia - nā pihi, nā kahua hoʻokomo (kikokikona, helu, lā/manawa), nā papa inoa, nā papa, nā kiʻi, a pēlā aku.

Hiki ke loaʻa i ka code Client ma ka ʻōlelo 1C nā kelepona kikowaena, hana me nā kumuwaiwai kūloko (faila, etc.), paʻi ʻana, a ʻoi aku ka nui.

Hoʻohana ka mea kūʻai lahilahi (i ka wā e hana ai ma o ka pūnaewele) a me ka mea kūʻai pūnaewele i ka pūʻulu like o nā lawelawe pūnaewele e kamaʻilio me ke kikowaena noi 1C. ʻOkoʻa nā hoʻokō o nā mea kūʻai aku - ua kākau ʻia ka mea kūʻai lahilahi ma C ++, kākau ʻia ka mea kūʻai pūnaewele ma JavaScript.

He wahi moʻolelo

Ua hoʻomaka ka papahana mea kūʻai pūnaewele ma 2006, me kahi hui o (ma ka awelika) 5 poʻe. I kekahi mau manawa o ka papahana, ua komo nā mea hoʻomohala e hoʻokō i nā hana kikoʻī (palapala pepa, nā kiʻi, a me nā mea ʻē aʻe); e like me ke kānāwai, ʻo ia nā mea hoʻomohala like i hana i kēia hana i ka mea kūʻai lahilahi. ʻO kēlā mau mea. Ua kākau hou nā mea hoʻomohala i nā ʻāpana ma JavaScript a lākou i hana mua ai ma C++.

Mai ka hoʻomaka ʻana, ua hōʻole mākou i ka manaʻo o ka hoʻololi ʻana o ka C++ thin client code i ka mea kūʻai pūnaewele JavaScript ma muli o nā ʻokoʻa manaʻo ikaika ma waena o nā ʻōlelo ʻelua; ua kākau ʻia ka mea kūʻai pūnaewele ma JavaScript mai ka wā kahiko.

I nā hoʻomaka mua o ka papahana, ua hoʻololi ka mea kūʻai pūnaewele i ke code mea kūʻai aku ma ka ʻōlelo 1C i kūkulu ʻia i loko o ka JavaScript. He ʻokoʻa ka hana a ka mea kūʻai lahilahi - ua hui ʻia ke code ma ka ʻōlelo 1C i kūkulu ʻia i bytecode, a laila unuhi ʻia kēia bytecode ma ka mea kūʻai. Ma hope iho, ua hoʻomaka ka mea kūʻai pūnaewele e hana like - ʻo ka mea mua, hāʻawi ia i ka loaʻa ʻana o ka hana, a ʻo ka lua, ua hiki ke hoʻohui i ka hoʻolālā ʻana o nā mea kūʻai aku a me ka pūnaewele.

Ua hoʻokuʻu ʻia ka mana mua o ka 1C:Enterprise platform me ke kākoʻo o nā mea kūʻai pūnaewele ma 2009. Ua kākoʻo ka mea kūʻai pūnaewele i kēlā manawa i 2 polokalamu kele pūnaewele - Internet Explorer a me Firefox. ʻO nā hoʻolālā kumu i komo i ke kākoʻo no Opera, akā ma muli o nā pilikia hiki ʻole ke hoʻopau ʻia i kēlā manawa me nā mea hoʻohana pani pani ma Opera (ʻaʻole hiki ke hahai me ka 100% maopopo ua pani ʻia ka noi, a i kēlā manawa e hoʻokō i ke kaʻina hana wehe mai. ka 1C noi kikowaena) mai kēia mau hoʻolālā pono e haʻalele.

Papahana papahana

Ma ka huina, he 1 mau papahana i kākau ʻia ma ka JavaScript:

  1. WebTools - nā hale waihona puke i hoʻohana ʻia e nā papahana ʻē aʻe (ua komo pū mākou Hale Waihona Puke Google).
  2. Manao Palapala Hōʻano (hoʻokō ʻia ma JavaScript ma ka mea kūʻai lahilahi a me ka mea kūʻai pūnaewele)
  3. Manao Mea hoʻonohonoho (hoʻokō ʻia ma JavaScript ma ka mea kūʻai lahilahi a me ka mea kūʻai pūnaewele)
  4. Mea kūʻai pūnaewele

ʻO ke ʻano o kēlā me kēia papahana e like me ke ʻano o nā papahana Java (a i ʻole nā ​​papahana .NET - ʻo ia ka mea kokoke); Loaʻa iā mākou nā inoa inoa, a aia kēlā me kēia inoa inoa i loko o kahi waihona ʻokoʻa. Aia i loko o ka waihona nā waihona a me nā papa inoa inoa. Aia ma kahi o 1000 mau faila i ka papahana mea kūʻai pūnaewele.

Ma ka hoʻonohonoho, ua māhele nui ʻia ka mea kūʻai pūnaewele i nā subsystem aʻe:

  • Hoʻoponopono ʻia ka mea hoʻohana mea hoʻohana
    • ʻO ke kikowaena noi maʻamau (nā menus system, panels)
    • ʻO ka ʻaoʻao o nā palapala hoʻokele, me, ma waena o nā mea ʻē aʻe, ma kahi o 30 mau mana (nā pihi, nā ʻano ʻano o nā kahua hoʻokomo - kikokikona, helu, lā/manawa, etc., nā papa, nā papa inoa, nā kiʻi, etc.)

  • Loaʻa ka hiʻohiʻona mea i nā mea hoʻomohala ma ka mea kūʻai aku (ʻoi aku ma mua o 400 mau ʻano i ka huina: ke kumu hoʻohālike hoʻokele hoʻokele, nā hoʻonohonoho hoʻonohonoho ʻikepili, ke ʻano kūlana, etc.)
  • Ka unuhi ʻōlelo o ka ʻōlelo 1C i kūkulu ʻia
  • Nā hoʻonui pūnaewele (hoʻohana ʻia no ka hana ʻaʻole i kākoʻo ʻia ma JavaScript)
    • Ke hana nei me ka cryptography
    • Ke hana nei me nā faila
    • ʻenehana o nā ʻāpana o waho, e ʻae iā lākou e hoʻohana ʻia i nā mea kūʻai aku a me nā mea kūʻai pūnaewele

Nā hiʻohiʻona hoʻomohala

ʻAʻole maʻalahi ka hoʻokō ʻana i nā mea a pau i luna ma JavaScript. Malia paha ʻo ka mea kūʻai pūnaewele 1C kekahi o nā noi ʻaoʻao nui loa i kākau ʻia ma JavaScript - ma kahi o 450.000 mau laina. Hoʻohana ikaika mākou i kahi ʻano hoʻohālikelike i ka code client web, e maʻalahi i ka hana ʻana me kahi papahana nui.

No ka hōʻemi ʻana i ka nui o ka code client, ua hoʻohana mua mākou i kā mākou obfuscator ponoʻī, a hoʻomaka me ka mana o ka platform 8.3.6 (ʻOkakopa 2014) ua hoʻomaka mākou e hoʻohana. Mea hoʻopili pani Google. ʻO ka hopena o ka hoʻohana ʻana i nā helu - ka nui o ka hoʻolālā o ka mea kūʻai aku ma hope o ka obfuscation:

  • Obfuscator pono'ī - 1556 kb
  • Google Hoʻopili Hoʻopili - 1073 kb

Ua kōkua ka hoʻohana ʻana iā Google Closure Compiler iā mākou e hoʻomaikaʻi i ka hana o ka mea kūʻai pūnaewele ma 30% i hoʻohālikelike ʻia me kā mākou obfuscator. Eia kekahi, ua emi iho ka nui o ka hoʻomanaʻo i hoʻohana ʻia e ka noi e 15-25% (ma muli o ka polokalamu kele pūnaewele).

Hana maikaʻi loa ʻo Google Closure Compiler me ka code-oriented code, no laila ʻoi aku ka kiʻekiʻe o kona pono no ka mea kūʻai pūnaewele. Hana ʻo Closure Compiler i kekahi mau mea maikaʻi no mākou:

  • ʻO ka nānā ʻana i ke ʻano static ma ke kahua kūkulu papahana (e hōʻoia e uhi mākou i ke code me nā hōʻike JSDoc). ʻO ka hopena ka paʻi paʻa, kokoke loa i ka pae i ka paʻi ʻana ma C++. Kōkua kēia i ka hopu ʻana i ka hapa nui o nā hewa i ka pae hoʻonohonoho papahana.
  • E hoemi ana i ka nui o ke code ma o ka obfuscation
  • He helu o nā optimizations o ke code i hoʻokō ʻia, no ka laʻana, e like me:
    • nā pani hana inline. ʻO ke kāhea ʻana i kahi hana ma JavaScript he hana maikaʻi loa ia, a ʻo ka hoʻololi ʻana i ka laina o nā ala liʻiliʻi i hoʻohana pinepine ʻia e wikiwiki i ke code.
    • Helu mau i ka manawa houluulu. Inā pili kekahi ʻōlelo i kahi mau, e hoʻokomo ʻia ka waiwai maoli o ka mea mau i loko

Hoʻohana mākou i ka WebStorm ma ke ʻano he mea hoʻomohala hoʻomohala pūnaewele.

No ka loiloi code a mākou e hoʻohana ai kaniQube, kahi mākou e hoʻohui ai i nā mea helu helu static. Ke hoʻohana nei i nā mea loiloi, nānā mākou i ka hoʻohaʻahaʻa ʻana i ka maikaʻi o ka code kumu JavaScript a hoʻāʻo e pale aku.

E pili ana i ka mea kūʻai pūnaewele 1C

He aha nā pilikia a mākou e hoʻoholo nei?

I ka wā o ka hoʻokō ʻana i ka papahana, ua hālāwai mākou i kekahi mau pilikia hoihoi a mākou e hoʻoponopono ai.

Hoʻololi i ka ʻikepili me ke kikowaena a ma waena o windows

Aia kekahi mau kūlana i hiki ai i ka obfuscation o ke code kumu ke hoʻopilikia i ka hana o ka ʻōnaehana. ʻO ke code waho i ka code executable o ka mea kūʻai pūnaewele ma muli o ka obfuscation, hiki ke loaʻa i nā inoa hana a me nā inoa ʻokoʻa mai nā mea i manaʻo ʻia e kā mākou code executable. ʻO ke code waho no mākou:

  • E hele mai ana ke code mai ke kikowaena ma ke ʻano o nā hoʻolālā ʻikepili
  • Code no kekahi pukaaniani noi

I mea e pale aku ai i ka pohihihi i ka wā e launa pū ai me ke kikowaena, hoʻohana mākou i ka tag @expose:

/**
 * @constructor
 * @extends {Base.SrvObject}
 */
Srv.Core.GenericException = function ()
{
    /**
     * @type {string}
     * @expose
     */
    this.descr;

    /**
     * @type {Srv.Core.GenericException}
     * @expose
     */
    this.inner;

    /**
     * @type {string}
     * @expose
     */
    this.clsid;

    /**
     * @type {boolean}
     * @expose
     */
    this.encoded;
}

A i mea e pale aku ai i ka obfuscation i ka wā e launa pū ai me nā puka makani ʻē aʻe, hoʻohana mākou i nā mea i kapa ʻia ʻo Exported Interfaces (interfaces kahi e lawe ʻia ai nā ala āpau).

/**
 * Экспортируемый интерфейс контрола DropDownWindow
 *
 * @interface
 * @struct
 */
WebUI.IDropDownWindowExp = function(){}

/**
 * Перемещает выделение на 1 вперед или назад
 *
 * @param {boolean} isForward
 * @param {boolean} checkOnly
 * @return {boolean}
 * @expose
 */
WebUI.IDropDownWindowExp.prototype.moveMarker = function (isForward, checkOnly){}

/**
 * Перемещает выделение в начало или конец
 *
 * @param {boolean} isFirst
 * @param {boolean} checkOnly
 * @return {boolean}
 * @expose
 */
WebUI.IDropDownWindowExp.prototype.moveMarkerTo = function (isFirst, checkOnly){}

/**
 * @return {boolean}
 * @expose
 */
WebUI.IDropDownWindowExp.prototype.selectValue = function (){}

Ua hoʻohana mākou i ka Virtual DOM ma mua o ka lilo ʻana i kumu nui)

E like me nā mea hoʻomohala āpau e pili ana i nā UI Pūnaewele paʻakikī, ʻike koke mākou ʻaʻole kūpono ka DOM i ka hana ʻana me nā mea hoʻohana ikaika. Kokoke koke, ua hoʻokō ʻia kahi analogue o Virtual DOM e hoʻoikaika i ka hana me ka UI. I ka wā o ka hana hanana, mālama ʻia nā hoʻololi DOM a pau i ka hoʻomanaʻo a, aia wale nō i ka pau ʻana o nā hana āpau, hoʻohana ʻia nā hoʻololi i hōʻiliʻili ʻia i ka lāʻau DOM.

Hoʻonui i ka mea kūʻai pūnaewele

No ka hana wikiwiki ʻana i kā mākou mea kūʻai pūnaewele, hoʻāʻo mākou e hoʻohana i nā mea hiki ke hoʻohana i nā mea hoʻohana maʻamau (CSS, etc.) i ka nui. No laila, hāʻawi wale ʻia ka papa kauoha puka (aia ma kahi kokoke i kēlā me kēia ʻano o ka noi) me ka hoʻohana ʻana i nā hāmeʻa polokalamu kele pūnaewele, me ka hoʻohana ʻana i ka hoʻolālā ikaika e pili ana i CSS.

E pili ana i ka mea kūʻai pūnaewele 1C

Hoʻoponopono

No ka ho'āʻo hana a me ka hana, hoʻohana mākou i kahi mea hana pono (i kākau ʻia ma Java a me C++), a me kahi hui o nā hoʻāʻo i kūkulu ʻia ma luna o Selenium.

ʻO kā mākou mea hana ma ke ao holoʻokoʻa - hiki iā ʻoe ke hoʻāʻo i kahi papahana puka makani, a no laila kūpono ia no ka hoʻāʻo ʻana i kahi mea kūʻai aku a me kahi mea kūʻai pūnaewele. Hoʻopaʻa ka mea hana i nā hana a ka mea hoʻohana nāna i hoʻokuʻu i ka hoʻonā noi noi 1C i kahi faila palapala. I ka manawa like, hoʻopaʻa ʻia nā kiʻi o ka wahi hana o ka pale-standards. Ke nānā nei i nā mana hou o ka mea kūʻai pūnaewele, hoʻokani ʻia nā palapala me ka ʻole o ka mea hoʻohana. I nā hihia inā ʻaʻole i kūlike ke kiʻi kiʻi i ka mea kuhikuhi i kēlā me kēia ʻanuʻu, manaʻo ʻia ka hoʻāʻo ʻana i hāʻule ʻole, a laila e alakaʻi kahi loea maikaʻi i kahi hoʻokolokolo e hoʻoholo ai inā he kuhi kēia a i ʻole kahi hoʻololi i hoʻolālā ʻia i ka ʻano o ka ʻōnaehana. I ka hihia o ka hana i hoʻolālā ʻia, hoʻololi ʻia nā maʻamau me nā mea hou.

Hoʻopili ka mea hana i ka hana noi me ka pololei a hiki i 25 milliseconds. I kekahi mau hihia, hoʻopili mākou i nā ʻāpana o ka palapala (no ka laʻana, e hoʻihoʻi hou i ke komo ʻana i nā manawa he nui) e nānā i ka hōʻemi ʻana o ka manawa hoʻokō i ka manawa. Hoʻopaʻa ʻia nā hopena o nā ana a pau i loko o kahi log no ka nānā ʻana.

E pili ana i ka mea kūʻai pūnaewele 1C
ʻO kā mākou mea hana hoʻāʻo a me ka noi ma lalo o ka hoʻāʻo

ʻO kā mākou mea hana a me Selenium e hoʻokō i kekahi i kekahi; no ka laʻana, inā ua hoʻololi kekahi pihi ma kekahi o nā pale i kona wahi, ʻaʻole hiki iā Selenium ke hahai i kēia, akā e ʻike kā mākou mea hana, no ka mea hana i ka hoʻohālikelike pixel-by-pixel o ke kiʻi kiʻi me ka maʻamau. Hiki i ka mea hana ke nānā i nā pilikia me ka hoʻoili ʻana i ka hoʻokomo mai ka papa keyboard a i ʻole ka ʻiole, ʻoiai ʻo ia ka mea e hana hou ai.

ʻO nā hoʻokolohua ma nā mea hana ʻelua (ʻo mākou a me Selenium) e holo i nā hiʻohiʻona hana maʻamau mai kā mākou hoʻonā noi. Hoʻomaka ʻokoʻa ʻia nā hoʻāʻo ma hope o ke kūkulu ʻana i kēlā me kēia lā o ka platform 1C: Enterprise. Inā ʻoi aku ka lohi o nā palapala (e hoʻohālikelike ʻia me ka hana mua), e noiʻi mākou a hoʻoholo i ke kumu o ka lohi. He maʻalahi kā mākou koho - ʻaʻole pono e lohi ka hana hou ma mua o ka mea ma mua.

Hoʻohana nā mea hoʻomohala i nā mea hana like ʻole e noiʻi i nā hanana lohi; hoʻohana nui ʻia Dynatrace AJAX Edition hui hana ʻO DynaTrace. Hoʻopaʻa ʻia nā moʻolelo o ka hoʻokō ʻana i ka hana pilikia ma nā hale ma mua a me nā mea hou, a laila loiloi ʻia nā lāʻau. I ka manawa like, ʻo ka manawa hoʻokō o nā hana hoʻokahi (i nā milliseconds) ʻaʻole ia he kumu hoʻoholo - ʻo nā kaʻina hana e like me ka hōʻiliʻili ʻōpala i hoʻokuʻu ʻia i kēlā me kēia manawa i ka polokalamu kele pūnaewele, hiki iā lākou ke uhi me ka manawa hoʻokō o nā hana a hoʻololi i ke kiʻi. ʻO nā ʻāpana kūpono i kēia hihia, ʻo ia ka helu o nā ʻōlelo aʻoaʻo JavaScript i hoʻokō ʻia, ka helu o nā hana atomika ma ka DOM, etc. Inā ua hoʻonui ʻia ka helu o nā ʻōlelo aʻoaʻo / hana ma ka palapala like i kahi mana hou, ʻaneʻane ʻo ia ke ʻano o ka hāʻule o ka hana pono e hoʻoponopono ʻia.

Eia kekahi, ʻo kekahi o nā kumu o ka hāʻule ʻana o ka hana ʻo ia ʻo Google Closure Compiler no kekahi kumu hiki ʻole ke hoʻokō i ka hoʻololi inline o ka hana (no ka laʻana, no ka mea he recursive a virtual paha ka hana). I kēia hihia, hoʻāʻo mākou e hoʻoponopono i ke kūlana ma ke kākau hou ʻana i ke code kumu.

Nā hoʻonui pūnaewele

Ke makemake ʻia kahi hoʻonā noi i nā hana i loaʻa ʻole ma JavaScript, hoʻohana mākou i nā hoʻonui polokalamu:

  • no ka hana ʻana me nā faila
  • no ka hana me ka cryptography
  • hana me nā mea waho

ʻO kā mākou hoʻonui i ʻelua ʻāpana. ʻO ka ʻāpana mua ka mea i kapa ʻia he extension browser (ʻo ka mea maʻamau i hoʻonui ʻia no Chrome a me Firefox i kākau ʻia ma JavaScript), e launa pū me ka ʻaoʻao ʻelua - kahi hoʻonui binary e hoʻokō i nā hana e pono ai mākou. Pono e ʻōlelo ʻia e kākau mākou i nā mana 3 o nā hoʻonui binary - no Windows, Linux a me MacOS. Hāʻawi ʻia ka hoʻonui binary ma ke ʻano he ʻāpana o ka 1C: Enterprise platform a aia ma ka kikowaena noi 1C. Ke kāhea ʻia no ka manawa mua mai kahi mea kūʻai aku pūnaewele, hoʻoiho ʻia i ka kamepiula mea kūʻai aku a hoʻokomo ʻia i ka polokalamu kele pūnaewele.

Ke holo nei ma Safari, hoʻohana kā mākou hoʻonui i ka NPAPI; i ka wā e holo ana ma Internet Explorer, hoʻohana lākou i ka ʻenehana ActiveX. ʻO Microsoft Edge ʻaʻole i kākoʻo i nā mea hoʻonui, no laila ke hana nei ka mea kūʻai aku pūnaewele i loko me nā kapu.

Hoʻomohala hou aku

ʻO kekahi o nā hana no ka hui hoʻomohala mea kūʻai pūnaewele ʻo ia ka hoʻomohala hou ʻana o ka hana. Pono e like ka hana o ka mea kūʻai pūnaewele me ka hana o ka mea kūʻai lahilahi; hoʻokō ʻia nā hana hou a pau i ka manawa like ma nā mea kūʻai lahilahi a me ka pūnaewele.

ʻO nā hana ʻē aʻe e pili ana i ka hoʻomohala ʻana i ka hoʻolālā, refactoring, hoʻomaikaʻi i ka hana a me ka hilinaʻi. No ka laʻana, ʻo kekahi o nā kuhikuhi ka neʻe hou aku i kahi ʻano hana asynchronous. Ke kūkulu ʻia nei kekahi o nā hana o ka mea kūʻai aku pūnaewele ma luna o kahi hoʻohālike synchronous o ka launa pū ʻana me ke kikowaena. Ke lilo nei ke kumu hoʻohālike asynchronous i kēia manawa e pili ana i nā polokalamu kele pūnaewele (a ʻaʻole wale i nā mākaʻikaʻi wale nō), a ke koi nei kēia iā mākou e hoʻololi i ka mea kūʻai pūnaewele ma o ka hoʻololi ʻana i nā kelepona synchronous me nā asynchronous (a me ka refactoring i ke code e like me ia). Ua wehewehe ʻia ka neʻe ʻana i kahi kumu hoʻohālike asynchronous e ka pono e kākoʻo i nā hāʻina i hoʻokuʻu ʻia a me kā lākou hoʻololi lohi.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka