Ib qho ntawm cov yam ntxwv zoo ntawm 1C: Kev lag luam thev naus laus zis yog qhov kev daws teeb meem, tsim los ntawm kev tswj cov ntaub ntawv thev naus laus zis, tuaj yeem tsim tawm ob qho tib si hauv cov neeg siv khoom nyias (executable) rau Windows, Linux, MacOS X, thiab ua tus neeg siv web rau 5 browsers - Chrome, Internet Explorer, Firefox, Safari, Edge, thiab tag nrho cov no yam tsis tau hloov pauv daim ntawv thov qhov chaws. Ntxiv mus, externally daim ntawv thov nyob rau hauv cov neeg siv nyias nyias thiab nyob rau hauv lub browser functions thiab zoo li yuav luag zoo tib yam.
Nrhiav 10 qhov sib txawv (2 daim duab hauv qab txiav):
Nyias tus neeg siv lub qhov rais ntawm Linux:
Tib lub qhov rais hauv web neeg siv (hauv Chrome browser):
Vim li cas peb thiaj ua tus neeg siv khoom siv web? Txhawm rau muab nws me ntsis ua siab ntev, lub sijhawm tau teeb tsa txoj haujlwm zoo li no rau peb. Kev ua haujlwm hauv Is Taws Nem tau ntev dhau los ua qhov yuav tsum tau ua ua ntej rau daim ntawv thov kev lag luam. Ua ntej, peb ntxiv lub peev xwm ua haujlwm hauv Is Taws Nem rau peb cov neeg siv khoom nyias (qee ntawm peb cov neeg sib tw, los ntawm txoj kev, tau nres ntawm qhov no; lwm tus, ntawm qhov tsis sib xws, tso tseg cov neeg siv khoom nyias thiab txwv lawv tus kheej rau kev siv lub vev xaib neeg siv khoom). Peb txiav txim siab muab sijhawm rau peb cov neeg siv los xaiv cov neeg siv khoom xaiv uas haum rau lawv zoo tshaj plaws.
Ntxiv qhov muaj peev xwm ntawm lub vev xaib rau cov neeg siv khoom nyias yog qhov project loj nrog kev hloov pauv tag nrho hauv cov neeg siv khoom-neeg rau zaub mov architecture. Tsim tus neeg siv lub vev xaib yog qhov project tshiab kiag li, pib los ntawm kos.
Nqe lus ntawm qhov teeb meem
Yog li, qhov project yuav tsum: tus neeg siv lub vev xaib yuav tsum ua tib yam li tus neeg siv khoom nyias, uas yog:
Tso cov neeg siv interface
Ua tus neeg siv code sau ua 1C hom lus
Tus neeg siv interface hauv 1C tau piav qhia hauv qhov pom kev kho, tab sis tshaj tawm, tsis muaj pixel-los-pixel kev npaj ntawm cov ntsiab lus; Txog peb lub kaum ob hom ntawm cov ntsiab lus sib txuas tau siv - cov nyees khawm, cov ntawv sau (cov ntawv nyeem, cov lej, hnub / sijhawm), cov npe, rooj, duab, thiab lwm yam.
Ob tus neeg siv khoom nyias (thaum ua haujlwm ntawm lub vev xaib) thiab tus neeg siv lub vev xaib siv tib lub vev xaib kev pabcuam sib txuas lus nrog 1C daim ntawv thov server. Cov neeg siv khoom siv, tau kawg, txawv - tus neeg siv khoom nyias tau sau hauv C ++, tus neeg siv lub vev xaib tau sau hauv JavaScript.
Ib me ntsis keeb kwm
Lub vev xaib tus neeg siv khoom tau pib xyoo 2006, nrog pab pawg (qhov nruab nrab) 5 tus neeg. Ntawm qee theem ntawm txoj haujlwm, cov neeg tsim khoom tau koom tes los siv cov haujlwm tshwj xeeb (cov ntaub ntawv nthuav dav, daim duab kos, thiab lwm yam); Raws li txoj cai, cov no yog tib cov neeg tsim khoom uas tau ua qhov haujlwm no hauv cov neeg siv khoom nyias. Cov. developers rov sau cov khoom hauv JavaScript uas lawv tau tsim yav dhau los hauv C ++.
Txij thaum pib, peb tsis lees paub lub tswv yim ntawm txhua qhov tsis siv neeg (txawm tias ib nrab) hloov pauv ntawm C ++ nyias tus neeg siv code rau hauv JavaScript web tus neeg siv khoom vim muaj qhov sib txawv ntawm ob hom lus; tus neeg siv lub vev xaib tau sau rau hauv JavaScript los ntawm kos.
Hauv thawj qhov kev hloov pauv ntawm qhov project, tus neeg siv lub vev xaib tau hloov pauv cov neeg siv khoom siv hauv cov lus tsim hauv 1C ncaj qha rau hauv JavaScript. Cov neeg siv nyias nyias ua txawv - cov cai hauv cov lus tsim hauv 1C tau muab tso ua ke rau hauv bytecode, thiab tom qab ntawd cov bytecode no tau txhais ntawm tus neeg siv khoom. Tom qab ntawd, tus neeg siv lub vev xaib tau pib ua ib yam - thawj zaug, nws tau txais txiaj ntsig kev ua tau zoo, thiab qhov thib ob, nws tau ua kom muaj kev sib koom ua ke ntawm cov neeg siv khoom nyias thiab lub vev xaib.
Thawj version ntawm 1C: Kev Lag Luam platform nrog cov neeg siv khoom txhawb nqa tau tso tawm xyoo 2009. Tus neeg siv lub vev xaib thaum lub sijhawm ntawd txhawb nqa 2 browsers - Internet Explorer thiab Firefox. Cov phiaj xwm qub suav nrog kev txhawb nqa rau Opera, tab sis vim muaj teeb meem insurmountable nyob rau lub sijhawm ntawd nrog daim ntawv thov kaw cov neeg tuav haujlwm hauv Opera (nws tsis tuaj yeem taug qab nrog 100% tseeb tias daim ntawv thov raug kaw, thiab lub sijhawm ntawd ua tiav cov txheej txheem kev txiav tawm los ntawm cov ntawv thov. 1C daim ntawv thov server) los ntawm cov phiaj xwm no yuav tsum tau tso tseg.
Qhov project qauv
Nyob rau hauv tag nrho, lub 1C: Enterprise platform muaj 4 tej yaam num sau nyob rau hauv JavaScript:
Technology ntawm cov khoom siv sab nraud, tso cai rau lawv siv rau hauv ob qho tib si nyias thiab cov neeg siv web
Kev Loj Hlob Nta
Kev siv tag nrho cov saum toj no hauv JavaScript tsis yooj yim. Tej zaum 1C tus neeg siv lub vev xaib yog ib qho ntawm cov neeg siv khoom loj tshaj plaws-sab ntawv sau hauv JavaScript - txog 450.000 kab. Peb nquag siv cov khoom-taw qhia txoj hauv kev hauv lub vev xaib tus neeg siv khoom code, uas yooj yim ua haujlwm nrog qhov project loj.
Txhawm rau txo qhov loj me ntawm cov neeg siv khoom, peb thawj zaug siv peb tus kheej obfuscator, thiab pib nrog lub platform version 8.3.6 (Lub Kaum Hli 2014) peb pib siv. Google Kaw Compiler. Cov txiaj ntsig ntawm kev siv cov lej - qhov loj ntawm lub vev xaib tus neeg siv khoom tom qab obfuscation:
Tus kheej obfuscator - 1556 kb
Google Kaw Compiler - 1073 kb
Siv Google Closure Compiler pab peb txhim kho kev ua haujlwm ntawm tus neeg siv lub vev xaib los ntawm 30% piv rau peb tus kheej obfuscator. Tsis tas li ntawd, tus nqi ntawm lub cim xeeb noj los ntawm daim ntawv thov tau txo los ntawm 15-25% (nyob ntawm qhov browser).
Google Closure Compiler ua haujlwm zoo heev nrog cov khoom-oriented code, yog li nws qhov kev ua tau zoo rau tus neeg siv lub vev xaib siab npaum li qhov ua tau. Kaw Compiler ua ob peb yam zoo rau peb:
Kev tshuaj xyuas zoo li qub ntawm qhov project tsim theem (kom paub meej tias peb npog cov cai nrog JSDoc annotations). Qhov tshwm sim yog kev ntaus ntawv zoo li qub, ze heev nyob rau theem rau kev ntaus hauv C ++. Qhov no yuav pab kom ntes tau qhov feem pua ββββntawm qhov tsis raug ntawm qhov project compilation theem.
Thaum lub sij hawm ua qhov project, peb tau ntsib ntau yam teeb meem nthuav uas peb yuav tsum tau daws.
Hloov cov ntaub ntawv nrog lub server thiab nruab nrab ntawm windows
Muaj cov xwm txheej uas obfuscation ntawm qhov chaws tuaj yeem cuam tshuam nrog kev ua haujlwm ntawm qhov system. Code sab nraud rau tus neeg siv lub vev xaib tus lej ua tau zoo, vim yog obfuscation, tej zaum yuav muaj lub luag haujlwm thiab cov npe parameter uas txawv ntawm cov uas peb xav tau. Tus lej sab nraud rau peb yog:
Code los ntawm lub server nyob rau hauv daim ntawv ntawm cov ntaub ntawv qauv
Peb siv Virtual DOM ua ntej nws dhau los ua qhov tseem ceeb)
Zoo li txhua tus neeg tsim khoom lag luam cuam tshuam nrog cov Web UI nyuaj, peb pom tau sai sai tias DOM tsis zoo rau kev ua haujlwm nrog cov neeg siv kev sib cuam tshuam. Yuav luag tam sim ntawd, ib qho analogue ntawm Virtual DOM tau siv los ua kom zoo dua ua haujlwm nrog UI. Thaum lub sijhawm ua haujlwm, txhua qhov kev hloov pauv DOM tau khaws cia rau hauv lub cim xeeb thiab, tsuas yog thaum tag nrho cov haujlwm ua tiav, cov kev hloov pauv tau siv rau DOM tsob ntoo.
Optimizing lub web client
Txhawm rau ua kom peb tus neeg siv lub vev xaib ua haujlwm sai dua, peb sim siv tus qauv browser peev xwm (CSS, thiab lwm yam) kom siab tshaj plaws. Yog li, daim ntawv hais kom ua vaj huam sib luag (nyob ntawm yuav luag txhua daim ntawv thov) tau ua tiav tsuas yog siv cov cuab yeej browser, siv dynamic layout raws li CSS.
Kev Ntsuam Xyuas
Rau kev ua haujlwm thiab kev ntsuas kev ua tau zoo, peb siv cov cuab yeej muaj tswv (sau hauv Java thiab C ++), nrog rau cov suite ntawm cov kev sim ua rau saum. selenium.
Peb lub cuab yeej yog universal - nws tso cai rau koj los ntsuas yuav luag txhua qhov kev pab cuam windows, thiab yog li tsim nyog rau kev sim ob tus neeg siv khoom nyias thiab tus neeg siv lub vev xaib. Cov cuab yeej sau cov kev ua ntawm tus neeg siv uas tau pib 1C daim ntawv thov kev daws teeb meem rau hauv cov ntawv sau. Nyob rau tib lub sijhawm, cov duab ntawm thaj chaw ua haujlwm ntawm lub vijtsam - cov qauv - raug kaw. Thaum saib xyuas cov qauv tshiab ntawm tus neeg siv lub vev xaib, cov ntawv sau ua si yam tsis muaj tus neeg siv koom nrog. Nyob rau hauv rooj plaub uas lub screenshot tsis sib xws rau ib qho kev siv ntawm ib kauj ruam, qhov kev ntsuam xyuas tau txiav txim siab ua tsis tiav, tom qab uas tus kws tshaj lij ua haujlwm zoo ua kev tshawb xyuas los txiav txim seb qhov no yog qhov yuam kev lossis kev npaj hloov pauv ntawm tus cwj pwm ntawm lub system. Nyob rau hauv cov ntaub ntawv ntawm kev npaj tus cwj pwm, cov qauv yuav cia li hloov nrog cov tshiab.
Cov cuab yeej kuj ntsuas kev ua haujlwm ntawm daim ntawv thov nrog qhov tseeb txog li 25 milliseconds. Qee zaum, peb voj ntu ntawm tsab ntawv (piv txwv li, rov ua qhov kev txiav txim nkag ob peb zaug) txhawm rau txheeb xyuas qhov degradation ntawm kev ua tiav lub sijhawm. Cov txiaj ntsig ntawm txhua qhov kev ntsuas tau sau tseg rau hauv ib lub cav rau kev txheeb xyuas.
Peb extensions muaj ob feem. Thawj ntu yog qhov hu ua browser txuas ntxiv (feem ntau txuas ntxiv rau Chrome thiab Firefox sau hauv JavaScript), uas cuam tshuam nrog ntu thib ob - binary txuas ntxiv uas siv cov haujlwm peb xav tau. Nws yuav tsum tau hais tias peb sau 3 versions ntawm binary extensions - rau Windows, Linux thiab MacOS. Lub binary txuas ntxiv yog muab los ua ib feem ntawm 1C: Kev Lag Luam platform thiab nyob rau ntawm 1C daim ntawv thov server. Thaum hu thawj zaug los ntawm tus neeg siv lub vev xaib, nws tau rub tawm mus rau tus neeg siv lub khoos phis tawj thiab nruab rau hauv browser.
Thaum khiav hauv Safari, peb cov extensions siv NPAPI; thaum khiav hauv Internet Explorer, lawv siv ActiveX technology. Microsoft Edge tseem tsis tau txhawb nqa kev txuas ntxiv, yog li tus neeg siv lub vev xaib hauv nws ua haujlwm nrog kev txwv.
Kev txhim kho ntxiv
Ib qho ntawm cov haujlwm rau pab pawg neeg siv web txhim kho yog kev txhim kho ntxiv ntawm kev ua haujlwm. Kev ua haujlwm ntawm tus neeg siv lub vev xaib yuav tsum zoo ib yam rau kev ua haujlwm ntawm cov neeg siv khoom nyias; txhua qhov kev ua haujlwm tshiab yog siv ib txhij nyob rau hauv ob qho tib si nyias thiab cov neeg siv web.
Lwm cov dej num suav nrog kev tsim kho vaj tse, kho dua tshiab, txhim kho kev ua haujlwm thiab kev ntseeg tau. Piv txwv li, ib qho ntawm cov lus qhia yog txuas ntxiv mus rau qhov kev ua haujlwm asynchronous. Qee qhov kev ua haujlwm ntawm tus neeg siv lub vev xaib tam sim no tau tsim los ntawm tus qauv synchronous ntawm kev cuam tshuam nrog lub server. Tus qauv asynchronous tam sim no tau dhau los ua qhov cuam tshuam ntau dua hauv browsers (thiab tsis yog hauv browsers), thiab qhov no yuam peb hloov kho lub vev xaib los ntawm kev hloov synchronous hu nrog asynchronous sawv daws yuav (thiab refactoring cov cai raws li). Kev hloov pauv hloov mus rau tus qauv asynchronous tau piav qhia los ntawm qhov xav tau los txhawb cov kev daws teeb meem thiab lawv cov kev hloov pauv zuj zus.