Mo te kiritaki tukutuku 1C

Ko tetahi o nga ahuatanga pai o te 1C: Hangarau Hinonga ko te otinga tono, i whakawhanakehia ma te whakamahi i te hangarau puka whakahaere, ka taea te whakarewahia i roto i te kiritaki angiangi (ka taea te whakahaere) mo Windows, Linux, MacOS X, me te kaihoko tukutuku mo nga kaitirotiro e 5 - Chrome, Internet Explorer, Firefox, Safari, Edge, me enei katoa me te kore e whakarereke i te waehere puna tono. Ano, waho te tono i roto i te kiritaki kikokore me i roto i te pūtirotiro mahi, me te titiro tata rite.
Kimihia nga rereketanga 10 (2 pikitia i raro i te tapahi):

Matapihi kiritaki angiangi i runga i te Linux:

Mo te kiritaki tukutuku 1C

Ko te matapihi ano i roto i te kiritaki tukutuku (i te pūtirotiro Chrome):

Mo te kiritaki tukutuku 1C

He aha matou i hanga ai he kiritaki tukutuku? Ki te ahua pouri, kua whakaritea e te wa he mahi pera mo tatou. Ko te mahi i runga i te Ipurangi kua roa te mea e hiahiatia ana mo nga tono pakihi. Tuatahi, i taapirihia e matou te kaha ki te mahi ma te Ipurangi mo to taatau kaihoko kikokore (ko etahi o o matou kaiwhakataetae, i te ara, ka mutu ki reira; ko etahi atu, i te mea kee, i whakarerea te kaihoko kikokore me te whakaiti i a raatau ki te whakatinana i te kaihoko tukutuku). I whakatau matou ki te hoatu ki o maatau kaiwhakamahi te whai waahi ki te whiriwhiri i te whiringa kaihoko e pai ana ki a raatau.

Mo te kiritaki tukutuku 1C

He kaupapa nui te taapiri i nga kaha-a-tukutuku ki te kiritaki kikokore me te whakarereketanga katoa o te hoahoanga a te kiritaki-tūmau. Ko te hanga i te kiritaki tukutuku he kaupapa tino hou, timata mai i te wahanga.

Kaupapa raru

Na, ko nga whakaritenga kaupapa: me rite te mahi a te kiritaki tukutuku ki te kiritaki kikokore, ara:

  1. Whakaatu atanga kaiwhakamahi
  2. Whakahaerehia te waehere kiritaki kua tuhia ki te reo 1C

Ko te atanga kaiwhakamahi i roto i te 1C e whakaahuatia ana i roto i te ētita ataata, engari he korero, kaore he whakaritenga pika-a-pika o nga huānga; Tata ki te toru tekau nga momo huānga atanga e whakamahia ana - nga paatene, nga mara whakauru (kuputuhi, tau, ra/wa), rarangi, ripanga, kauwhata, aha atu.

Ka taea e te waehere kiritaki i te reo 1C te whakauru i nga waea a te tūmau, te mahi me nga rauemi o te rohe (nga konae, me etahi atu), te tuhi, me te maha atu.

Ka whakamahia e te kiritaki kikokore (i te wa e mahi ana ma te ipurangi) me te kaihoko tukutuku e whakamahi ana i te huinga o nga ratonga tukutuku ki te korero ki te tūmau tono 1C. Ko nga whakaritenga a te kiritaki, he rereke - kua tuhia te kiritaki kikokore ki te C ++, ka tuhia te kiritaki tukutuku ki te JavaScript.

He pene o te hitori

I timata te kaupapa kiritaki tukutuku i te tau 2006, me te roopu (i te toharite) 5 tangata. I etahi wahanga o te kaupapa, i whai waahi nga kaiwhakawhanake ki te whakatinana i nga mahi motuhake (tuhinga pepa horahanga, hoahoa, aha atu); hei tikanga, ko enei nga kaiwhakawhanake i mahi i tenei mahi i roto i te kiritaki kikokore. Ko era. i tuhi ano nga kaihanga i nga waahanga i roto i te JavaScript i hangaia e ratou i mua i te C++.

Mai i te timatanga, i paopaohia e matou te whakaaro mo te whakarereke aunoa (tae noa ki te waahanga) o te waehere kiritaki angiangi C ++ ki te kiritaki paetukutuku JavaScript na te kaha o te rereketanga o nga whakaaro i waenga i nga reo e rua; i tuhia te kiritaki tukutuku ki JavaScript mai i te wahanga.

I nga wahanga tuatahi o te kaupapa, i hurihia e te kaihoko tukutuku te waehere kiritaki i roto i te reo 1C i hangaia ki te JavaScript. He rereke te mahi a te kiritaki angiangi - ko te waehere kei roto i te reo 1C kua oti te whakahiato ki te bytecode, katahi ka whakamaoritia tenei bytecode ki te kiritaki. I muri mai, ka timata te mahi a te kiritaki tukutuku ki te mahi - i te tuatahi, i puta he painga mahi, tuarua, i taea ai te whakakotahi i te hoahoanga o nga kaihoko kikokore me te paetukutuku.

I tukuna i te tau 1 te putanga tuatahi o te 2009C:Enterprise platform me te tautoko kiritaki tukutuku. I tautokohia e te kiritaki tukutuku i taua wa e 2 nga kaitirotiro - Internet Explorer me Firefox. Ko nga mahere taketake i uru ki te tautoko mo Opera, engari na nga raru e kore e taea te whakaoti i tera wa me nga kaitiaki tono kati i Opera (kaore i taea te whai me te 100% tino mohio kei te kati te tono, a i taua wa ka whakahaere i te tikanga momotu mai i te tūmau tono 1C) mai i enei mahere me whakarere.

Te hanganga kaupapa

I te katoa, ko te 1C:Enterprise platform e 4 nga kaupapa kua tuhia ki te JavaScript:

  1. Taputapu Tukutuku – nga whare pukapuka tiritahi e whakamahia ana e etahi atu kaupapa (kei a matou ano Whare Pukapuka Kati a Google).
  2. Whakahaere Tuhinga Whakahōputu (i whakatinanahia ki JavaScript i roto i te kiritaki kikokore me te kiritaki tukutuku)
  3. Whakahaere Kaihōtaka (i whakatinanahia ki JavaScript i roto i te kiritaki kikokore me te kiritaki tukutuku)
  4. Kiritaki Tukutuku

Ko te hanganga o ia kaupapa he rite ki te hanganga o nga kaupapa Java (nga kaupapa .NET ranei - ko te mea e tata ana); Kei a matou nga mokowāingoa, kei roto i te kōpaki motuhake ia mokowā ingoa. Kei roto i te kōpaki he konae me nga karaehe mokowāingoa. Tata ki te 1000 nga konae kei roto i te kaupapa kiritaki tukutuku.

Ko te hanganga, ka wehewehea te kaihoko tukutuku ki nga punaha iti e whai ake nei:

  • Atanga tono kiritaki whakahaere
    • Atanga tono whanui (nga tahua punaha, panui)
    • Atanga o nga puka whakahaere, tae atu ki etahi atu mea, tata ki te 30 nga mana whakahaere (patene, momo momo mara whakauru - tuhinga, tau, ra/wa, aha atu, ripanga, raarangi, kauwhata, aha atu)

  • Tauira ahanoa e waatea ana ki nga kaiwhakawhanake i runga i te kiritaki (neke atu i te 400 momo katoa: tauira ahanoa atanga whakahaere, tautuhinga tahora raraunga, whakaahua here, aha atu)
  • Kaiwhakamaori o te reo 1C i hangaia
  • Nga toronga kaitirotiro (whakamahia mo nga mahi kaore i te tautokona i te JavaScript)
    • Te mahi me te tuhi tuhi
    • Te mahi me nga konae
    • Hangarau o nga waahanga o waho, ka taea te whakamahi i roto i nga kiritaki kikokore me te paetukutuku

Nga waahanga Whanaketanga

Ko te whakatinana i nga mea katoa i runga ake nei i roto i te JavaScript ehara i te mea ngawari. Tena pea ko te kiritaki tukutuku 1C tetahi o nga tono taha-kiritaki nui rawa atu kua tuhia ki te JavaScript - tata ki te 450.000 rarangi. Kei te kaha taatau ki te whakamahi i tetahi huarahi-a-ahanoa i roto i te waehere kiritaki tukutuku, he maamaa te mahi me tetahi kaupapa nui.

Hei whakaiti i te rahi o te waehere kiritaki, i te tuatahi i whakamahia e matou ta matou ake obfuscator, ka timata mai i te putanga papaarangi 8.3.6 (Oketopa 2014) ka timata matou ki te whakamahi Google Kati Compiler. Te painga o te whakamahi i roto i nga tau – te rahi o te angamahi kiritaki tukutuku i muri i te whakapouri:

  • Obfuscator ake – 1556 kb
  • Google Kati Compiler – 1073 kb

Ma te whakamahi i te Google Closure Compiler i awhina i a matou ki te whakapai ake i te mahi a te kiritaki tukutuku ma te 30% ka whakatauritea ki ta matou ake obfuscator. I tua atu, kua heke te nui o te mahara i pau i te tono ma te 15-25% (i runga i te tirotiro).

He pai rawa te mahi a Google Closure Compiler me te waehere-a-ahanoa, no reira ko tona pai mo te kiritaki tukutuku he tiketike rawa atu. He mea pai a Closure Compiler mo tatou:

  • Ko te arowhai momo pateko i te wahanga hanga kaupapa (me whakarite ka kapi te waehere me nga korero JSDoc). Ko te hua ko te patopato pateko, tino tata ki te taumata ki te pato i te C++. Ka awhina tenei ki te hopu i te nui o nga hapa i te wahanga whakahiato kaupapa.
  • Te whakaiti i te rahi o te waehere ma te whakapouri
  • He maha nga arotautanga o te waehere kua mahia, hei tauira, penei:
    • whakakapinga mahi roraina. Ko te karanga i tetahi mahi i roto i te JavaScript he mahi tino utu nui, a ko te whakakapi i te raarangi o nga tikanga iti e whakamahia ana e tino tere ana te waehere.
    • Tatau tonu i te wa whakahiato. Mēnā ka whakawhirinaki te kīanga ki te pūmau, ka whakakapihia te wāriu tūturu o te pūmau ki roto

Ka whakamahia e matou a WebStorm hei taiao whanaketanga kiritaki tukutuku.

Mo te tātari waehere ka whakamahia e matou SonarQube, kei te whakauru tatou i nga kaitirotiro waehere pateko. Ma te whakamahi i nga kaitirotiro, ka tirotirohia e matou te paheketanga o te kounga o te waehere puna JavaScript ka ngana ki te aukati.

Mo te kiritaki tukutuku 1C

He aha nga raruraru i whakaotihia e tatou?

I te wa o te whakatinanatanga o te kaupapa, he maha nga raru i pa ki a matou hei whakaoti.

Whakawhiti raraunga me te tūmau me waenga i nga matapihi

He waahi ka taea e te whakapouri o te waehere puna te whakararu i te mahi o te punaha. Waehere waho ki te waehere whakahaere a te kiritaki tukutuku, na te whakapouritanga, tera pea he mahi me nga ingoa tawhā he rereke mai i era e tumanakohia ana e to maatau waehere kawe. Ko te waehere waho mo tatou ko:

  • Ko te waehere ka puta mai i te tūmau i te ahua o nga hanganga raraunga
  • Waehere mo tetahi atu matapihi tono

Hei karo i te whakapouri i te wa e mahi tahi ana me te tūmau, whakamahia te tohu @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;
}

Hei karo i te whakapouri i te wa e mahi tahi ana me etahi atu matapihi, ka whakamahia e matou nga atanga e kiia nei ko te kaweake (nga atanga e kaweake ai nga tikanga katoa).

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

I whakamahia e matou te DOM Mariko i mua i te noho auraki)

Pērā i ngā kaiwhakawhanake katoa e pa ana ki nga UI Tukutuku matatini, i mohio wawe matou he kino te DOM ki te mahi me nga atanga kaiwhakamahi hihiri. Tata tonu, i whakatinanahia he tairitenga o Virtual DOM ki te arotau i te mahi me te UI. I te wa o te tukatuka takahanga, ka penapena nga huringa DOM katoa ki roto i te mahara, a, ka oti nga mahi katoa, ka tukuna nga huringa whakaemi ki te rakau DOM.

Te arotau i te kiritaki tukutuku

Kia tere ake te mahi a to taatau kiritaki tukutuku, ka ngana matou ki te whakamahi i nga kaha o te kaitirotiro paerewa (CSS, me etahi atu) ki te teitei. No reira, ko te rarangi whakahau puka (kei runga tata ki nga ahuatanga katoa o te tono) ka tukuna ma te whakamahi i nga taputapu tirotiro, ma te whakamahi i te whakatakotoranga hihiri i runga i te CSS.

Mo te kiritaki tukutuku 1C

Te whakamātautau

Mo nga whakamatautau mahi me te mahi, ka whakamahia e matou he taputapu mana (i tuhia ki Java me C++), me te huinga o nga whakamatautau i hangaia ki runga ake Mahuru.

Ko ta maatau taputapu he ao katoa - ka taea e koe te whakamatautau tata ki nga papatono matapihi, na reira he pai mo te whakamatautau i te kaihoko kikokore me te kaihoko tukutuku. Ka tuhia e te taputapu nga mahi a te kaiwhakamahi nana i whakarewa te otinga tono 1C ki roto i te konae tuhinga. I te wa ano, ka tuhia nga whakaahua o te waahi mahi o te mata-paerewa. A, no te aroturuki i nga putanga hou o te kiritaki tukutuku, ka whakatangihia nga tuhinga me te kore e uru mai nga kaiwhakamahi. I roto i nga keehi karekau te Whakaahuamata e rite ki te tohutoro i tetahi waahanga, ka kiia te whakamatautau i rahua, ka mutu ka whakahaerehia e te tohungatanga kounga he tirotiro ki te whakatau he he tenei, he whakarereketanga ranei o te whanonga o te punaha. Mena he whanonga kua whakamaheretia, ka whakakapi aunoa nga paerewa ki nga mea hou.

Ka ine ano te taputapu i te mahinga tono me te tika o te 25 milliseconds. I etahi wa, ka takahia e matou nga waahanga o te tuhinga (hei tauira, te tukurua i te ota whakaurunga e hia nga wa) ki te tātari i te paheketanga o te waa mahi i roto i te waa. Ko nga hua o nga inenga katoa ka tuhia ki te raarangi hei tātari.

Mo te kiritaki tukutuku 1C
Ko ta maatau taputapu whakamatautau me te tono kei raro i te whakamatautau

Ko ta maatau taputapu me te Selenium e whakakii ana tetahi ki tetahi; hei tauira, ki te mea kua huri tetahi paatene i runga i tetahi o nga mata i tona waahi, kaore pea a Selenium e whai i tenei, engari ka kitea e taatau taputapu, na te mea hanga i te pika-a-pika whakataurite o te Whakaahuamata ki te paerewa. Ka taea hoki e te taputapu te whai i nga raru ki te tukatuka i te whakauru mai i te papapātuhi, i te kiore ranei, na te mea koinei tonu tana whakaputa.

Ko nga whakamatautau mo nga taputapu e rua (ta maatau me te Selenium) ka whakahaere i nga ahuatanga mahi mai i a maatau otinga tono. Ka whakarewa aunoa nga whakamatautau i muri i te hanganga o ia ra o te papaaho 1C:Enterprise. Mēnā he pōturi ake ngā hōtuhi (whakaritea ki te hanga o mua), ka tirotirohia, ka whakatauhia te take o te puhoitanga. He maamaa noa ta maatau paearu - kaua te hanga hou e puhoi ake i to mua.

Ka whakamahi nga kaihanga i nga taputapu rereke hei tirotiro i nga maiki puhoi; whakamahia te nuinga Dynatrace AJAX Edition kamupene whakaputa DynaTrace. Ka tuhia nga rarangi o te mahi raruraru i runga i nga hanganga o mua me nga mea hou, katahi ka tātarihia nga rakau. I te wa ano, ko te wa mahi o nga mahi kotahi (i roto i te milliseconds) kaore pea he mea tino nui - ko nga tukanga ratonga penei i te kohinga paru ka whakarewahia i ia wa i roto i te kaitirotiro, ka taea e ratou te īnaki ki te wa mahi o nga mahi me te whakakorikori i te pikitia. Ko nga taapiri e tika ana mo tenei keehi ko te maha o nga tohutohu JavaScript kua mahia, te maha o nga mahi ngota i runga i te DOM, aha atu. Mena kua piki ake te maha o nga tohutohu/mahi i roto i te tuhinga kotahi i roto i te putanga hou, tata tonu te tikanga he heke o nga mahi me whakatika.

Ano hoki, ko tetahi o nga take i heke ai te mahinga ko te Google Closure Compiler mo etahi take kaore i kaha ki te whakakapi i te raarangi o te mahi (hei tauira, na te mea he recursive, mariko ranei te mahi). I tenei keehi, ka ngana tatou ki te whakatika i te ahuatanga ma te tuhi ano i te waehere puna.

Nga toronga tirotiro

Ina hiahia ana tetahi otinga tono ki nga mahi kaore i te waatea i te JavaScript, ka whakamahia e matou nga toronga tirotiro:

E rua nga waahanga o a maatau toronga. Ko te waahanga tuatahi ko te mea e kiia ana he toronga tirotiro (te nuinga o nga taapiri mo Chrome me Firefox kua tuhia ki te JavaScript), e taunekeneke ana me te waahanga tuarua - he toronga rua e whakatinana ana i nga mahi e hiahiatia ana. Me whakahuahia ka tuhia e matou nga putanga 3 o nga toronga-rua - mo Windows, Linux me MacOS. Ko te toronga-rua ka tukuna hei waahanga o te 1C:Enterprise platform a kei runga i te tūmau tono 1C. Ko te wa tuatahi ka karangahia mai i te kiritaki tukutuku, ka tangohia ki te rorohiko kiritaki ka whakauruhia ki roto i te tirotiro.

I te wa e rere ana i Safari, ka whakamahia e a maatau toronga te NPAPI; ina rere ana i roto i te Internet Explorer, ka whakamahia te hangarau ActiveX. Microsoft Edge kaore ano kia tautoko i nga toronga, na reira kei te mahi te kaihoko paetukutuku me nga here.

Te whakawhanake ake

Ko tetahi o nga mahi mo te roopu whanaketanga kiritaki tukutuku ko te whanaketanga ake o nga mahi. Ko te mahi a te kiritaki tukutuku kia rite ki te mahi a te kiritaki kikokore; ka whakatinanahia nga mahi hou katoa i te wa kotahi i roto i nga kiritaki kikokore me te paetukutuku.

Ko etahi atu mahi ko te whakawhanake i te hoahoanga, te whakatikatika, te whakapai ake i nga mahi me te pono. Hei tauira, ko tetahi o nga tohutohu ko te neke atu ki te tauira mahi tukutahi. Ko etahi o nga mahi a te kiritaki tukutuku kei te hangaia i runga i te tauira tukutahi o te taunekeneke me te tūmau. Ko te tauira tukutahi kua kaha ake i roto i nga kaitirotiro (kaore i nga kaitirotiro anake), na tenei ka akiaki i a maatau ki te whakarereke i te kiritaki tukutuku ma te whakakapi i nga waea tukutahi me nga waea tukutahi (me te whakahou ano i te waehere). Ko te whakawhiti haere ki te tauira tukutahi ka whakamaramahia e te hiahia ki te tautoko i nga otinga kua tukuna me o raatau urutaunga.

Source: will.com

Tāpiri i te kōrero