Momba ny mpanjifa web 1C

Ny iray amin'ireo endri-javatra mahafinaritra amin'ny teknolojia 1C: Enterprise dia ny vahaolana fampiharana, novolavolaina tamin'ny alΓ lan'ny teknolojian'ny endrika mitantana, dia azo atomboka amin'ny mpanjifa manify (azo ampiasaina) ho an'ny Windows, Linux, MacOS X, ary amin'ny maha-mpanjifa tranonkala ho an'ny navigateur 5 - Chrome, Internet Explorer, Firefox, Safari, Edge, ary izany rehetra izany nefa tsy manova ny kaody loharanon'ny fampiharana. Ankoatr'izay, ny fampiharana ivelany amin'ny mpanjifa manify sy ao amin'ny navigateur dia miasa ary toa mitovy.
Mitadiava fahasamihafana 10 (sary 2 eo ambanin'ny fanapahana):

Ny varavarankelin'ny mpanjifa manify amin'ny Linux:

Momba ny mpanjifa web 1C

Ny varavarankely mitovy amin'ny mpanjifa web (ao amin'ny navigateur Chrome):

Momba ny mpanjifa web 1C

Nahoana izahay no nanao mpanjifa tranonkala? Raha lazaina amin'ny fomba mampalahelo, dia nametraka asa toy izany ho antsika ny fotoana. Ny miasa amin'ny Internet dia efa ela no fepetra takiana amin'ny rindranasa fandraharahana. Voalohany, nampianay ny fahafahana miasa amin'ny Internet ho an'ny mpanjifanay manify (ny sasany amin'ireo mpifaninana aminay, raha ny marina, nijanona teo; ny hafa, ny mifanohitra amin'izany, dia nandao ny mpanjifa manify ary nametra ny tenany tamin'ny fampiharana mpanjifa tranonkala). Nanapa-kevitra izahay fa hanome ny mpampiasa anay fahafahana hisafidy ny safidy mpanjifa izay mety aminy.

Momba ny mpanjifa web 1C

Tetikasa lehibe iray misy fiovana tanteraka amin'ny rafitry ny mpanjifa-server ny fampidirana fahaiza-manao mifototra amin'ny tranonkala ho an'ny mpanjifa manify. Tetikasa vaovao tanteraka ny famoronana mpanjifa tranonkala, manomboka hatrany am-boalohany.

Fanambarana olana

Noho izany, ny fepetra takian'ny tetikasa: ny mpanjifa web dia tsy maintsy manao toy ny mpanjifa manify, izany hoe:

  1. Asehoy ny mpampiasa interface tsara
  2. Manaova kaody mpanjifa voasoratra amin'ny fiteny 1C

Ny interface interface ao amin'ny 1C dia voalaza ao amin'ny tonian-dahatsoratry ny maso, fa amin'ny fanambarana, tsy misy filaharana piksel-by-pixel; Manodidina ny telopolo eo ho eo ny singa interface tsara ampiasaina - bokotra, saha fidirana (soratra, isa, daty/ora), lisitra, tabilao, tabilao, sns.

Ny kaody mpanjifa amin'ny fiteny 1C dia mety ahitana antso an-tariby, miasa miaraka amin'ny loharano eo an-toerana (rakitra, sns.), fanontana, sy ny maro hafa.

Na ny mpanjifa manify (rehefa miasa amin'ny alΓ lan'ny tranonkala) na ny mpanjifa amin'ny tranonkala dia samy mampiasa andian-tranonkala mitovy amin'ny fifandraisana amin'ny mpizara fampiharana 1C. Ny fampiharana ny mpanjifa, mazava ho azy, dia samy hafa - ny mpanjifa manify dia voasoratra amin'ny C ++, ny mpanjifa web dia voasoratra amin'ny JavaScript.

Tantaran'ny tantara

Nanomboka tamin'ny taona 2006 ny tetikasa mpanjifa web, miaraka amin'ny ekipa (amin'ny salan'isa) 5 olona. Amin'ny dingana sasany amin'ny tetikasa, ny mpamorona dia nandray anjara tamin'ny fampiharana ny fiasa manokana (rakitra takelaka, kisary, sns.); Amin'ny maha-fitsipika, ireo ihany no developer izay nanao izany fampiasa izany amin'ny mpanjifa manify. Ireo. nanoratra indray ireo singa ao amin'ny JavaScript izay noforoniny taloha tao amin'ny C++ ny developers.

Hatrany am-piandohana dia nolavinay ny hevitra momba ny fiovam-po mandeha ho azy (na ampahany) amin'ny kaody mpanjifa manify C ++ ho mpanjifa tranonkala JavaScript noho ny tsy fitovian-kevitra matanjaka eo amin'ireo fiteny roa ireo; ny mpanjifa web dia nosoratana tamin'ny JavaScript hatrany am-boalohany.

Tamin'ny famerimberenana voalohany ny tetikasa, ny mpanjifa tranonkala dia namadika mivantana ny kaody mpanjifa amin'ny fiteny 1C naorina ho JavaScript. Hafa ny fihetsiky ny mpanjifa manify - ny kaody ao amin'ny fiteny 1C naorina dia natambatra ho bytecode, ary avy eo io bytecode io dia adika amin'ny mpanjifa. Taorian'izay, nanomboka nanao toy izany koa ny mpanjifa web - voalohany, nanome tombony ho an'ny fahombiazany, ary faharoa, nahafahana nampiray ny maritrano ny mpanjifa manify sy tranonkala.

Navoaka tamin'ny 1 ny dikan-teny voalohany amin'ny sehatra 2009C: Enterprise miaraka amin'ny fanohanan'ny mpanjifa tranonkala. Ny mpanjifa web tamin'izany fotoana izany dia nanohana navigateur 2 - Internet Explorer sy Firefox. Ny drafitra tany am-boalohany dia nahitana ny fanohanana an'i Opera, saingy noho ny olana tsy azo resena tamin'izany fotoana izany tamin'ireo mpitantana ny fanakatonana ny fampiharana ao amin'ny Opera (tsy azo natao ny nanara-maso tamin'ny 100% azo antoka fa mihidy ny fampiharana, ary amin'izay fotoana izay dia manatanteraka ny dingana fanafoanana avy amin'ny Opera. ny mpizara fampiharana 1C) avy amin'ireo drafitra ireo dia tsy maintsy nafoina.

Rafitra tetikasa

Amin'ny fitambarany, ny sehatra 1C:Enterprise dia manana tetikasa 4 voasoratra amin'ny JavaScript:

  1. WebTools – trano famakiam-boky iombonana ampiasain'ny tetikasa hafa (ampidirintsika ihany koa Google Closure Library).
  2. Singa fanaraha-maso FormattedDocument (apetraka amin'ny JavaScript ao amin'ny client thin sy ny client web)
  3. Singa fanaraha-maso Mpandrindra (apetraka amin'ny JavaScript ao amin'ny client thin sy ny client web)
  4. Web client

Ny firafitry ny tetikasa tsirairay dia mitovy amin'ny firafitry ny tetikasa Java (na tetikasa .NET - izay akaiky kokoa); Manana toeran'ny anarana izahay, ary ao anaty lahatahiry mitokana ny espace tsirairay. Ao anatin'ny lahatahiry dia misy rakitra sy kilasy misy anarana. Misy rakitra 1000 eo ho eo ao amin'ny tetikasa mpanjifa web.

Amin'ny lafiny ara-drafitra, ny mpanjifa tranonkala dia mizara ho subsystems manaraka ireto:

  • Tantanina interface tsara ho an'ny mpanjifa
    • Fampiharana ankapobeny (meno rafitra, tontonana)
    • Fifandraisana amin'ny endrika voatanisa, anisan'izany ny fanaraha-maso 30 eo ho eo (bokotra, karazana fidirana isan-karazany - lahatsoratra, isa, daty/ora, sns., tabilao, lisitra, grafika, sns.)

  • Modely misy zavatra azon'ny mpamorona amin'ny mpanjifa (karazana mihoatra ny 400 amin'ny fitambarany: maodelin'ny zavatra interface tsara tantana, rindran-drafitra angon-drakitra, famolavolana fepetra, sns.)
  • Mpandika ny fiteny 1C naorina
  • Fanitarana navigateur (ampiasaina amin'ny fampiasa tsy tohana amin'ny JavaScript)
    • Miasa amin'ny cryptography
    • Miasa amin'ny rakitra
    • Teknolojian'ny singa ivelany, mamela azy ireo hampiasaina amin'ny mpanjifa manify sy web

Fampandrosoana endri-javatra

Ny fampiharana ireo rehetra voalaza etsy ambony ireo amin'ny JavaScript dia tsy mora. Angamba ny mpanjifa tranonkala 1C dia iray amin'ireo rindranasa lehibe indrindra amin'ny lafiny mpanjifa voasoratra amin'ny JavaScript - andalana 450.000 eo ho eo. Mazoto mampiasa fomba fiasa miompana amin'ny zavatra ao amin'ny code client web izahay, izay manamora ny fiasana amin'ny tetikasa lehibe toy izany.

Mba hampihenana ny haben'ny kaody mpanjifa dia nampiasa ny obfuscator manokana izahay, ary nanomboka tamin'ny sehatra version 8.3.6 (Oktobra 2014) dia nanomboka nampiasa izahay. Google Closure Compiler. Ny fiantraikan'ny fampiasana amin'ny isa – ny haben'ny rafitra mpanjifa web aorian'ny fanakorontanana:

  • Obfuscator manokana - 1556 kb
  • Google Closure Compiler - 1073 kb

Ny fampiasana Google Closure Compiler dia nanampy anay hanatsara ny fahombiazan'ny mpanjifa tranonkala amin'ny 30% raha oharina amin'ny obfuscator anay manokana. Fanampin'izany, nihena 15-25% ny habetsaky ny fahatsiarovana lanin'ny fampiharana (miankina amin'ny navigateur).

Ny Google Closure Compiler dia miasa tsara amin'ny kaody miompana amin'ny zavatra, noho izany dia avo araka izay azo atao ny fahombiazany amin'ny mpanjifa tranonkala. Manao zavatra tsara ho antsika ny Closure Compiler:

  • Fanamarinana karazana static amin'ny dingana fananganana tetikasa (miantoka fa manarona ny kaody miaraka amin'ny fanamarihana JSDoc izahay). Ny vokatra dia ny fanoratana static, tena akaiky ny haavon'ny fanoratana amin'ny C ++. Izany dia manampy amin'ny fisamborana ampahany betsaka amin'ny lesoka amin'ny dingana fanangonana tetikasa.
  • Mampihena ny haben'ny kaody amin'ny alΓ lan'ny obfuscation
  • Fanamafisana maromaro ny kaody vita, ohatra, toy ny:
    • fanoloana asa inline. Ny fiantsoana asa amin'ny JavaScript dia asa lafo be, ary ny fanoloana an-tserasera amin'ny fomba kely ampiasaina matetika dia manafaingana ny code.
    • Fanisa tsy miova amin'ny fotoana fanangonana. Raha miankina amin'ny tsy miova ny teny iray dia hosoloina ao ny sandan'ny tsy miova

Mampiasa WebStorm izahay ho tontolo iainan'ny mpanjifanay web.

Ho an'ny famakafakana code dia ampiasainay soundQube, izay ampidiranay ireo mpanadihady kaody static. Amin'ny fampiasana mpandinika, manara-maso ny fahasimban'ny kalitaon'ny kaody loharano JavaScript izahay ary miezaka misoroka izany.

Momba ny mpanjifa web 1C

Inona no olana novahantsika?

Nandritra ny fanatanterahana ny tetikasa dia tojo olana mahaliana maro izay tsy maintsy novahantsika.

Manakalo angona amin'ny mpizara ary eo anelanelan'ny windows

Misy toe-javatra izay mety hanelingelina ny fiasan'ny rafitra ny fanakorontanana ny kaody loharano. Ny kaody ivelan'ny kaody azo tanterahana an'ny mpanjifan'ny tranonkala, noho ny fanakorontanana, dia mety manana anarana sy anarana mari-pamantarana izay tsy mitovy amin'ireo andrasan'ny kaody azo ampiasaina. Ny code ivelany ho antsika dia:

  • Kaody avy amin'ny mpizara amin'ny endrika rafitra data
  • Kaody ho an'ny varavarankely fampiharana hafa

Mba hialana amin'ny fikorontanana rehefa mifandray amin'ny mpizara dia mampiasa ny tag @expose izahay:

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

Ary mba hialana amin'ny fikorontanana rehefa mifandray amin'ny varavarankely hafa, dia mampiasa ny antsoina hoe interface tsara aondrana (interfaces izay manondrana ny fomba rehetra).

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

Nampiasa Virtual DOM izahay talohan'ny nahatongavany ho mahazatra)

Tahaka ny mpamorona rehetra mifandray amin'ny Web UI saro-takarina, dia tsikaritray haingana fa ny DOM dia tsy mety amin'ny fiaraha-miasa amin'ny mpampiasa interface tsara. Saika avy hatrany dia nampiharina ny analogue an'ny Virtual DOM mba hanatsarana ny asa miaraka amin'ny UI. Mandritra ny fanodinana hetsika, ny fanovana DOM rehetra dia voatahiry ao anaty fitadidiana ary, rehefa vita ny asa rehetra, dia ampiharina amin'ny hazo DOM ny fiovana voaangona.

Optimizing ny mpanjifa tranonkala

Mba hahatonga ny mpanjifanay miasa haingana kokoa, dia miezaka mampiasa ny fahaiza-manao navigateur mahazatra izahay (CSS, sns.) amin'ny fara-tampony. Noho izany, ny tontonana baikon'ny endrika (eo amin'ny saika amin'ny endriny rehetra amin'ny fampiharana) dia adika amin'ny alΓ lan'ny fitaovana navigateur, amin'ny alΓ lan'ny famolavolana mavitrika mifototra amin'ny CSS.

Momba ny mpanjifa web 1C

fitiliana

Ho an'ny fitsapana miasa sy mahomby dia mampiasa fitaovana manokana izahay (voasoratra amin'ny Java sy C ++), ary koa andiana fitsapana natsangana ambonin'ny sΓ©lΓ©nium.

Ny fitaovanay dia manerana izao rehetra izao - mamela anao hitsapa saika ny programa misy varavarankely, ary noho izany dia mety amin'ny fitsapana mpanjifa manify sy mpanjifa tranonkala. Ny fitaovana dia mirakitra ny fihetsiky ny mpampiasa izay namoaka ny vahaolana fampiharana 1C ho rakitra script. Mandritra izany fotoana izany, ny sarin'ny faritra miasa amin'ny efijery - ny fenitra - dia voarakitra. Rehefa manara-maso ny dikan-teny vaovao amin'ny mpanjifan'ny tranonkala dia alefa tsy misy fandraisan'ny mpampiasa ny script. Amin'ny toe-javatra izay tsy mifanaraka amin'ny fanondroana ny pikantsary amin'ny dingana rehetra, dia heverina ho tsy nahomby ny fitsapana, ary avy eo dia manao fanadihadiana ny manam-pahaizana momba ny kalitao mba hamaritana raha fahadisoana izany na fanovana nomanina ho an'ny rafitra. Raha misy fitondran-tena nomanina dia soloina ho azy ireo fenitra vaovao.

Ny fitaovana ihany koa dia mandrefy ny fahombiazan'ny fampiharana amin'ny fahitsiana hatramin'ny 25 milliseconds. Amin'ny toe-javatra sasany, mametaka ampahany amin'ny script isika (ohatra, mamerina imbetsaka ny fidiran'ny baiko) mba hamakafaka ny fihenan'ny fotoana famonoana. Ny vokatry ny fandrefesana rehetra dia voarakitra ao anaty diary ho an'ny fanadihadiana.

Momba ny mpanjifa web 1C
Fitaovam-panadinana sy fampiharana andrana

Ny fitaovantsika sy ny Selenium dia mifameno; ohatra, raha niova ny toerana misy azy ny bokotra sasany amin'ny efijery iray, dia mety tsy hanara-maso an'io i Selenium, fa ho hitan'ny fitaovantsika, satria manao fampitahana isa-pixel amin'ny pikantsary miaraka amin'ny fenitra. Ny fitaovana dia afaka manara-maso ny olana amin'ny fanodinana ny fampidirana avy amin'ny klavier na totozy, satria izany indrindra no averiny.

Ny fitsapana amin'ireo fitaovana roa ireo (ny anay sy ny Selenium) dia mitantana sehatra asa mahazatra avy amin'ny vahaolana fampiharana anay. Atomboka ho azy ny andrana aorian'ny fanamboarana isan'andro ny sehatra 1C:Enterprise. Raha miadana kokoa ny script (raha ampitahaina amin'ny fananganana teo aloha), dia manadihady sy mamaha ny anton'ny fihemorana izahay. Tsotra ny fepetra ataontsika - ny fananganana vaovao dia tokony hiasa tsy miadana kokoa noho ny teo aloha.

Mampiasa fitaovana isan-karazany ny mpamorona mba hanadihady ireo trangan-javatra miadana; ampiasaina indrindra Dynatrace AJAX Edition orinasa mpamokatra DynaTrace. Ny lozisialy amin'ny fanatanterahana ny asa olana amin'ny fananganana teo aloha sy vaovao dia voarakitra an-tsoratra, avy eo ny logs dia anaovana fanadihadiana. Mandritra izany fotoana izany, ny fotoana famonoana ny asa tokana (amin'ny milisegondra) dia mety tsy ho antony lehibe - ny fizotran'ny serivisy toy ny fanangonana fako dia atomboka tsindraindray ao amin'ny navigateur, afaka mifanipaka amin'ny fotoana fanatanterahana ny asa izy ireo ary manodina ny sary. Ny mari-pamantarana mifandraika kokoa amin'ity tranga ity dia ny isan'ny toromarika JavaScript vita, ny isan'ny hetsika atomika ao amin'ny DOM, sns. Raha nitombo ny isan'ny toromarika/fampiasana amin'ny script mitovy amin'ny dikan-teny vaovao, dia saika midika foana ny fihenan'ny zava-bita izay mila ahitsy.

Ary koa, ny iray amin'ireo antony nahatonga ny fihenan'ny fampandehanana dia ny Google Closure Compiler noho ny antony sasany dia tsy afaka nanatanteraka fanoloana an-tsipika an'ilay asa (ohatra, satria miverimberina na virtoaly ilay fiasa). Amin'ity tranga ity, miezaka manitsy ny toe-javatra izahay amin'ny alΓ lan'ny fanoratana indray ny kaody loharano.

Fanitarana navigateur

Rehefa mila fampiasa tsy hita ao amin'ny JavaScript ny vahaolana fampiharana, dia mampiasa fanitarana navigateur izahay:

  • mba hiasa amin'ny rakitra
  • mba hiasa amin'ny cryptography
  • miara-miasa amin'ny singa ivelany

Ny fanitarana anay dia misy ampahany roa. Ny ampahany voalohany dia ilay antsoina hoe fanitarana navigateur (matetika fanitarana ho an'ny Chrome sy Firefox voasoratra amin'ny JavaScript), izay mifandray amin'ny ampahany faharoa - fanitarana mimari-droa izay mampihatra ny fiasa ilaintsika. Tokony holazaina fa manoratra dikan-teny 3 amin'ny fanitarana binary isika - ho an'ny Windows, Linux ary MacOS. Ny fanitarana binary dia omena ho ampahany amin'ny sehatra 1C: Enterprise ary hita ao amin'ny lohamilina fampiharana 1C. Rehefa sambany antsoina avy amin'ny mpanjifa tranonkala dia alaina amin'ny solosaina mpanjifa izany ary apetraka ao amin'ny navigateur.

Rehefa mandeha amin'ny Safari dia mampiasa NPAPI ny fanitarana anay; rehefa mandeha amin'ny Internet Explorer izy ireo dia mampiasa teknolojia ActiveX. Microsoft Edge tsy mbola manohana fanitarana, noho izany dia miasa miaraka amin'ny famerana ny mpanjifa web ao anatiny.

Fampivoarana fanampiny

Ny iray amin'ireo asa ho an'ny ekipan'ny fampiroboroboana mpanjifa web dia ny fampivoarana bebe kokoa ny fiasa. Ny fiasan'ny mpanjifa web dia tokony hitovy amin'ny fiasan'ny mpanjifa manify; ny fiasa vaovao rehetra dia ampiharina miaraka amin'ny mpanjifa manify sy web.

Ny asa hafa dia ny fampivoarana ny maritrano, ny refactoring, ny fanatsarana ny fahombiazany ary ny fahatokisana. Ohatra, ny iray amin'ireo toromarika dia ny hetsika bebe kokoa mankany amin'ny maodely asa asynchronous. Ny sasany amin'ireo fampiasa amin'ny mpanjifa web dia natsangana amin'ny modely mifandray amin'ny mpizara amin'izao fotoana izao. Ny maodely asynchronous dia lasa manan-danja kokoa amin'ny navigateur (fa tsy amin'ny navigateur ihany), ary izany dia manery antsika hanova ny mpanjifa amin'ny tranonkala amin'ny fanoloana ny antso synchronous amin'ny asynchronous (ary mamerina ny kaody mifanaraka amin'izany). Ny fifindrana tsikelikely mankany amin'ny modely asynchronous dia hazavaina amin'ny filΓ na fanohanana ireo vahaolana navoaka sy ny fampifanarahana azy ireo tsikelikely.

Source: www.habr.com

Add a comment