Game da abokin ciniki na gidan yanar gizo na 1C

Ofaya daga cikin kyawawan fasalulluka na 1C: Fasahar Kasuwanci ita ce mafita ta aikace-aikacen, haɓaka ta amfani da fasahar nau'ikan sarrafawa, ana iya ƙaddamar da su duka biyu a cikin ɗan ƙaramin (wanda za a iya aiwatarwa) don Windows, Linux, MacOS X, kuma azaman abokin ciniki na yanar gizo don masu bincike 5 - Chrome, Internet Explorer, Firefox, Safari, Edge, da duk wannan ba tare da canza lambar tushen aikace-aikacen ba. Haka kuma, externally aikace-aikace a cikin bakin ciki abokin ciniki da kuma a cikin browser ayyuka da kuma kama kusan m.
Nemo bambance-bambance 10 (hotuna 2 a ƙarƙashin yanke):

Babban taga abokin ciniki akan Linux:

Game da abokin ciniki na gidan yanar gizo na 1C

Taga iri ɗaya a cikin abokin ciniki na gidan yanar gizo (a cikin burauzar Chrome):

Game da abokin ciniki na gidan yanar gizo na 1C

Me yasa muka yi abokin ciniki na yanar gizo? Don sanya shi a ɗan ban tausayi, lokaci ya tsara mana irin wannan aiki. Yin aiki akan Intanet ya daɗe yana zama abin da ake buƙata don aikace-aikacen kasuwanci. Na farko, mun kara da ikon yin aiki ta hanyar Intanet don abokin cinikinmu na bakin ciki (wasu daga cikin masu fafatawa, ta hanyar, sun tsaya a can, wasu, akasin haka, sun watsar da abokin ciniki na bakin ciki kuma sun iyakance kansu don aiwatar da abokin ciniki na yanar gizo). Mun yanke shawarar ba masu amfani da mu damar zaɓar zaɓin abokin ciniki wanda ya fi dacewa da su.

Game da abokin ciniki na gidan yanar gizo na 1C

Ƙara damar tushen yanar gizo ga abokin ciniki na bakin ciki babban aiki ne tare da cikakken canji a cikin gine-ginen uwar garken abokin ciniki. Ƙirƙirar abokin ciniki na yanar gizo sabon aiki ne gaba ɗaya, farawa daga karce.

Tsara matsalar

Don haka, buƙatun aikin: abokin ciniki na gidan yanar gizo dole ne yayi daidai da abokin ciniki na bakin ciki, wato:

  1. Nuna masarrafar mai amfani
  2. Aiwatar da lambar abokin ciniki da aka rubuta cikin yaren 1C

An kwatanta ƙirar mai amfani a cikin 1C a cikin editan gani, amma a fayyace, ba tare da tsarin abubuwa na pixel-by-pixel ba; Ana amfani da kusan nau'ikan dozin uku na abubuwan dubawa - maɓalli, filayen shigarwa (rubutu, lamba, kwanan wata/lokaci), jeri, teburi, jadawalai, da sauransu.

Lambar abokin ciniki a cikin yaren 1C na iya ƙunsar kiran uwar garken, aiki tare da albarkatun gida (fiyiloli, da sauransu), bugu, da ƙari mai yawa.

Duka sirararen abokin ciniki (lokacin aiki ta yanar gizo) da abokin ciniki na gidan yanar gizo suna amfani da saitin sabis na yanar gizo iri ɗaya don sadarwa tare da uwar garken aikace-aikacen 1C. Ayyukan abokin ciniki, ba shakka, sun bambanta - an rubuta abokin ciniki na bakin ciki a C ++, an rubuta abokin ciniki na yanar gizo a cikin JavaScript.

A bit of history

Aikin abokin ciniki na yanar gizo ya fara a cikin 2006, tare da ƙungiyar (a matsakaici) mutane 5. A wasu matakai na aikin, masu haɓakawa sun shiga don aiwatar da takamaiman ayyuka (takardun takarda, zane-zane, da dai sauransu); a matsayin mai mulkin, waɗannan su ne masu haɓaka guda ɗaya waɗanda suka yi wannan aikin a cikin abokin ciniki na bakin ciki. Wadancan. masu haɓakawa sun sake rubuta abubuwan da suka shafi JavaScript waɗanda suka ƙirƙira a baya a cikin C++.

Tun da farko, mun ƙi ra'ayin kowane atomatik (ko da m) canza C++ bakin ciki lambar abokin ciniki zuwa JavaScript abokin ciniki na yanar gizo saboda bambance-bambancen ra'ayi mai ƙarfi tsakanin harsuna biyu; An rubuta abokin ciniki na gidan yanar gizon a cikin JavaScript daga karce.

A cikin gyare-gyaren farko na aikin, abokin ciniki na gidan yanar gizon ya canza lambar abokin ciniki a cikin yaren 1C da aka gina kai tsaye zuwa JavaScript. Abokin bakin ciki yana aiki daban - lambar a cikin harshen da aka gina a cikin 1C an haɗa shi zuwa bytecode, sa'an nan kuma an fassara wannan bytecode akan abokin ciniki. Daga bisani, abokin ciniki na yanar gizo ya fara yin haka - da farko, ya ba da damar yin aiki, kuma abu na biyu, ya sa ya yiwu a haɗa haɗin gine-gine na bakin ciki da abokan ciniki na yanar gizo.

An fito da sigar farko ta dandalin 1C: Kasuwanci tare da tallafin abokin ciniki na yanar gizo a cikin 2009. Abokin gidan yanar gizon a wancan lokacin yana tallafawa masu bincike guda 2 - Internet Explorer da Firefox. Shirye-shiryen na asali sun haɗa da goyon baya ga Opera, amma saboda matsalolin da ba za a iya warwarewa ba a wancan lokacin tare da masu amfani da aikace-aikacen rufewa a cikin Opera (ba a yiwuwa a gano tare da 100% tabbacin cewa aikace-aikacen yana rufewa, kuma a wannan lokacin aiwatar da hanyar cire haɗin daga. uwar garken aikace-aikacen 1C) daga waɗannan tsare-tsaren dole ne a watsar da su.

Tsarin aikin

Gabaɗaya, dandalin 1C: Enterprise yana da ayyuka guda 4 da aka rubuta cikin JavaScript:

  1. WebTools – ɗakunan karatu da wasu ayyuka ke amfani da su (muna haɗa da Google Rufe Laburare).
  2. Abun sarrafawa Takardun da aka tsara (an aiwatar da shi a cikin JavaScript a cikin abokin ciniki na bakin ciki da abokin ciniki na yanar gizo)
  3. Abun sarrafawa Mai tsara jadawalin (an aiwatar da shi a cikin JavaScript a cikin abokin ciniki na bakin ciki da abokin ciniki na yanar gizo)
  4. Abokin yanar gizo

Tsarin kowane aikin yayi kama da tsarin ayyukan Java (ko ayyukan NET - duk wanda yake kusa); Muna da wuraren suna, kuma kowane filin suna yana cikin babban fayil daban. A cikin babban fayil ɗin akwai fayiloli da azuzuwan sarari suna. Akwai kusan fayiloli 1000 a cikin aikin abokin ciniki na yanar gizo.

A tsari, abokin ciniki na gidan yanar gizo ya kasu kashi-kashi zuwa manyan tsarin mulki:

  • Gudanarwar aikace-aikacen abokin ciniki
    • Gabaɗaya aikace-aikacen dubawa (Menu na tsarin, bangarori)
    • Fuskar nau'ikan da aka sarrafa, gami da, a tsakanin wasu abubuwa, kusan sarrafawa 30 (maɓallai, nau'ikan filayen shigarwa daban-daban - rubutu, lamba, kwanan wata/lokaci, da sauransu, tebur, jeri, jadawalai, da sauransu.)

  • Samfurin abu da ke akwai ga masu haɓakawa akan abokin ciniki (fiye da nau'ikan nau'ikan 400 gabaɗaya: ƙirar abu mai sarrafawa, saitunan shimfidar bayanai, salo na yanayi, da sauransu)
  • Fassarar ginannen harshe na 1C
  • Ƙwararren mai lilo (wanda aka yi amfani da shi don ayyuka ba a tallafawa a cikin JavaScript)
    • Yin aiki tare da cryptography
    • Aiki tare da fayiloli
    • Fasaha na abubuwan waje na waje, ba da damar yin amfani da su a cikin bakin ciki da abokan ciniki na yanar gizo

Abubuwan haɓakawa

Aiwatar da duk abubuwan da ke sama a cikin JavaScript ba shi da sauƙi. Wataƙila abokin ciniki na gidan yanar gizo na 1C yana ɗaya daga cikin manyan aikace-aikacen gefen abokin ciniki da aka rubuta cikin JavaScript - kusan layi 450.000. Muna yin amfani da tsarin da ya dace da abu a cikin lambar abokin ciniki na yanar gizo, wanda ke sauƙaƙa aiki tare da irin wannan babban aikin.

Don rage girman lambar abokin ciniki, mun fara amfani da namu obfuscator, kuma mun fara amfani da sigar dandamali 8.3.6 (Oktoba 2014) Google Closure Compiler. Tasirin amfani a lambobi - girman tsarin abokin ciniki na gidan yanar gizo bayan rufewa:

  • Nasa obfuscator - 1556 kb
  • Rufe Google - 1073 kb

Amfani da Google Closure Compiler ya taimaka mana haɓaka aikin abokin ciniki na gidan yanar gizo da kashi 30% idan aka kwatanta da namu obfuscator. Bugu da kari, adadin ƙwaƙwalwar ajiyar da aikace-aikacen ke cinyewa ya ragu da 15-25% (dangane da mai binciken).

Google Closure Compiler yana aiki da kyau tare da lambar da ta dace, don haka ingancinsa ga abokin ciniki na yanar gizo yana da girma gwargwadon yiwuwa. Closure Compiler yana yi mana wasu abubuwa masu kyau:

  • Duban nau'in a tsaye a matakin ginin aikin (yana tabbatar da cewa mun rufe lambar tare da bayanan JSDoc). Sakamakon bugawa a tsaye, yana kusa da matakin buga C++. Wannan yana taimakawa wajen kama adadin kurakurai masu yawa a matakin haɗa aikin.
  • Rage girman lambar ta hanyar ɓoyewa
  • Yawan ingantawa na lambar da aka aiwatar, misali, kamar:
    • maye gurbin aikin layi. Kira aiki a JavaScript aiki ne mai tsada sosai, kuma maye gurbin layi na ƙananan hanyoyin da ake yawan amfani da shi yana ƙara saurin lambar.
    • Ƙididdigar ƙidaya a lokacin haɗawa. Idan magana ta dogara da akai-akai, za'a musanya ainihin ƙimar madaidaicin a cikinsa

Muna amfani da WebStorm azaman yanayin haɓaka abokin cinikin yanar gizon mu.

Don nazarin code muna amfani sautiQube, inda muke haɗa masu nazarin lambobin a tsaye. Yin amfani da masu nazari, muna sa ido kan lalacewar ingancin lambar tushen JavaScript kuma muna ƙoƙarin hana shi.

Game da abokin ciniki na gidan yanar gizo na 1C

Wadanne matsaloli suka yi/ muke warwarewa?

A yayin aiwatar da aikin, mun fuskanci matsaloli masu ban sha'awa da yawa waɗanda dole ne mu magance su.

Musayar bayanai tare da uwar garken da tsakanin windows

Akwai yanayi inda ɓoye lambar tushe zai iya tsoma baki tare da aiki na tsarin. Lambar waje zuwa lambar aiwatarwa na abokin ciniki na gidan yanar gizo, saboda ɓarna, na iya samun aiki da sunaye waɗanda suka bambanta da waɗanda lambar mu mai aiwatarwa ke tsammani. Lambar waje gare mu ita ce:

  • Lambar da ke fitowa daga uwar garken a cikin tsarin tsarin bayanai
  • Lambar don wani taga aikace-aikacen

Don guje wa ɓarna yayin hulɗa da uwar garken, muna amfani da alamar @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;
}

Kuma don guje wa ɓarna yayin hulɗa tare da wasu windows, muna amfani da abin da ake kira fitattun hanyoyin da aka fitar (musamman hanyoyin da ake fitar da duk hanyoyin).

/**
 * Экспортируемый интерфейс контрола 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 (){}

Mun yi amfani da Virtual DOM kafin ya zama na al'ada)

Kamar duk masu haɓakawa da ke mu'amala da hadaddun UI na Yanar Gizo, da sauri mun gane cewa DOM bai dace da aiki tare da mu'amalar mai amfani mai ƙarfi ba. Kusan nan da nan, an aiwatar da analog na Virtual DOM don haɓaka aiki tare da UI. A lokacin sarrafa abubuwan da suka faru, duk canje-canjen DOM ana adana su a cikin ƙwaƙwalwar ajiya kuma, kawai lokacin da aka kammala duk ayyukan, ana amfani da canje-canjen da aka tara akan itacen DOM.

Inganta abokin ciniki na gidan yanar gizo

Don sa abokin cinikin gidan yanar gizon mu yayi aiki da sauri, muna ƙoƙarin yin amfani da daidaitattun damar bincike (CSS, da sauransu) zuwa matsakaicin. Don haka, kwamitin umarni na fom (wanda yake kusan kowane nau'i na aikace-aikacen) ana yin shi ta amfani da kayan aikin bincike na musamman, ta amfani da shimfidar tsari mai ƙarfi bisa CSS.

Game da abokin ciniki na gidan yanar gizo na 1C

Gwaji

Don gwajin aiki da aiki, muna amfani da kayan aikin mallakar mallaka (an rubuta a Java da C++), da kuma rukunin gwaje-gwajen da aka gina a saman. selenium.

Kayan aikinmu na duniya ne - yana ba ku damar gwada kusan kowane shirin taga, sabili da haka ya dace don gwada abokin ciniki na bakin ciki da abokin ciniki na yanar gizo. Kayan aikin yana yin rikodin ayyukan mai amfani wanda ya ƙaddamar da maganin aikace-aikacen 1C a cikin fayil ɗin rubutun. A lokaci guda, ana yin rikodin hotuna na wurin aiki na allon-ma'auni. Lokacin saka idanu sabbin nau'ikan abokin ciniki na gidan yanar gizo, ana kunna rubutun ba tare da sa hannun mai amfani ba. A cikin lokuta inda hoton hoton bai dace da abin da ake magana ba a kowane mataki, ana ganin gwajin ya gaza, bayan haka ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun ƙwararrun za ta gudanar da bincike don sanin ko wannan kuskure ne ko wani canji da aka tsara a cikin halayen tsarin. A cikin yanayin halayen da aka tsara, ana maye gurbin ma'auni ta atomatik tare da sababbi.

Kayan aikin kuma yana auna aikin aikace-aikacen tare da daidaiton har zuwa miliyon 25. A wasu lokuta, mukan madauki sassan rubutun (misali, maimaita shigarwar oda sau da yawa) don nazarin lalacewar lokacin aiwatarwa akan lokaci. Ana rubuta sakamakon duk ma'auni a cikin log don bincike.

Game da abokin ciniki na gidan yanar gizo na 1C
Kayan aikin gwajin mu da aikace-aikacen da ke ƙarƙashin gwaji

Kayan aikin mu da Selenium suna haɗa juna; misali, idan wani maɓalli na ɗaya daga cikin allon ya canza wurinsa, Selenium bazai iya bin wannan ba, amma kayan aikin mu zai lura, saboda yana yin kwatancen pixel-by-pixel na hoton allo tare da ma'auni. Har ila yau, kayan aikin yana iya gano matsaloli tare da shigarwar sarrafawa daga madannai ko linzamin kwamfuta, tun da yake wannan shine ainihin abin da yake sakewa.

Gwaje-gwaje akan kayan aikin biyu (namu da Selenium) suna gudanar da yanayin aiki na yau da kullun daga hanyoyin aikace-aikacen mu. Ana ƙaddamar da gwaje-gwaje ta atomatik bayan ginin yau da kullun na 1C: Dandalin Kasuwanci. Idan rubutun ya yi hankali (idan aka kwatanta da ginin da ya gabata), muna bincika kuma mu warware dalilin raguwar. Ma'aunin mu mai sauƙi ne - sabon ginin bai kamata yayi aiki da hankali fiye da na baya ba.

Masu haɓakawa suna amfani da kayan aiki daban-daban don bincika abubuwan da suka faru na raguwa; yafi amfani Dynatrace AJAX Edition kamfanin samar DynaTrace. Logs na aiwatar da aiki mai matsala a kan na baya da kuma sababbin gine-gine an rubuta su, sa'an nan kuma ana nazarin rajistan ayyukan. A lokaci guda, lokacin aiwatar da ayyuka guda ɗaya (a cikin millise seconds) na iya zama ba wani muhimmin mahimmanci ba - ana ƙaddamar da ayyukan sabis kamar tarin datti a lokaci-lokaci a cikin mai binciken, suna iya haɗawa tare da lokacin aiwatar da ayyuka da karkatar da hoto. Ƙarin sigogi masu dacewa a wannan yanayin zai zama adadin umarnin JavaScript da aka aiwatar, adadin ayyukan atomic akan DOM, da sauransu. Idan adadin umarni/ayyukan aiki a cikin rubutun iri ɗaya ya ƙaru a cikin sabon sigar, wannan kusan koyaushe yana nufin raguwar aikin da ake buƙatar gyara.

Hakanan, ɗaya daga cikin dalilan faɗuwar aikin na iya zama Google Closure Compiler saboda wasu dalilai ya kasa yin canjin aikin ta layi (misali, saboda aikin mai maimaitawa ne ko kama-da-wane). A wannan yanayin, muna ƙoƙarin gyara yanayin ta hanyar sake rubuta lambar tushe.

kari na Browser

Lokacin da maganin aikace-aikacen yana buƙatar aiki wanda babu shi a cikin JavaScript, muna amfani da kari na burauza:

  • don aiki tare da fayiloli
  • don aiki tare da cryptography
  • aiki da abubuwan waje

Ƙaddamarwar mu ta ƙunshi sassa biyu. Kashi na farko shi ne abin da ake kira kari na bincike (yawanci kari don Chrome da Firefox da aka rubuta a cikin JavaScript), wanda ke hulɗa da sashi na biyu - tsawo na binary wanda ke aiwatar da ayyukan da muke buƙata. Ya kamata a ambaci cewa muna rubuta nau'ikan kari na binaryar 3 - don Windows, Linux da MacOS. Ana ba da tsawo na binary a matsayin wani ɓangare na dandalin 1C: Enterprise kuma yana kan uwar garken aikace-aikacen 1C. Lokacin da aka kira shi a karon farko daga abokin ciniki na gidan yanar gizo, ana zazzage shi zuwa kwamfutar abokin ciniki kuma a shigar da shi a cikin burauzar.

Lokacin aiki a cikin Safari, kari namu yana amfani da NPAPI; lokacin da ke gudana a cikin Internet Explorer, suna amfani da fasahar ActiveX. Microsoft Edge har yanzu bai goyi bayan kari ba, don haka abokin ciniki na yanar gizo a ciki yana aiki tare da ƙuntatawa.

Ci gaba da ci gaba

Ɗaya daga cikin ayyuka na ƙungiyar ci gaban abokin ciniki na yanar gizo shine ƙara haɓaka ayyuka. Ayyukan abokin ciniki na gidan yanar gizo yakamata su kasance daidai da aikin abokin ciniki na bakin ciki; duk sabbin ayyuka ana aiwatar da su lokaci guda a cikin bakin ciki da abokan cinikin yanar gizo.

Sauran ayyuka sun haɗa da haɓaka gine-gine, gyarawa, inganta aiki da aminci. Misali, ɗayan kwatance shine ƙarin motsi zuwa ƙirar aikin asynchronous. Wasu ayyuka na abokin ciniki na gidan yanar gizo a halin yanzu an gina su akan ƙirar haɗin gwiwa tare da sabar. Samfurin asynchronous yanzu ya zama mafi dacewa a cikin masu bincike (kuma ba kawai a cikin masu bincike ba), kuma wannan yana tilasta mana mu canza abokin ciniki na gidan yanar gizo ta hanyar maye gurbin kira na aiki tare da waɗanda ba a daidaita ba (da sake fasalin lambar daidai). An bayyana canjin sannu a hankali zuwa samfurin asynchronous ta buƙatar tallafawa mafita da aka saki da kuma daidaita su a hankali.

source: www.habr.com

Add a comment