Za kasitomala wapaintaneti wa 1C

Chimodzi mwazinthu zabwino za 1C:ukadaulo wamabizinesi ndikuti njira yogwiritsira ntchito, yopangidwa pogwiritsa ntchito ukadaulo wa mafomu oyendetsedwa, imatha kukhazikitsidwa mwamakasitomala owonda (otheka) a Windows, Linux, MacOS X, komanso ngati kasitomala wapaintaneti wa asakatuli 5 - Chrome, Internet Explorer, Firefox, Safari, Edge, ndi zonsezi popanda kusintha kachidindo kochokera. Komanso, kunja ntchito mu woonda kasitomala ndi osatsegula ntchito ndi zikuwoneka pafupifupi zofanana.
Pezani 10 zosiyana (2 zithunzi pansi pa odulidwa):

Windo la kasitomala pa Linux:

Za kasitomala wapaintaneti wa 1C

Zenera lomwelo mu kasitomala wapaintaneti (mu msakatuli wa Chrome):

Za kasitomala wapaintaneti wa 1C

Chifukwa chiyani tinapanga kasitomala pa intaneti? Kunena momvetsa chisoni, nthawi yatipatsa ntchito yoteroyo. Kugwira ntchito pa intaneti kwakhala kofunika kwambiri pamabizinesi. Choyamba, tidawonjezera kuthekera kogwira ntchito kudzera pa intaneti kwa kasitomala wathu woonda (ena mwa omwe tidapikisana nawo, mwa njira, adayima pamenepo; ena, m'malo mwake, adasiya kasitomala wocheperako ndikungogwiritsa ntchito kasitomala wapaintaneti). Tinaganiza zopatsa ogwiritsa ntchito mwayi wosankha njira yamakasitomala yomwe ikuwakomera kwambiri.

Za kasitomala wapaintaneti wa 1C

Kuonjezera mphamvu zozikidwa pa intaneti kwa kasitomala woonda inali projekiti yayikulu yokhala ndi kusintha kotheratu pamamangidwe a kasitomala-seva. Kupanga kasitomala pa intaneti ndi pulojekiti yatsopano, kuyambira pachiyambi.

Kupanga kwa vuto

Chifukwa chake, zomwe polojekiti ikufuna: kasitomala wapaintaneti ayenera kuchita chimodzimodzi ndi kasitomala woonda, yemwe ndi:

  1. Onetsani mawonekedwe ogwiritsa ntchito
  2. Pangani khodi ya kasitomala yolembedwa m'chinenero cha 1C

Mawonekedwe a ogwiritsa ntchito mu 1C akufotokozedwa mu mkonzi wowonekera, koma momveka bwino, popanda makonzedwe a pixel-ndi-pixel a zinthu; Pafupifupi mitundu itatu ya mawonekedwe a mawonekedwe amagwiritsidwa ntchito - mabatani, malo olowera (zolemba, manambala, tsiku/nthawi), mindandanda, matebulo, ma graph, ndi zina zambiri.

Khodi yamakasitomala m'chinenero cha 1C ikhoza kukhala ndi mafoni a seva, kugwira ntchito ndi zinthu zapafupi (mafayilo, etc.), kusindikiza, ndi zina zambiri.

Makasitomala owonda (pamene akugwira ntchito pa intaneti) ndi kasitomala amagwiritsa ntchito mawebusayiti omwewo kulumikizana ndi seva ya pulogalamu ya 1C. Kukhazikitsa kwamakasitomala, ndizosiyana - kasitomala woonda amalembedwa mu C ++, kasitomala amalembedwa mu JavaScript.

Zakale za mbiriyakale

Ntchito ya kasitomala pa intaneti idayamba mu 2006, ndi gulu la (avareji) anthu asanu. Pazigawo zina za polojekitiyi, omanga adakhudzidwa kuti agwiritse ntchito ntchito zina (chikalata cha spreadsheet, zojambula, ndi zina zotero); monga lamulo, awa anali omwewo opanga omwe adachita izi mwa kasitomala woonda. Iwo. Madivelopa adalembanso zigawo za JavaScript zomwe adapanga kale mu C++.

Kuyambira pachiyambi penipeni, tinakana lingaliro la kutembenuka kwamtundu uliwonse (ngakhale pang'ono) kwa C++ kasitomala wocheperako kukhala kasitomala watsamba la JavaScript chifukwa cha kusiyana kwakukulu kwamalingaliro pakati pa zilankhulo ziwirizi; kasitomala wapaintaneti adalembedwa mu JavaScript kuyambira poyambira.

M'mawu oyamba a pulojekitiyi, kasitomala wapaintaneti adatembenuza kachidindo wamakasitomala m'chinenero cha 1C chokhazikika kukhala JavaScript. Woonda kasitomala amachita mosiyana - kachidindo kamene kamangidwe ka 1C kamapangidwa ndi bytecode, ndiyeno bytecode iyi imatanthauziridwa pa kasitomala. Pambuyo pake, kasitomala wapaintaneti adayamba kuchita zomwezo - choyamba, adapereka phindu, ndipo chachiwiri, zidapangitsa kuti zitheke kugwirizanitsa zomanga za makasitomala oonda ndi intaneti.

Mtundu woyamba wa 1C: nsanja ya Enterprise yokhala ndi chithandizo chamakasitomala apaintaneti idatulutsidwa mu 2009. Makasitomala apaintaneti panthawiyo amathandizira asakatuli awiri - Internet Explorer ndi Firefox. Zolinga zoyambirira zidaphatikizapo kuthandizira Opera, koma chifukwa cha zovuta zomwe zinalipo panthawiyo ndi otsekera ntchito ku Opera (Sizinali zotheka kutsata ndi 2% kutsimikiza kuti ntchitoyo ikutseka, ndipo panthawiyo tsatirani njira yochotsa 100C application seva) kuchokera pamalingaliro awa adayenera kusiyidwa.

Kapangidwe ka polojekiti

Pazonse, nsanja ya 1C:Enterprise ili ndi mapulojekiti 4 olembedwa mu JavaScript:

  1. WebTools - malaibulale ogawana omwe amagwiritsidwa ntchito ndi ma projekiti ena (timaphatikizanso Google Kutseka Library).
  2. Control element FormattedDocument (ikugwiritsidwa ntchito mu JavaScript mu kasitomala woonda komanso kasitomala wapaintaneti)
  3. Control element Wopanga dongosolo (ikugwiritsidwa ntchito mu JavaScript mu kasitomala woonda komanso kasitomala wapaintaneti)
  4. Web kasitomala

Mapangidwe a pulojekiti iliyonse amafanana ndi mapangidwe a mapulojekiti a Java (kapena mapulojekiti a .NET - omwe ali pafupi); Tili ndi malo a mayina, ndipo malo aliwonse ali mufoda yosiyana. Mkati mwa chikwatucho muli mafayilo ndi makalasi a namespace. Pali mafayilo pafupifupi 1000 mu projekiti yamakasitomala apa intaneti.

Mwamadongosolo, kasitomala wapaintaneti amagawidwa kwambiri m'magawo otsatirawa:

  • Makasitomala oyendetsedwa ndi mawonekedwe
    • Mawonekedwe anthawi zonse (mamenyu adongosolo, mapanelo)
    • Mawonekedwe amitundu yoyendetsedwa, kuphatikiza, mwa zina, zowongolera pafupifupi 30 (mabatani, mitundu yosiyanasiyana ya magawo olowetsa - zolemba, manambala, tsiku/nthawi, ndi zina zambiri, matebulo, mindandanda, ma grafu, ndi zina zambiri.)

  • Mtundu wazinthu womwe ukupezeka kwa omanga pa kasitomala (mitundu yopitilira 400 yonse: mtundu wa chinthu choyang'aniridwa, zoikamo za data, masitayilo okhazikika, ndi zina zambiri.)
  • Womasulira wa chilankhulo chomangidwa cha 1C
  • Zowonjezera za msakatuli (zogwiritsidwa ntchito ngati sizikugwiritsidwa ntchito mu JavaScript)
    • Kugwira ntchito ndi cryptography
    • Kugwira ntchito ndi mafayilo
    • Tekinoloje yazigawo zakunja, zomwe zimawalola kuti azigwiritsidwa ntchito pazowonda komanso makasitomala a intaneti

Zinthu Zachitukuko

Kukhazikitsa zonse zomwe zili pamwambapa mu JavaScript sikophweka. Mwina kasitomala wapaintaneti wa 1C ndi imodzi mwamapulogalamu akuluakulu omwe amalembedwa mu JavaScript - pafupifupi mizere 450.000. Timagwiritsa ntchito mwachangu njira yotsata zinthu mu code kasitomala, zomwe zimathandizira kugwira ntchito ndi polojekiti yayikulu chonchi.

Kuti tichepetse kukula kwa code ya kasitomala, tidayamba kugwiritsa ntchito obfuscator yathu, ndipo kuyambira ndi nsanja ya 8.3.6 (October 2014) tinayamba kugwiritsa ntchito. Google Closure Compiler. Zotsatira zakugwiritsa ntchito manambala - kukula kwa tsamba lamakasitomala pambuyo pa kusokoneza:

  • Obfuscator Yake - 1556 KB
  • Google Closure Compiler - 1073 kb

Kugwiritsa ntchito Google Closure Compiler kunatithandiza kukonza magwiridwe antchito a kasitomala wapaintaneti ndi 30% poyerekeza ndi obfuscator athu. Kuphatikiza apo, kuchuluka kwa kukumbukira komwe kumagwiritsidwa ntchito kwatsika ndi 15-25% (kutengera osatsegula).

Google Closure Compiler imagwira ntchito bwino kwambiri ndi code yokhazikika pa chinthu, kotero kuti magwiridwe ake a kasitomala awebusayiti ndiwokwera momwe angathere. Closure Compiler amatichitira zabwino zingapo:

  • Kuwunika kokhazikika pamagawo omanga pulojekiti (kuwonetsetsa kuti timalemba ma code ndi JSDoc annotations). Zotsatira zake ndikulemba mokhazikika, pafupi kwambiri ndi mulingo wa C++. Izi zimathandiza kuti apeze zolakwika zambiri panthawi yosonkhanitsa polojekiti.
  • Kuchepetsa kukula kwa code kudzera mu obfuscation
  • Kukhathamiritsa zingapo kwa code yomwe yachitika, mwachitsanzo, monga:
    • m'malo mwa ntchito zapaintaneti. Kuyitanira ntchito mu JavaScript ndi ntchito yokwera mtengo kwambiri, ndipo kulowetsa m'malo mwa njira zazing'ono zomwe zimagwiritsidwa ntchito pafupipafupi kumafulumizitsa nambalayo.
    • Kuwerengera zokhazikika panthawi yophatikiza. Ngati mawu amadalira nthawi zonse, mtengo weniweni wa nthawi zonse udzalowetsedwa m'malo mwake

Timagwiritsa ntchito WebStorm ngati malo otukula makasitomala athu.

Kusanthula ma code timagwiritsa ntchito Alireza, pomwe timaphatikiza ma static code analyzers. Pogwiritsa ntchito ma analyzer, timawunika kuwonongeka kwa mtundu wa JavaScript source code ndikuyesera kupewa.

Za kasitomala wapaintaneti wa 1C

Ndi mavuto ati omwe tidachita/tikuthana nawo?

Pakukhazikitsidwa kwa ntchitoyi, tidakumana ndi zovuta zingapo zosangalatsa zomwe tidayenera kuthana nazo.

Sinthani data ndi seva komanso pakati pa windows

Pali nthawi zina pomwe kusokoneza kwa code source kumatha kusokoneza magwiridwe antchito. Nambala yakunja kwa kachidindo kakasitomala wapaintaneti, chifukwa cha kusokoneza, ikhoza kukhala ndi mayina amtundu wa ntchito ndi magawo omwe amasiyana ndi omwe ma code athu omwe angathe kukwaniritsidwa amayembekezera. Khodi yakunja yathu ndi:

  • Khodi yochokera ku seva ngati mawonekedwe a data
  • Khodi ya zenera la pulogalamu ina

Kuti tipewe kusokoneza tikamalumikizana ndi seva, timagwiritsa ntchito @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;
}

Ndipo kuti tipewe kusokoneza tikamalumikizana ndi mazenera ena, timagwiritsa ntchito zomwe zimatchedwa kuti zotumiza kunja (mawonekedwe omwe njira zonse zimatumizidwa kunja).

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

Tidagwiritsa ntchito Virtual DOM isanakhale yotchuka)

Monga opanga onse omwe akuchita ndi ma UI ovuta a Webusayiti, tidazindikira mwachangu kuti DOM siyiyenera kugwira ntchito ndi mawonekedwe a ogwiritsa ntchito. Pafupifupi nthawi yomweyo, analogue ya Virtual DOM idakhazikitsidwa kuti ikwaniritse ntchito ndi UI. Pakukonza zochitika, zosintha zonse za DOM zimasungidwa kukumbukira ndipo, pokhapokha ntchito zonse zikamalizidwa, zosintha zomwe zasonkhanitsidwa zimayikidwa pamtengo wa DOM.

Kukonzekeletsa kasitomala pa intaneti

Kuti kasitomala wathu wapaintaneti azigwira ntchito mwachangu, timayesa kugwiritsa ntchito luso lokhazikika la msakatuli (CSS, ndi zina) mpaka pamlingo waukulu. Chifukwa chake, gulu lolamula la mawonekedwe (lomwe lili pafupifupi mtundu uliwonse wa pulogalamu) limaperekedwa kokha pogwiritsa ntchito zida za osatsegula, pogwiritsa ntchito masanjidwe amphamvu otengera CSS.

Za kasitomala wapaintaneti wa 1C

Kuyesa

Poyesa magwiridwe antchito ndi magwiridwe antchito, timagwiritsa ntchito chida chaumwini (cholembedwa mu Java ndi C ++), komanso mayeso angapo omangidwa pamwamba pa Selenium.

Chida chathu ndi chapadziko lonse lapansi - chimakupatsani mwayi woyesa pafupifupi pulogalamu iliyonse yawindo, motero ndi yoyenera kuyesa kasitomala wocheperako komanso kasitomala wapaintaneti. Chidachi chimalemba zochita za wogwiritsa ntchito yemwe adayambitsa yankho la 1C mu fayilo ya script. Nthawi yomweyo, zithunzi za malo ogwirira ntchito pazenera - miyezo - imajambulidwa. Mukayang'anira zatsopano za kasitomala pa intaneti, zolemba zimaseweredwa popanda kutengapo gawo kwa ogwiritsa ntchito. Ngati chithunzicho sichikugwirizana ndi zomwe zikufotokozedwa pa sitepe iliyonse, mayeserowo amaonedwa kuti alephera, pambuyo pake katswiri wa khalidwe amafufuza kuti adziwe ngati izi ndi zolakwika kapena kusintha komwe kunakonzedwa mu khalidwe la dongosolo. Pankhani ya khalidwe lokonzekera, miyezo imasinthidwa ndi yatsopano.

Chidachi chimayesanso magwiridwe antchito ndikulondola mpaka 25 milliseconds. Nthawi zina, timadula magawo a script (mwachitsanzo, kubwereza zolembera kangapo) kuti tifufuze kuwonongeka kwa nthawi yokonzekera. Zotsatira za miyeso yonse zimalembedwa mu chipika kuti muwunike.

Za kasitomala wapaintaneti wa 1C
Chida chathu choyesera ndikugwiritsa ntchito poyesedwa

Chida chathu ndi Selenium zimathandizirana; mwachitsanzo, ngati batani lina paziwonetsero lina lasintha malo ake, Selenium sangatsatire izi, koma chida chathu chidzazindikira, chifukwa. imapanga kufananitsa kwa pixel-ndi-pixel kwa chithunzicho ndi muyezo. Chidachi chimathanso kuyang'anira zovuta ndi kukonza zolowetsa kuchokera pa kiyibodi kapena mbewa, popeza izi ndizomwe zimaberekanso.

Kuyesa pazida zonse ziwiri (zathu ndi Selenium) zimayendera zochitika zantchito kuchokera pamayankho athu ogwiritsira ntchito. Mayesero amangoyambika pambuyo pa kumangidwa kwa tsiku ndi tsiku kwa 1C:Enterprise platform. Ngati ma script akuchedwa (poyerekeza ndi kumanga kwam'mbuyo), timafufuza ndikuthetsa chomwe chikuchepetsa. Mulingo wathu ndi wosavuta - kumanga kwatsopano kuyenera kugwira ntchito pang'onopang'ono kuposa m'mbuyomu.

Madivelopa amagwiritsa ntchito zida zosiyanasiyana kuti afufuze zomwe zikuchitika pang'onopang'ono; amagwiritsidwa ntchito makamaka Dynatrace AJAX Edition kampani yopanga DynaTrace. Zipika za kuchitidwa kwa zovuta zomwe zidamangidwa kale ndi zatsopano zimalembedwa, kenako zipika zimawunikidwa. Panthawi imodzimodziyo, nthawi yopangira ntchito imodzi (mu milliseconds) singakhale chinthu chofunika kwambiri - njira zothandizira monga kusonkhanitsa zinyalala zimayambitsidwa nthawi ndi nthawi mu msakatuli, zimatha kugwirizanitsa ndi nthawi yogwira ntchito ndikusokoneza chithunzicho. Zofunikira kwambiri pankhaniyi zitha kukhala kuchuluka kwa malangizo a JavaScript omwe aperekedwa, kuchuluka kwa ntchito za atomiki pa DOM, ndi zina zambiri. Ngati chiwerengero cha malangizo / ntchito zomwe zili muzolemba zomwezo zawonjezeka mumtundu watsopano, izi pafupifupi nthawi zonse zimatanthawuza kuchepa kwa ntchito zomwe ziyenera kukonzedwa.

Komanso, chimodzi mwazifukwa zochepetsera ntchito chingakhale chakuti Google Closure Compiler pazifukwa zina sinathe kulowetsa m'malo mwake (mwachitsanzo, chifukwa ntchitoyo ndi yobwerezabwereza kapena yeniyeni). Muchikozyano, tweelede kuchita oobo kwiinda mukulemba kaambo aaka.

Zowonjezera msakatuli

Ngati yankho la pulogalamu likufuna magwiridwe antchito omwe mulibe mu JavaScript, timagwiritsa ntchito msakatuli wowonjezera:

  • kuti mugwiritse ntchito mafayilo
  • ntchito ndi cryptography
  • ntchito ndi zigawo zakunja

Zowonjezera zathu zimakhala ndi magawo awiri. Gawo loyamba ndi lomwe limatchedwa kukulitsa kwa msakatuli (nthawi zambiri zowonjezera za Chrome ndi Firefox zolembedwa mu JavaScript), zomwe zimalumikizana ndi gawo lachiwiri - kukulitsa kwa binary komwe kumagwiritsa ntchito zomwe tikufuna. Ziyenera kunenedwa kuti timalemba mitundu itatu ya zowonjezera za binary - za Windows, Linux ndi MacOS. Kuwonjezedwa kwa binary kumaperekedwa ngati gawo la 3C:Enterprise nsanja ndipo ili pa seva yofunsira 1C. Nthawi yoyamba imayitanidwa kuchokera pa kasitomala, imatsitsidwa ku kompyuta yamakasitomala ndikuyika mu msakatuli.

Tikamayendetsa ku Safari, zowonjezera zathu zimagwiritsa ntchito NPAPI; poyendetsa mu Internet Explorer, amagwiritsa ntchito ukadaulo wa ActiveX. Microsoft Edge sichikuthandizira zowonjezera, kotero kasitomala wapaintaneti momwemo amagwira ntchito ndi zoletsa.

Kukula kopitilira

Imodzi mwa ntchito za gulu lachitukuko cha kasitomala pa intaneti ndikupititsa patsogolo magwiridwe antchito. Kugwira ntchito kwa kasitomala wapaintaneti kuyenera kukhala kofanana ndi magwiridwe antchito a kasitomala wocheperako; magwiridwe antchito onse atsopano amachitika nthawi imodzi mwamakasitomala owonda ndi apaintaneti.

Ntchito zina ndi monga kukonza zomanga, kukonzanso, kukonza magwiridwe antchito ndi kudalirika. Mwachitsanzo, chimodzi mwazolowera ndikusunthira kunjira yofananira. Zina mwazochita za kasitomala wapaintaneti zimamangidwa panjira yolumikizirana ndi seva. Mtundu wa asynchronous tsopano ukukhala wofunikira kwambiri pa asakatuli (osati asakatuli okha), ndipo izi zimatikakamiza kuti tisinthe kasitomala wapaintaneti posintha mafoni olumikizana ndi asynchronous (ndikusinthanso kachidindo moyenera). Kusintha kwapang'onopang'ono kupita ku mtundu wa asynchronous kumafotokozedwa ndi kufunikira kothandizira mayankho otulutsidwa ndikusintha kwawo pang'onopang'ono.

Source: www.habr.com

Kuwonjezera ndemanga