Ku saabsan macmiilka shabakadda 1C

Mid ka mid ah sifooyinka wanaagsan ee 1C: Tiknoolajiyada ganacsiga ayaa ah in xalka codsiga, oo la sameeyay iyadoo la adeegsanayo tignoolajiyada foomamka la maareeyay, lagu bilaabi karo labadaba macmiil khafiif ah (la fulin karo) Windows, Linux, MacOS X, iyo macmiilka shabakadda ee 5 daalacashada - Chrome, Internet Explorer, Firefox, Safari, Edge, iyo waxaas oo dhan iyada oo aan la beddelin koodhka isha codsiga. Waxaa intaa dheer, dibadda codsiga ee macmiilka khafiif ah iyo in browser ka shaqeeya oo u eg ku dhawaad ​​isku mid ah.
Soo hel 10 farqi ah (2 sawir oo goynta hoosteeda ah):

Daaqada macmiilka khafiifka ah ee Linux:

Ku saabsan macmiilka shabakadda 1C

Isla daaqada macmiilka shabakada (ee ku dhex jira browserka Chrome):

Ku saabsan macmiilka shabakadda 1C

Maxaynu uga dhignay macmiil shabakad? Haddaan si yar u idhaahdo, wakhtigu wuxuu noo dhigay hawshan oo kale. Ka shaqaynta internetka ayaa muddo dheer shardi u ahayd codsiyada ganacsiga. Ugu horreyntii, waxaan ku darnay awoodda aan uga shaqeyneyno internetka ee macmiilkayaga khafiifka ah (qaar ka mid ah tartamayaashayada, habka, ayaa istaagay, kuwa kale, liddi ku ah, waxay ka tageen macmiilka khafiifka ah waxayna ku xaddidan yihiin hirgelinta macmiilka webka). Waxaan go'aansanay inaan siino isticmaalayaashayada fursad ay ku doortaan ikhtiyaarka macmiilka ee ku habboon iyaga.

Ku saabsan macmiilka shabakadda 1C

Ku darista awoodaha shabakadda ee macmiilka khafiifka ah waxay ahayd mashruuc weyn oo leh isbeddel dhammaystiran oo ku yimid dhismaha macmiilka-server. Abuuritaanka macmiilka shabakadda waa mashruuc gebi ahaanba cusub, oo ka bilaabmaya eber.

Abuurista dhibaatada

Markaa, shuruudaha mashruuca: macmiilka shabakadu waa inuu sameeyaa si la mid ah macmiilka khafiifka ah, oo ah:

  1. Muuji interface user
  2. Fulinta koodka macmiilka oo ku qoran luqadda 1C

Isku-xidhka isticmaale ee 1C waxa lagu sifeeyaa tifaftire muuqaal ah, laakiin si cad, iyada oo aan lahayn habayn pixel-by-pixel ee curiyeyaasha; Qiyaastii saddex iyo toban nooc oo walxaha is-dhexgalka ah ayaa la isticmaalaa - badhamada, meelaha wax lagu geliyo (qoraal, tiro, taariikh/wakhti), liisaska, miisaska, garaafyada, iwm.

Koodhka macmiilka ee luqadda 1C waxa uu ka koobnaan karaa wicitaanada adeegaha, la shaqaynta ilaha deegaanka (faylalka, iwm.), daabacaadda, iyo wax ka badan.

Labada macmiil ee khafiifka ah (marka aad ka shaqaynayso mareegaha) iyo macmiilka shabakadu waxay isticmaalaan adeeg shabakad isku mid ah si ay ula xidhiidhaan serverka codsiga 1C. Hirgelinta macaamiisha, dabcan, way kala duwan yihiin - macmiilka khafiifka ah wuxuu ku qoran yahay C ++, macmiilka webka wuxuu ku qoran yahay JavaScript.

Tiro yar oo taariikh ah

Mashruuca macmiilka shabakadu waxa uu bilaabmay 2006, iyada oo koox ka kooban (celcelis ahaan) 5 qof ah. Marxaladaha qaarkood ee mashruuca, horumariyayaashu waxay ku lug lahaayeen hirgelinta hawlo gaar ah (dukumeenti xaashida, jaantusyada, iwm.); sida caadiga ah, kuwani waxay ahaayeen horumariyayaal isku mid ah kuwaas oo ku sameeyay shaqadan macmiilka khafiifka ah. Kuwaas. horumariyayaashu waxay dib-u-qoreen qaybo JavaScript ah oo ay hore ugu abuureen C++.

Laga soo bilaabo bilowgii hore, waxaan diidnay fikradda ah beddelka tooska ah (xitaa qayb ahaan) ee C ++ koodhka macmiilka khafiifka ah ee macmiilka webka JavaScript sababtoo ah farqiga fikradeed ee xooggan ee u dhexeeya labada luqadood; macmiilka shabakada waxa lagu qoray JavaScript meel eber ah.

Ku celcelinta ugu horraysa ee mashruuca, macmiilka shabakadu wuxuu u beddelay koodka macmiilka ee ku dhex jira luqadda 1C si toos ah JavaScript. Macmiilka khafiifka ah wuxuu u dhaqmaa si ka duwan - koodhka ku jira luqadda 1C ee ku dhex jira waxaa lagu ururiyaa bytecode, ka dibna bytecode-kan ayaa lagu turjumay macmiilka. Ka dib, macmiilka shabakadu wuxuu bilaabay inuu sameeyo isla - marka hore, waxay siisay faa'iido waxqabad, marka labaadna, waxay suurtogalisay in la mideeyo naqshadaha macaamiisha khafiifka ah iyo kuwa webka.

Nooca koowaad ee 1C:Madal ganacsi oo leh taageerada macmiilka webka ayaa la sii daayay 2009kii. Macmiilka shabakadda ee wakhtigaas waxa uu taageeray 2 browser - Internet Explorer iyo Firefox. Qorshayaasha asalka ah waxaa ka mid ah taageerada Opera, laakiin dhibaatooyinka aan la dabooli karin ee wakhtigaas oo ku saabsan xiritaanka codsiga ee Opera (ma suurtagal ahayn in la socdo 100% hubaal in codsigu xiran yahay, isla markaana wakhtigaas la sameeyo habka goynta server-ka codsiga 1C) ee qorshayaashan waa in laga tago.

Qaab dhismeedka mashruuca

Isku soo wada duuboo, 1C:Madal ganacsigu waxa uu leeyahay 4 mashruuc oo ku qoran JavaScript:

  1. WebTools – maktabado la wadaago oo ay isticmaalaan mashruucyo kale (sidoo kale waxaan ku darnaa Maktabada Xidhitaanka Google).
  2. Qaybta xakamaynta Dukumeenti la sameeyay (oo lagu hirgeliyay JavaScript labadaba macmiilka khafiifka ah iyo macmiilka shabakadda)
  3. Qaybta xakamaynta Jadwalka (oo lagu hirgeliyay JavaScript labadaba macmiilka khafiifka ah iyo macmiilka shabakadda)
  4. Macmiilka shabakadda

Qaab dhismeedka mashruuc kastaa wuxuu u eg yahay qaab-dhismeedka mashaariicda Java (ama mashaariicda NET - mid kasta oo u dhow); Waxaan leenahay meelo magacyo ah, meel kasta oo magaceeduna waxay ku jirtaa gal gaar ah. Galka dhexdiisa waxaa ku yaal faylal iyo fasalo meel magac ah. Waxaa jira ilaa 1000 fayl mashruuca macmiilka webka.

Dhisme ahaan, macmiilka shabakadu waxa uu u qaybsan yahay nidaamyada hoose ee soo socda:

  • Interface codsiga macmiilka la maareeyay
    • Interface codsiga guud (nidaamka menus, panels)
    • Interface foomamka la maareeyay, oo ay ku jiraan, waxyaabo kale, ilaa 30 kontaroolo (badhamada, noocyada kala duwan ee goobaha wax gelinta - qoraalka, tirada, taariikhda/waqtiga, iwm., miisaska, liisaska, garaafyada, iwm.)

  • Qaabka shayga ay heli karaan horumariyeyaasha macmiilka (in ka badan 400 nooc oo wadar ahaan: moodel shayga la maareeyey, habaynta xogta, qaabaynta shuruuda, iwm.)
  • Turjubaanka ku dhex dhisan luqadda 1C
  • Kordhinta Browser (loo isticmaalo shaqaynta aan lagu taageerin JavaScript)
    • La shaqaynta cryptography
    • Ku shaqaynta faylasha
    • Tiknoolajiyada qaybaha dibadda, taas oo u oggolaanaysa in loo isticmaalo labadaba macaamiisha khafiifka ah iyo kuwa shabakadda

Tilmaamaha Horumarinta

Ku hirgalinta dhammaan kuwa kore ee JavaScript ma fududa. Waxaa laga yaabaa in macmiilka shabakadda 1C uu yahay mid ka mid ah codsiyada dhinaca macmiilka ee ugu weyn ee ku qoran JavaScript - ilaa 450.000 oo sadar. Waxaan si firfircoon u isticmaalnaa hab ku jihaysan shayga koodhka macmiilka webka, kaas oo fududaynaya la shaqaynta mashruucan weyn.

Si loo yareeyo cabbirka koodhka macmiilka, waxaan markii hore isticmaalnay obfuscator noo gaar ah, oo laga bilaabo nooca platformka 8.3.6 (Oktoobar 2014) waxaan bilownay inaan isticmaalno Google xidhidhiyaha. Saamaynta isticmaalka tirooyinka - cabbirka qaab-dhismeedka macmiilka shabakadda ka dib marka la daboolo:

  • Dhagaha iska leh - 1556 kb
  • Isku-xidhaha Xiritaanka Google - 1073 kb

Adeegsiga Google-ka Xiritaanka Compiler wuxuu naga caawiyay horumarinta waxqabadka macmiilka shabakadda 30% marka la barbar dhigo qalabeeyahayaga. Intaa waxaa dheer, qadarka xusuusta ee uu isticmaalo codsigu wuxuu hoos u dhacay 15-25% (waxay kuxirantahay browserka).

Compiler-ka Xiritaanka Google wuxuu si fiican ugu shaqeeyaa koodka shayga ku jihaysan, sidaa darteed waxtarkeeda macmiilka shabakadu waa mid aad u sarreeya intii suurtogal ah. Compiler-ka xidhidhiyaha ayaa dhawr waxyaalood oo wanaagsan inoo sameeya:

  • Hubinta nooca taagan ee heerka dhismaha mashruuca (waxay hubisaa inaan ku daboolno koodka sharraxaadda JSDoc). Natiijadu waa teebaynta joogtada ah, oo aad ugu dhow heerka ku qorista C++. Tani waxay gacan ka geysaneysaa in la qabto boqolkiiba si cadaalad ah u badan khaladaadka marxaladda ururinta mashruuca.
  • Yaraynta cabbirka koodka iyada oo loo marayo qarsoodi
  • Tiro ka mid ah hagaajinta koodka la fuliyay, tusaale ahaan, sida:
    • beddelka shaqada inline. U yeedhista shaqo ee JavaScript waa hawl qaali ah, iyo beddelka khadka ee habab yaryar oo inta badan la isticmaalo ayaa si weyn u dedejiya koodka.
    • Tirinta joogtada ah ee wakhtiga la ururinayo Haddii tibaaxuhu ay ku xiran yihiin joogto, qiimaha dhabta ah ee joogtada ah ayaa lagu beddeli doonaa

Waxaan u isticmaalnaa WebStorm sidii deegaan horumarinta macmiilkayaga.

Falanqaynta code waxaan isticmaalnaa codQube, halkaas oo aan ku dhexgelinno falanqeeyayaasha code static. Isticmaalka falanqeeyayaasha, waxaan la soconaa hoos u dhaca tayada koodhka isha JavaScript waxaanan isku daynaa inaan ka hortagno.

Ku saabsan macmiilka shabakadda 1C

Dhibaatooyinkee ayaan qabanay/ xalinayna?

Intii uu socday fulinta mashruuca, waxaan la kulannay dhibaatooyin badan oo xiiso leh oo aan xalinay.

Ku beddel xogta serverka iyo inta u dhaxaysa daaqadaha

Waxaa jira xaalado marka qarsoodiga koodhka isha uu faragelin karo hawlgalka nidaamka. Koodhka ka baxsan koodka la fulin karo ee macmiilka shabakada, daahsoon awgeed, waxa laga yaabaa inuu lahaado shaqo iyo magacyo ka duwan kuwa uu filayo koodkayaga la fulin karo. Koodhka dibadda anaga ayaa ah:

  • Koodhka ka imanaya server-ka oo ah qaab dhismeed xogeed
  • Koodhka daaqada codsiga kale

Si aan isaga ilaalino xishoodka marka aan la falgalayno serferka, waxaan isticmaalnaa @expose tag:

/**
 * @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;
}

Iyo si aan uga fogaano daboolka marka aan la falgalayno daaqadaha kale, waxaan isticmaalnaa waxa loo yaqaan interfaces dhoofinta (interfaces kuwaas oo dhammaan hababka la dhoofiyo).

/**
 * ЭкспортируСмый интСрфСйс ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π° 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 (){}

Waxaan isticmaalnay Virtual DOM ka hor inta aysan noqon mid guud)

Sida dhammaan horumariyeyaasha la tacaalaya UI Web adag, waxaan si dhakhso ah u ogaanay in DOM ay liidato ku habboon tahay inay la shaqeyso is-dhexgal isticmaale oo firfircoon. Isla markiiba, analoogga Virtual DOM ayaa la hirgeliyay si kor loogu qaado shaqada UI. Inta lagu jiro habaynta dhacdada, dhammaan isbeddelada DOM waxaa lagu kaydiyaa xusuusta, kaliya marka dhammaan hawlgallada la dhammeeyo, isbeddelada la ururiyey ayaa lagu dabaqaa geedka DOM.

Hagaajinta macmiilka shabakada

Si macmiilkayaga shabakadu u shaqeeyo si dhakhso leh, waxaanu isku daynaa inaanu isticmaalno awooda browserka caadiga ah (CSS, iwm.) ilaa ugu badnaan. Sidaa darteed, guddiga taliska foomka (oo ku yaal ku dhawaad ​​nooc kasta oo codsiga ah) waxaa si gaar ah loo sameeyay iyadoo la adeegsanayo aaladaha browserka, iyadoo la adeegsanayo qaab-dhismeed firfircoon oo ku saleysan CSS.

Ku saabsan macmiilka shabakadda 1C

Imtixaanka

Tijaabada shaqada iyo waxqabadka, waxaanu isticmaalnaa qalab gaar ah (oo ku qoran Java iyo C++), iyo sidoo kale tiro tijaabo ah oo lagu dhisay dusha sare sayliniyam.

Qalabkeenu waa mid caalami ah - wuxuu kuu ogolaanayaa inaad tijaabiso ku dhawaad ​​barnaamij kasta oo daaqad ah, sidaas darteed waxay ku habboon tahay tijaabinta macmiilka khafiifka ah iyo macmiilka shabakadda labadaba. Qalabku wuxuu diiwaangeliyaa ficillada adeegsadaha bilaabay xalka codsiga 1C ee gal qoraal ah. Isla mar ahaantaana, sawirada goobta shaqada ee shaashadda - heerarka - ayaa la duubay. Marka la kormeerayo noocyada cusub ee macmiilka shabakadda, qoraallada waa la ciyaaraa iyada oo aan isticmaaluhu ka qaybgelin. Kiisaska sawirku aanu ku habboonayn tixraaca tallaabo kasta, imtixaanka waxaa loo arkaa inuu fashilmay, ka dib markaa khabiir tayo leh ayaa sameeya baaritaan si loo go'aamiyo in tani ay tahay qalad ama isbeddel qorsheysan oo habdhaqanka nidaamka. Haddii ay dhacdo hab-dhaqan la qorsheeyay, halbeegyada si toos ah ayaa loogu beddelayaa kuwo cusub.

Qalabku waxa kale oo uu cabbiraa waxqabadka arjiga oo sax ah ilaa 25 millise seconds. Xaaladaha qaarkood, waxaanu duubnaa qaybo ka mid ah qoraalka (tusaale, ku celcelinta soo gelista amarka dhawr jeer) si loo falanqeeyo hoos u dhaca wakhtiga fulinta wakhti ka dib. Natiijooyinka cabbiraadaha oo dhan waxaa lagu diiwaangeliyaa diiwaanka falanqaynta.

Ku saabsan macmiilka shabakadda 1C
Qalabkayaga tijaabada iyo codsigayaga tijaabada

Qalabkeena iyo Selenium waa midba midka kale; tusaale ahaan, haddii badhanka mid ka mid ah shaashadaha uu beddelo meesha uu ku yaal, Selenium waxaa laga yaabaa in aanu la socon tan, laakiin qalabkayagu wuu ogaan doonaa, sababtoo ah wuxuu samaynayaa is barbar dhig-pixel-by-pixel sawirka shaashadda iyo heerka. Qalabku waxa kale oo uu awood u leeyahay in uu la socdo mashaakilaadka habaynta habaynta ee kiiboodhka ama jiirka, maadaama ay tani tahay waxa uu soo saaro.

Tijaabooyin ku saabsan labada qalab (anaga iyo Selenium) waxay maamulaan xaaladaha shaqada caadiga ah ee xalalkayaga codsiga. Tijaabooyinku si toos ah ayaa loo bilaabaa ka dib dhisitaanka maalinlaha ah ee 1C: madal ganacsi. Haddii qoraaladu ay gaabis yihiin (marka la barbardhigo dhismihii hore), waxaanu baadhnaa oo xalinnaa sababta hoos u dhaca. Shuruudahayadu waa sahlan yihiin - dhismaha cusubi waa inuusan ka yarayn kii hore.

Horumariyayaashu waxay isticmaalaan qalab kala duwan si ay u baaraan dhacdooyinka gaabis ah; inta badan la isticmaalo Dynatrace AJAX Edition shirkadda wax soo saarka DynaTrace. Diiwaanada fulinta hawlgalka dhibka leh ee dhismayaashii hore iyo kuwa cusub ayaa la duubayaa, ka dibna diiwaannada ayaa la falanqeynayaa. Isla mar ahaantaana, wakhtiga fulinta hawlgallada hal-biloodlaha ah (millise seconds) ma noqon karaan arrin muhiim ah - hababka adeegga sida ururinta qashinka ayaa si xilliyo ah loo bilaabay browserka, waxay isku dhejin karaan wakhtiga fulinta hawlaha waxayna leexin karaan sawirka. Qodobo badan oo khuseeya kiiskan ayaa noqon doona tirada tilmaamaha JavaScript ee la fuliyay, tirada hawlgallada atomiga ee DOM, iwm. Haddii tirada tilmaamaha/hawlgallada isla qoraalka ay kordheen nooc cusub, tani had iyo jeer waxay ka dhigan tahay hoos u dhac ku yimaada waxqabadka u baahan in la saxo.

Sidoo kale, mid ka mid ah sababaha hoos u dhaca waxqabadka ayaa laga yaabaa inay tahay Google xidhitaanka Compiler sabab qaar ka mid ah wuxuu awoodi waayay inuu sameeyo beddelka khadka ee shaqada (tusaale, sababtoo ah shaqadu waa soo noqnoqonaysa ama mid toos ah). Xaaladdan oo kale, waxaan isku dayeynaa in aan saxno xaaladda annaga oo dib u qoraya koodhka isha.

Kordhinta browserka

Marka xalka codsigu u baahan yahay shaqeyn aan laga heli karin JavaScript, waxaan isticmaalnaa kordhinta browserka:

  • si loogu shaqeeyo faylasha
  • La shaqaynta cryptography
  • la shaqee qaybaha dibadda

Kordhintayadu waxay ka kooban tahay laba qaybood. Qaybta hore waa waxa loo yaqaan kordhinta browserka (sida caadiga ah kordhinta Chrome iyo Firefox ee ku qoran JavaScript), kuwaas oo la falgala qaybta labaad - kordhinta binary taas oo fulinaysa shaqeynta aan u baahanahay. Waa in la xuso in aan qorno 3 nooc oo kordhinta binary - Windows, Linux iyo MacOS. Kordhinta binary-ga waxa la keenay iyada oo qayb ka ah 1C:Madal ganacsi oo ku yaal server-ka 1C. Marka ugu horeysa ee laga waco macmiilka shabakada, waxaa lagu soo dejiyaa kombuyuutarka macmiilka oo lagu rakibay browserka.

Markay ku socoto Safari, kordhinteena waxay isticmaashaa NPAPI; marka ay ku socoto Internet Explorer, waxay isticmaalaan tignoolajiyada ActiveX. Microsoft Edge Weli ma taageerto kordhinta, markaa macmiilka shabakadda ee ku jira wuxuu la shaqeeyaa xannibaado.

Horumarin dheeraad ah

Mid ka mid ah hawlaha kooxda horumarinta macmiilka webka waa horumarinta dheeraadka ah ee shaqeynta. Shaqada macmiilka shabakadu waa inay la mid noqotaa shaqada macmiilka khafiifka ah; dhammaan hawlaha cusub waxaa lagu hirgeliyaa isku mar labadaba macaamiisha khafiifka ah iyo kuwa shabakadda.

Hawlaha kale waxaa ka mid ah horumarinta dhismaha, dib u habeynta, hagaajinta waxqabadka iyo isku halaynta. Tusaale ahaan, mid ka mid ah jihooyinku waa dhaqdhaqaaq dheeraad ah oo ku wajahan qaab shaqo oo aan kala sooc lahayn. Qaar ka mid ah shaqeynta macmiilka shabakadda ayaa hadda lagu dhisay qaab isku mid ah oo isdhexgalka serferka. Qaabka asynchronous ayaa hadda noqday mid ku habboon daalacashada (oo kaliya maahan daalacashada), tani waxay nagu qasbaysaa in aan wax ka beddelno macmiilka shabakadda annaga oo ku beddelayna wicitaannada isku midka ah ee kuwa is-maan-dhaafka ah (iyo dib u habeynta koodka si waafaqsan). U gudubka tartiib tartiib ah ee qaabka asynchronous waxaa lagu sharaxay baahida loo qabo in la taageero xalalka la sii daayay iyo la qabsigooda tartiib tartiib ah.

Source: www.habr.com

Add a comment