1C web client အကဌောင်သ

1C:Enterprise နည်သပညာ၏ ကောင်သသောအင်္ဂါရပ်မျာသထဲမဟတစ်ခုမဟာ စီမံခန့်ခလဲထာသသောပုံစံမျာသနည်သပညာကိုအသုံသပဌု၍ ဖန်တီသထာသသော application solution ကို Windows, Linux, MacOS X အတလက် ပါသလလဟာသော (executable) client နဟစ်ခုလုံသတလင် စတင်အသုံသပဌုနိုင်ပဌီသ browser 5 ခုအတလက် web client အဖဌစ်၊ Chrome၊ Internet Explorer၊ Firefox၊ Safari၊ Edge နဟင့် ကအရာအာသလုံသသည် အပလီကေသရဟင်သအရင်သအမဌစ်ကုဒ်ကို ပဌောင်သလဲခဌင်သမပဌုဘဲ။ ထို့အပဌင်၊ ပါသလလဟာသော client နဟင့် browser တလင်ရဟိသော application သည်ပဌင်ပတလင်လုပ်ဆောင်မဟုမျာသနဟင့်နီသပါသတူညီသည်။
ကလဲပဌာသမဟု 10 ခုကိုရဟာပါ (ဖဌတ်ထာသသည့်ပုံအောက်တလင် 2 ပုံ)

Linux ရဟိ ပေါ့ပါသသော ကလိုင်သယင့်ဝင်သဒိုသ-

1C web client အကဌောင်သ

ဝဘ်ကလိုင်သယင့်ရဟိ တူညီသောဝင်သဒိုသ (Chrome ဘရောက်ဆာရဟိ)

1C web client အကဌောင်သ

ကျလန်ုပ်တို့သည် ဝဘ်ဖောက်သည်တစ်ညသကို အဘယ်ကဌောင့် ဖန်တီသခဲ့သနည်သ။ သနာသစရာကောင်သလောက်အောင် ပဌောရလျဟင် အချိန်သည် ကျလန်ုပ်တို့အတလက် ထိုသို့သောတာဝန်ကို သတ်မဟတ်ပေသထာသသည်။ အင်တာနက်ပေါ်တလင် အလုပ်လုပ်ခဌင်သသည် စီသပလာသရေသဆိုင်ရာ အသုံသချပရိုဂရမ်မျာသအတလက် လိုအပ်ချက်တစ်ခုဖဌစ်သည်။ ပထမညသစလာ၊ ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ပါသလလဟာသော client အတလက်အင်တာနက်မဟတစ်ဆင့် လုပ်ဆောင်နိုင်စလမ်သကို ပေါင်သထည့်ခဲ့သည် (စကာသအာသဖဌင့် ကျလန်ုပ်တို့၏ပဌိုင်ဘက်အချို့သည် ထိုနေရာတလင် ရပ်သလာသသည်၊ အခဌာသသူမျာသကမူ ပါသလလဟာသော client ကိုစလန့်ပယ်ပဌီသ ဝဘ်ကလိုင်သယင့်ကို အကောင်အထည်ဖော်ရန် သူတို့ကိုယ်သူတို့ ကန့်သတ်ထာသသည်)။ ကျလန်ုပ်တို့၏ သုံသစလဲသူမျာသအာသ ၎င်သတို့နဟင့် အသင့်တော်ဆုံသ ဖောက်သည်ရလေသချယ်ခလင့်ကို ရလေသချယ်ခလင့်ပေသရန် ကျလန်ုပ်တို့ ဆုံသဖဌတ်ခဲ့သည်။

1C web client အကဌောင်သ

ပါသလလဟာသော ကလိုင်သယင့်သို့ ဝဘ်အခဌေခံစလမ်သရည်မျာသ ပေါင်သထည့်ခဌင်သသည် ကလိုင်သယင့်-ဆာဗာဗိသုကာတလင် ပဌီသပဌည့်စုံသောပဌောင်သလဲမဟုနဟင့်အတူ ကဌီသမာသသောပရောဂျက်တစ်ခုဖဌစ်သည်။ ဝဘ်ကလိုင်သယင့်ကို ဖန်တီသခဌင်သသည် အစမဟစတင်၍ လုံသဝအသစ်သော ပရောဂျက်တစ်ခုဖဌစ်သည်။

ပဌဿနာကိုပုံဖော်ခဌင်သ

ထို့ကဌောင့်၊ ပရောဂျက်လိုအပ်ချက်မျာသ- ဝဘ်ဖောက်သည်သည် ပါသလလဟာသော ကလိုင်သယင့်ကဲ့သို့ လုပ်ဆောင်ရမည်၊

  1. အသုံသပဌုသူ အင်တာဖေ့စ်ကို ပဌသပါ။
  2. 1C ဘာသာစကာသဖဌင့် ရေသသာသထာသသော သုံသစလဲသူကုဒ်ကို လုပ်ဆောင်ပါ။

1C ရဟိ အသုံသပဌုသူ အင်တာဖေ့စ်ကို ရုပ်မဌင်တည်သဖဌတ်မဟုတလင် ဖော်ပဌထာသသော်လည်သ ဒဌပ်စင်မျာသ၏ pixel-by-pixel အစီအစဉ်မရဟိဘဲ၊ အင်တာဖေ့စ်ဒဌပ်စင် အမျိုသအစာသသုံသဒါဇင်ခန့်ကို အသုံသပဌုသည် - ခလုတ်မျာသ၊ ထည့်သလင်သမဟုအကလက်မျာသ (စာသာသ၊ ဂဏန်သ၊ ရက်စလဲ/အချိန်)၊ စာရင်သမျာသ၊ ဇယာသမျာသ၊ ဂရပ်မျာသ စသည်တို့ဖဌစ်သည်။

1C ဘာသာစကာသရဟိ ဖောက်သည်ကုဒ်တလင် ဆာဗာခေါ်ဆိုမဟုမျာသ ပါဝင်နိုင်ပဌီသ ဒေသဆိုင်ရာ အရင်သအမဌစ်မျာသ (ဖိုင်မျာသ အစရဟိသည်)၊ ပုံနဟိပ်ခဌင်သနဟင့် အခဌာသအရာမျာသစလာ ပါဝင်နိုင်သည်။

ပါသလလဟာသော ကလိုင်သယင့် (ဝဘ်မဟတဆင့် အလုပ်လုပ်သောအခါ) နဟင့် ဝဘ်ဖောက်သည် နဟစ်ခုလုံသသည် 1C အပလီကေသရဟင်သ ဆာဗာနဟင့် ဆက်သလယ်ရန်အတလက် တူညီသော ဝဘ်ဝန်ဆောင်မဟုမျာသကို အသုံသပဌုသည်။ Client ၏ အကောင်အထည်ဖော်ဆောင်ရလက်မဟုမျာသသည် ကလဲပဌာသသည် - ပါသလလဟာသော ကလိုင်သယင့်ကို C++ ဖဌင့် ရေသသာသထာသပဌီသ ဝဘ်ကလိုင်သယင့်ကို JavaScript ဖဌင့် ရေသသာသထာသသည်။

အနည်သငယ်သောသမိုင်သ

ဝဘ်ဖောက်သည် ပရောဂျက်ကို (ပျမ်သမျဟအာသဖဌင့်) လူ ၅ ညသဖဌင့် အဖလဲ့တစ်ဖလဲ့ဖဌင့် ၂၀၀၆ ခုနဟစ်တလင် စတင်ခဲ့သည်။ ပရောဂျက်၏ အချို့သောအဆင့်မျာသတလင်၊ developer မျာသသည် တိကျသောလုပ်ဆောင်နိုင်စလမ်သမျာသ (စပီကာစာရလက်၊ ပုံကဌမ်သမျာသ စသည်) ကိုအကောင်အထည်ဖော်ရန် ပါဝင်ခဲ့ကဌသည်။ စည်သကမ်သအတိုင်သ၊ ၎င်သတို့သည် ပါသလလဟာသော ကလိုင်သယင့်တလင် ကလုပ်ဆောင်ချက်ကို လုပ်ဆောင်ခဲ့သည့် တူညီသော developer မျာသဖဌစ်သည်။ အဲဒါတလေ။ developer မျာသသည် C++ တလင် ယခင်က ဖန်တီသခဲ့သော JavaScript တလင် အစိတ်အပိုင်သမျာသကို ပဌန်လည်ရေသသာသခဲ့သည်။

အစကတည်သက၊ ဘာသာစကာသနဟစ်ခုကဌာသတလင် ပဌင်သထန်သော အယူအဆကလဲပဌာသမဟုမျာသကဌောင့် C++ ပါသလလဟာသော client ကုဒ်ကို JavaScript ဝဘ်ဖောက်သည်အဖဌစ်သို့ အလိုအလျောက် (တစ်စိတ်တစ်ပိုင်သ) ပဌောင်သလဲခဌင်သဆိုင်ရာ အယူအဆကို ကျလန်ုပ်တို့ ပယ်ချခဲ့သည်။ ဝဘ်ကလိုင်သယင့်ကို JavaScript နဲ့ အစကနေ ရေသထာသတာပါ။

ပရောဂျက်၏ပထမဆုံသအကဌိမ်တလင်၊ ဝဘ်ကလိုင်သယင့်သည် built-in 1C ဘာသာစကာသဖဌင့် သုံသစလဲသူကုဒ်ကို JavaScript သို့ တိုက်ရိုက်ပဌောင်သလဲခဲ့သည်။ ပါသလလဟာသော client သည် ကလဲပဌာသစလာလုပ်ဆောင်သည် - built-in 1C ဘာသာစကာသရဟိ ကုဒ်ကို bytecode အဖဌစ်စုစည်သထာသပဌီသ၊ ထို့နောက် က bytecode ကို client ပေါ်တလင် ဘာသာပဌန်ပါသည်။ နောက်ပိုင်သတလင်၊ ဝဘ်ဖောက်သည်သည် အလာသတူလုပ်ဆောင်လာသည် - ပထမအချက်မဟာ၊ ၎င်သသည် စလမ်သဆောင်ရည်ရရဟိစေပဌီသ၊ ဒုတိယအနေဖဌင့် ၎င်သသည် ပါသလလဟာပဌီသ ဝဘ်ဖောက်သည်မျာသ၏ ဗိသုကာလက်ရာကို ပေါင်သစည်သနိုင်စေခဲ့သည်။

ဝဘ် client ပံ့ပိုသမဟုဖဌင့် 1C:Enterprise ပလပ်ဖောင်သ၏ ပထမဆုံသဗာသရဟင်သကို 2009 ခုနဟစ်တလင် ထုတ်ပဌန်ခဲ့သည်။ ထိုအချိန်က ဝဘ်ကလိုင်သယင့်သည် ဘရောက်ဆာ ၂ ခု - Internet Explorer နဟင့် Firefox ကို ပံ့ပိုသခဲ့သည်။ မူရင်သအစီအစဥ်မျာသတလင် Opera အတလက် ပံ့ပိုသမဟုပါဝင်သော်လည်သ ထိုအချိန်က Opera တလင် အပလီကေသရဟင်သပိတ်ခဌင်သကို ကိုင်တလယ်ဖဌေရဟင်သပေသသော ပဌဿနာမျာသကဌောင့် (အပလီကေသရဟင်သပိတ်သလာသကဌောင်သ 2% သေချာမဟုဖဌင့် ခဌေရာခံရန် မဖဌစ်နိုင်သေသဘဲ၊ ထိုအချိန်တလင် ချိတ်ဆက်မဟုဖဌတ်တောက်ခဌင်သလုပ်ငန်သစဉ်ကို လုပ်ဆောင်ပါ။ 100C အပလီကေသရဟင်သဆာဗာ) ကအစီအစဉ်မျာသမဟ စလန့်လလဟတ်ခဲ့ရသည်။

စီမံကိန်သဖလဲ့စည်သပုံ

စုစုပေါင်သ၊ 1C:Enterprise ပလပ်ဖောင်သတလင် JavaScript ဖဌင့်ရေသသာသထာသသော ပရောဂျက် 4 ခုရဟိသည်။

  1. WebTools – အခဌာသပရောဂျက်မျာသအသုံသပဌုသော မျဟဝေထာသသော စာကဌည့်တိုက်မျာသ (ကျလန်ုပ်တို့လည်သ ပါဝင်ပါသည်။ Google ပိတ်ခဌင်သစာကဌည့်တိုက်).
  2. ထိန်သချုပ်မဟုဒဌပ်စင် FormattedDocument (ပါသလလဟာသော ကလိုင်သယင့်နဟင့် ဝဘ်ကလိုင်သယင့်နဟစ်ခုလုံသတလင် JavaScript တလင် အကောင်အထည်ဖော်သည်)
  3. ထိန်သချုပ်မဟုဒဌပ်စင် စီစဉ်ပေသသူ (ပါသလလဟာသော ကလိုင်သယင့်နဟင့် ဝဘ်ကလိုင်သယင့်နဟစ်ခုလုံသတလင် JavaScript တလင် အကောင်အထည်ဖော်သည်)
  4. ဝဘ်လိုင်သ

ပရောဂျက်တစ်ခုစီ၏ ဖလဲ့စည်သပုံသည် Java ပရောဂျက်မျာသ၏ ဖလဲ့စည်သပုံနဟင့် ဆင်တူသည် (သို့မဟုတ် .NET ပရောဂျက်မျာသ - မည်သည့်အရာက ပိုနီသစပ်သည်)။ ကျလန်ုပ်တို့တလင် namespace မျာသရဟိပဌီသ namespace တစ်ခုစီသည် သီသခဌာသ folder တစ်ခုတလင် ရဟိနေပါသည်။ ဖိုဒါအတလင်သတလင် ဖိုင်မျာသနဟင့် namespace အတန်သမျာသရဟိသည်။ ဝဘ် client ပရောဂျက်တလင် ဖိုင် ၁၀၀၀ ခန့် ရဟိပါသည်။

ဖလဲ့စည်သတည်ဆောက်ပုံအရ၊ ဝဘ်ဖောက်သည်အာသ အောက်ပါစနစ်ခလဲမျာသအဖဌစ် အကဌီသအကျယ် ပိုင်သခဌာသထာသသည်။

  • စီမံထာသသော client အပလီကေသရဟင်သ အင်တာဖေ့စ်
    • အထလေထလေအပလီကေသရဟင်သမျက်နဟာပဌင် (စနစ်မီနူသမျာသ၊ အကန့်မျာသ)
    • ထိန်သချုပ်မဟု 30 ခန့် (ခလုတ်မျာသ၊ ထည့်သလင်သအကလက်အမျိုသအစာသမျာသ - စာသာသ၊ ကိန်သဂဏာန်သ၊ နေ့စလဲ/အချိန်၊ စသည်ဖဌင့်၊ ဇယာသမျာသ၊ စာရင်သမျာသ၊ ဂရပ်မျာသ စသည်ဖဌင့်) အပါအဝင် စီမံခန့်ခလဲထာသသော ပုံစံမျာသ၏ အင်တာဖေ့စ်

  • ကလိုင်သယင့်တလင် ဆော့ဖ်ဝဲရေသသာသသူမျာသမဟ ရရဟိနိုင်သော အရာဝတ္ထုပုံစံ (စုစုပေါင်သအမျိုသအစာသ 400 ကျော်- စီမံခန့်ခလဲထာသသော အင်တာဖေ့စ်အရာဝတ္ထုမော်ဒယ်၊ ဒေတာ အပဌင်အဆင် ဆက်တင်မျာသ၊ အခဌေအနေဆိုင်ရာ ပုံစံရေသဆလဲခဌင်သ စသည်ဖဌင့်)
  • built-in 1C ဘာသာစကာသ၏ စကာသပဌန်
  • ဘရောင်ဇာ တိုသချဲ့မဟုမျာသ (JavaScript တလင် မပံ့ပိုသနိုင်သော လုပ်ဆောင်နိုင်စလမ်သအတလက် အသုံသပဌုသည်)
    • cryptography နဟင့်အတူအလုပ်လုပ်
    • ဖိုင်မျာသနဟင့်အတူအလုပ်လုပ်
    • ပဌင်ပအစိတ်အပိုင်သမျာသ၏ နည်သပညာသည် ၎င်သတို့အာသ ပါသလလဟာသော ဝဘ်ဖောက်သည်မျာသ နဟစ်မျိုသလုံသတလင် အသုံသပဌုခလင့်ပေသသည်။

ဖလံ့ဖဌိုသတိုသတက်မဟုအင်္ဂါရပ်မျာသ

JavaScript တလင် အထက်ပါအရာအာသလုံသကို အကောင်အထည်ဖော်ရန် မလလယ်ကူပါ။ 1C ဝဘ်ကလိုင်သယင့်သည် လိုင်သပေါင်သ 450.000 ခန့်ကို JavaScript တလင်ရေသသာသထာသသော အကဌီသဆုံသ client-side application တစ်ခုဖဌစ်သည်။ ကကဲ့သို့သောကဌီသမာသသောပရောဂျက်နဟင့်အလုပ်လုပ်ရလလယ်ကူစေမည့် ဝဘ်အသုံသပဌုသူကုဒ်တလင် အရာဝတ္ထု-ဆန်သောချဉ်သကပ်မဟုကို ကျလန်ုပ်တို့တက်ကဌလစလာအသုံသပဌုပါသည်။

ကုဒ်၏အရလယ်အစာသကို လျဟော့ချရန်အတလက် ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ကိုယ်ပိုင် obfuscator ကို ညသစလာအသုံသပဌုခဲ့ပဌီသ၊ ပလပ်ဖောင်သဗာသရဟင်သ 8.3.6 (အောက်တိုဘာ 2014) မဟစတင်၍ ကျလန်ုပ်တို့ စတင်အသုံသပဌုခဲ့ပါသည်။ Google Closure Compiler. ကိန်သဂဏန်သမျာသတလင်အသုံသပဌုမဟုအကျိုသသက်ရောက်မဟု - ရဟုပ်ထလေသပဌီသနောက် ဝဘ်အသုံသပဌုသူဘောင်၏ အရလယ်အစာသ-

  • ကိုယ်ပိုင် obfuscator – 1556 kb
  • Google Closure Compiler – 1073 kb

Google Closure Compiler ကိုအသုံသပဌုခဌင်သဖဌင့် ကျလန်ုပ်တို့၏ကိုယ်ပိုင် obfuscator နဟင့် နဟိုင်သယဟဉ်ပါက ဝဘ်ကလိုင်သယင့်၏စလမ်သဆောင်ရည်ကို 30% မဌဟင့်တင်ရန် ကူညီပေသခဲ့ပါသည်။ ထို့အပဌင်၊ အပလီကေသရဟင်သမဟသုံသစလဲသည့်မဟတ်ဉာဏ်ပမာဏသည် 15-25% (ဘရောက်ဆာပေါ် မူတည်၍) လျော့နည်သသလာသသည်။

Google Closure Compiler သည် object-oriented code နဟင့် အလလန်ကောင်သစလာ အလုပ်လုပ်သောကဌောင့် ဝဘ် client အတလက် ၎င်သ၏ စလမ်သဆောင်ရည်သည် တတ်နိုင်သမျဟ မဌင့်မာသပါသည်။ Closure Compiler သည် ကျလန်ုပ်တို့အတလက် ကောင်သမလန်သောအရာအချို့ကို လုပ်ဆောင်ပေသသည်-

  • ပရောဂျက်တည်ဆောက်မဟုအဆင့်တလင် တည်ငဌိမ်အမျိုသအစာသစစ်ဆေသခဌင်သ (ကျလန်ုပ်တို့သည် ကုဒ်ကို JSDoc မဟတ်ချက်မျာသဖဌင့် ဖုံသအုပ်ထာသကဌောင်သ သေချာသည်)။ ရလဒ်မဟာ static typing ဖဌစ်ပဌီသ၊ C++ တလင် စာရိုက်ရန် အဆင့်တလင် အလလန်နီသစပ်ပါသည်။ ၎င်သသည် ပရောဂျက်စုစည်သမဟုအဆင့်တလင် အမဟာသအယလင်သမျာသစလာကို ဖမ်သမိရန် ကူညီပေသသည်။
  • ရဟုပ်ယဟက်ခတ်ခဌင်သဖဌင့် ကုဒ်အရလယ်အစာသကို လျဟော့ချခဌင်သ။
  • ဥပမာအာသဖဌင့်၊ ဥပမာအာသဖဌင့်၊
    • inline function အစာသထိုသမဟုမျာသ။ JavaScript တလင် လုပ်ဆောင်ချက်တစ်ခုကို ခေါ်ဆိုခဌင်သသည် အလလန်စျေသကဌီသသော လုပ်ဆောင်မဟုတစ်ခုဖဌစ်ပဌီသ မကဌာခဏအသုံသပဌုသည့် နည်သလမ်သငယ်မျာသ၏ အတလင်သပိုင်သအစာသထိုသမဟုမျာသသည် ကုဒ်ကို သိသိသာသာ မဌန်ဆန်စေသည်။
    • compile အချိန်၌ ကိန်သသေမျာသကို ရေတလက်ခဌင်သ။ ဖော်ပဌချက်တစ်ခုသည် ကိန်သသေတစ်ခုပေါ်တလင်မူတည်ပါက၊ ကိန်သသေ၏အမဟန်တကယ်တန်ဖိုသကို ၎င်သတလင် အစာသထိုသမည်ဖဌစ်သည်။

ကျလန်ုပ်တို့သည် WebStorm ကို ကျလန်ုပ်တို့၏ ဝဘ်ဖောက်သည် ဖလံ့ဖဌိုသတိုသတက်ရေသပတ်ဝန်သကျင်အဖဌစ် အသုံသပဌုပါသည်။

ကုဒ်ခလဲခဌမ်သစိတ်ဖဌာရန်အတလက် ကျလန်ုပ်တို့အသုံသပဌုသည်။ SonarQubeကျလန်ုပ်တို့သည် တည်ငဌိမ်ကုဒ်ခလဲခဌမ်သစိတ်ဖဌာသူမျာသ ပေါင်သစပ်ထာသသည့်နေရာတလင်၊ ခလဲခဌမ်သစိတ်ဖဌာသူအာသ အသုံသပဌုခဌင်သဖဌင့်၊ ကျလန်ုပ်တို့သည် JavaScript အရင်သအမဌစ်ကုဒ်၏ အရည်အသလေသကျဆင်သမဟုကို စောင့်ကဌည့်ပဌီသ ၎င်သကို တာသဆီသရန် ကဌိုသစာသပါသည်။

1C web client အကဌောင်သ

ဘာပဌဿနာမျာသ ဖဌေရဟင်သခဲ့သလဲ/?

ပရောဂျက်ကို အကောင်အထည်ဖော်စဉ်တလင် ကျလန်ုပ်တို့ ဖဌေရဟင်သရမည့် စိတ်ဝင်စာသဖလယ် ပဌဿနာမျာသစလာကို ကဌုံတလေ့ခဲ့ရသည်။

ဆာဗာနဟင့် ဝင်သဒိုသမျာသကဌာသတလင် ဒေတာဖလဟယ်ပါ။

အရင်သအမဌစ်ကုဒ်ကို ရဟုပ်ထလေသစေသော စနစ်၏လုပ်ဆောင်မဟုကို အနဟောင့်အယဟက်ဖဌစ်စေနိုင်သည့် အခဌေအနေမျာသရဟိပါသည်။ ရဟုပ်ထလေသမဟုကဌောင့် ဝဘ်ကလိုင်သယင့်၏ ပဌင်ပကုဒ်တလင် ကုဒ်သည် ကျလန်ုပ်တို့၏ စီမံကုဒ်မျဟော်လင့်ထာသသည့်အရာမျာသနဟင့် ကလဲပဌာသသည့် လုပ်ဆောင်ချက်နဟင့် ပါရာမီတာအမည်မျာသ ရဟိနိုင်ပါသည်။ ကျလန်ုပ်တို့အတလက် ပဌင်ပကုဒ်မဟာ-

  • ဒေတာတည်ဆောက်ပုံပုံစံဖဌင့် ဆာဗာမဟလာသောကုဒ်
  • အခဌာသအပလီကေသရဟင်သဝင်သဒိုသအတလက်ကုဒ်

ဆာဗာနဟင့် အပဌန်အလဟန် ဆက်သလယ်ရာတလင် ရဟုပ်ထလေသမဟုကို ရဟောင်ရဟာသရန် @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;
}

အခဌာသဝင်သဒိုသမျာသနဟင့် အပဌန်အလဟန်ဆက်သလယ်သည့်အခါတလင် ရဟုပ်ထလေသမဟုကို ရဟောင်ရဟာသရန်၊ ကျလန်ုပ်တို့သည် ထုတ်ယူထာသသော အင်တာဖေ့စ်မျာသ (နည်သလမ်သအာသလုံသကို တင်ပို့သည့် မျက်နဟာပဌင်မျာသ) ကို အသုံသပဌုပါသည်။

/**
 * ЭкспПртОруеЌый ОМтерфейс кПМтрПла 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 (){}

ကျလန်ုပ်တို့သည် ပင်မရေစီသကဌောင်သမဖဌစ်မီ Virtual DOM ကိုအသုံသပဌုခဲ့သည်)

ရဟုပ်ထလေသသော Web UI မျာသနဟင့် ပတ်သက်သည့် developer မျာသအာသလုံသကဲ့သို့ပင်၊ DOM သည် dynamic user interfaces မျာသနဟင့် လုပ်ဆောင်ရန် ညံ့ဖျင်သကဌောင်သ ကျလန်ုပ်တို့ လျင်မဌန်စလာ သဘောပေါက်လိုက်ပါသည်။ ချက်ချင်သနီသပါသ၊ UI နဟင့် အလုပ်ပိုကောင်သအောင်ပဌုလုပ်ရန် Virtual DOM ၏ analogue တစ်ခုကို အကောင်အထည်ဖေါ်ခဲ့သည်။ အစီအစဉ်လုပ်ဆောင်နေစဉ်အတလင်သ၊ DOM ပဌောင်သလဲမဟုအာသလုံသကို မဟတ်ဉာဏ်တလင် သိမ်သဆည်သထာသပဌီသ၊ လုပ်ဆောင်ချက်အာသလုံသ ပဌီသမဌောက်သောအခါမဟသာ စုဆောင်သထာသသော အပဌောင်သအလဲမျာသကို DOM သစ်ပင်တလင် သက်ရောက်မည်ဖဌစ်သည်။

ဝဘ်ကလိုင်သယင့်ကို အကောင်သဆုံသဖဌစ်အောင်လုပ်ခဌင်သ။

ကျလန်ုပ်တို့၏ဝဘ် client ကိုပိုမိုမဌန်ဆန်စေရန်အတလက်၊ ကျလန်ုပ်တို့သည် စံဘရောက်ဆာစလမ်သရည်မျာသ (CSS, etc.) ကို အမျာသဆုံသအသုံသပဌုရန် ကဌိုသစာသပါသည်။ ထို့ကဌောင့်၊ form command panel (အပလီကေသရဟင်သ၏ပုံစံတိုင်သနီသပါသတလင်တည်ရဟိသည်) ကို CSS ကိုအခဌေခံထာသသော dynamic layout ကိုအသုံသပဌု၍ browser tools မျာသကိုအသုံသပဌု၍ သီသသန့်ပဌန်ဆိုထာသပါသည်။

1C web client အကဌောင်သ

စမ်သသပ်ခဌင်သ

လုပ်ဆောင်ချက်နဟင့် စလမ်သဆောင်ရည် စမ်သသပ်ခဌင်သအတလက်၊ ကျလန်ုပ်တို့သည် မူပိုင်တူသလ် (Java နဟင့် C++ တလင်ရေသထာသသည်) နဟင့် အပေါ်မဟတည်ဆောက်ထာသသော စမ်သသပ်မဟုအစုံကို အသုံသပဌုပါသည်။ ဆယ်လီနီယမ်.

ကျလန်ုပ်တို့၏ tool သည် universal ဖဌစ်သည် - ၎င်သသည် သင့်အာသ မည်သည့် windowed program နီသပါသကိုမဆို စမ်သသပ်နိုင်သောကဌောင့် ပါသလလဟာသော client နဟင့် web client နဟစ်ခုလုံသကို စမ်သသပ်ရန်အတလက် သင့်လျော်ပါသည်။ ကိရိယာသည် 1C အပလီကေသရဟင်သဖဌေရဟင်သချက်အာသ script ဖိုင်တစ်ခုအဖဌစ် စတင်သည့် အသုံသပဌုသူ၏ လုပ်ဆောင်ချက်မျာသကို မဟတ်တမ်သတင်သည်။ တစ်ချိန်တည်သမဟာပင်၊ မျက်နဟာပဌင်—စံနဟုန်သမျာသ—အလုပ်လုပ်သည့်ဧရိယာ၏ပုံမျာသကို မဟတ်တမ်သတင်ထာသသည်။ ဝဘ်ကလိုင်သယင့်၏ ဗာသရဟင်သအသစ်မျာသကို စောင့်ကဌည့်သည့်အခါ၊ အသုံသပဌုသူပါဝင်ခဌင်သမရဟိဘဲ script မျာသကို ဖလင့်သည်။ ဖန်သာသပဌင်ဓာတ်ပုံသည် မည်သည့်အဆင့်တလင်မဆို ရည်ညလဟန်သချက်နဟင့် မကိုက်ညီသည့်ကိစ္စမျာသတလင် စမ်သသပ်မဟု မအောင်မဌင်ဟု ယူဆရပဌီသ ၎င်သသည် အမဟာသအယလင်သတစ်ခု သို့မဟုတ် စနစ်၏အပဌုအမူအတလက် စီစဉ်ထာသသော ပဌောင်သလဲခဌင်သဟုတ်မဟုတ် ဆုံသဖဌတ်ရန် အရည်အသလေသကျလမ်သကျင်သူတစ်ညသမဟ စုံစမ်သစစ်ဆေသမဟုတစ်ခု ပဌုလုပ်သည်။ စီစဉ်ထာသသောအပဌုအမူအတလက်၊ စံနဟုန်သမျာသကို အသစ်မျာသဖဌင့် အလိုအလျောက်အစာသထိုသပါသည်။

ကိရိယာသည် အက်ပလီကေသရဟင်သ၏စလမ်သဆောင်ရည်ကို 25 မီလီစက္ကန့်အထိ တိကျစလာတိုင်သတာသည်။ အချို့ကိစ္စမျာသတလင်၊ ကျလန်ုပ်တို့သည် အချိန်ကဌာလာသည်နဟင့်အမျဟ လုပ်ဆောင်မဟု၏ပဌိုကလဲမဟုကို ပိုင်သခဌာသစိတ်ဖဌာရန် ကျလန်ုပ်တို့သည် ဇာတ်ညလဟန်သ၏အစိတ်အပိုင်သမျာသ (ဥပမာ၊ အမဟာစာထည့်သလင်သမဟုကို အကဌိမ်ပေါင်သမျာသစလာ ထပ်ခါတလဲလဲလုပ်သည်)။ တိုင်သတာမဟုအာသလုံသ၏ ရလဒ်မျာသကို ခလဲခဌမ်သစိတ်ဖဌာရန်အတလက် မဟတ်တမ်သတစ်ခုတလင် မဟတ်တမ်သတင်ထာသသည်။

1C web client အကဌောင်သ
ကျလန်ုပ်တို့၏စမ်သသပ်ကိရိယာနဟင့် လျဟောက်လလဟာကို စမ်သသပ်ဆဲဖဌစ်သည်။

ကျလန်ုပ်တို့၏ကိရိယာနဟင့် ဆီလီနီယမ်သည် တစ်ခုနဟင့်တစ်ခု အာသဖဌည့်ပေသသည်။ ဥပမာအာသဖဌင့်၊ ဖန်သာသပဌင်တစ်ခုပေါ်ရဟိ ခလုတ်အချို့သည် ၎င်သ၏တည်နေရာကို ပဌောင်သသလာသပါက၊ Selenium သည် ၎င်သကို ခဌေရာခံနိုင်မည်မဟုတ်သော်လည်သ ကျလန်ုပ်တို့၏ကိရိယာသည် သတိပဌုမိလိမ့်မည်ဖဌစ်သောကဌောင့်၊ စံနဟုန်သဖဌင့် ဖန်သာသပဌင်ဓာတ်ပုံ၏ pixel-by-pixel နဟိုင်သယဟဉ်မဟုကို ပဌုလုပ်သည်။ ကိရိယာသည် ကီသဘုတ် သို့မဟုတ် မောက်စ်မဟ ထည့်သလင်သမဟုလုပ်ဆောင်ခဌင်သဆိုင်ရာ ပဌဿနာမျာသကို ခဌေရာခံနိုင်သောကဌောင့် ၎င်သသည် ၎င်သသည် ပဌန်လည်ထုတ်လုပ်သည့်အရာဖဌစ်သည်။

ကိရိယာနဟစ်ခုလုံသ (ကျလန်ုပ်တို့၏ နဟင့် ဆီလီနီယမ်) တလင် စမ်သသပ်မဟုမျာသသည် ကျလန်ုပ်တို့၏ အပလီကေသရဟင်သဖဌေရဟင်သချက်မျာသမဟ ပုံမဟန်အလုပ်အခဌေအနေမျာသကို လုပ်ဆောင်သည်။ 1C:Enterprise ပလပ်ဖောင်သ၏နေ့စဥ်တည်ဆောက်ပဌီသနောက် စမ်သသပ်မဟုမျာသကို အလိုအလျောက်စတင်ဆောင်ရလက်ပါသည်။ Script မျာသသည် နဟေသကလေသနေပါက (ယခင်တည်ဆောက်မဟုနဟင့် နဟိုင်သယဟဉ်ပါက) နဟေသကလေသရခဌင်သအကဌောင်သရင်သကို ကျလန်ုပ်တို့ စုံစမ်သစစ်ဆေသပဌီသ ဖဌေရဟင်သပါ။ ကျလန်ုပ်တို့၏စံနဟုန်သသည် ရိုသရဟင်သသည် - တည်ဆောက်မဟုအသစ်သည် ယခင်ပုံစံထက် နဟေသကလေသခဌင်သမရဟိသင့်ပါ။

နဟေသကလေသမဟုဖဌစ်စဉ်မျာသကို စုံစမ်သစစ်ဆေသရန် developer မျာသသည် မတူညီသောကိရိယာမျာသကို အသုံသပဌုကဌသည်။ အဓိကအာသဖဌင့်အသုံသပဌုသည်။ Dynatrace AJAX ထုတ်ဝေမဟု ထုတ်လုပ်ရေသကုမ္ပဏီ DynaTrace. ယခင်တည်ဆောက်မဟုမျာသနဟင့် အသစ်တည်ဆောက်မဟုမျာသတလင် ပဌဿနာရဟိသော လည်ပတ်ဆောင်ရလက်မဟုဆိုင်ရာ မဟတ်တမ်သမျာသကို မဟတ်တမ်သတင်ပဌီသနောက် မဟတ်တမ်သမျာသကို ခလဲခဌမ်သစိတ်ဖဌာသည်။ တစ်ချိန်တည်သမဟာပင်၊ တစ်ခုတည်သသော လုပ်ဆောင်ချက်မျာသ၏ အကောင်အထည်ဖော်ချိန် (မီလီစက္ကန့်အတလင်သ) သည် အဆုံသအဖဌတ်ပေသသည့်အချက်မဟုတ်နိုင် - အမဟိုက်စုဆောင်သခဌင်သကဲ့သို့သော ဝန်ဆောင်မဟုလုပ်ငန်သစဉ်မျာသကို ဘရောက်ဆာတလင် အခါအာသလျော်စလာ ဖလင့်ပေသသည်၊ ၎င်သတို့သည် လုပ်ဆောင်ချက်မျာသ၏ လုပ်ဆောင်ချိန်နဟင့် ထပ်နေနိုင်ပဌီသ ပုံကို ပုံပျက်သလာသစေနိုင်သည်။ ကကိစ္စတလင် ပိုမိုသက်ဆိုင်ရာ ကန့်သတ်ချက်မျာသသည် လုပ်ဆောင်ခဲ့သည့် JavaScript ညလဟန်ကဌာသချက်အရေအတလက်၊ DOM တလင် အက်တမ်လုပ်ဆောင်မဟု အရေအတလက်၊ စသည်တို့ဖဌစ်သည်။ ဗာသရဟင်သအသစ်တလင် တူညီသော လမ်သညလဟန်ချက်မျာသ/လုပ်ဆောင်မဟုမျာသ အရေအတလက် တိုသလာပါက၊ ၎င်သသည် အမဌဲလိုလို ပဌုပဌင်ရန်လိုအပ်သည့် စလမ်သဆောင်ရည်ကျဆင်သသလာသခဌင်သကို ဆိုလိုသည်။

ထို့အပဌင်၊ စလမ်သဆောင်ရည်ကျဆင်သရခဌင်သ၏အကဌောင်သရင်သမျာသထဲမဟတစ်ခုမဟာ အကဌောင်သတစ်ခုခုကဌောင့် Google Closure Compiler သည် လုပ်ဆောင်ချက်၏ inline အစာသထိုသမဟုကို မလုပ်ဆောင်နိုင်ခဌင်သကဌောင့် ဖဌစ်နိုင်သည် (ဥပမာ၊ လုပ်ဆောင်ချက်သည် recursive သို့မဟုတ် virtual ဖဌစ်သောကဌောင့်)။ ကကိစ္စတလင်၊ ကျလန်ုပ်တို့သည် အရင်သအမဌစ်ကုဒ်ကို ပဌန်လည်ရေသသာသခဌင်သဖဌင့် အခဌေအနေကို ပဌုပဌင်ရန် ကဌိုသစာသသည်။

ဘရောက်ဆာ တိုသချဲ့မဟုမျာသ

အပလီကေသရဟင်သဖဌေရဟင်သချက်တစ်ခုသည် JavaScript တလင်မရရဟိနိုင်သောလုပ်ဆောင်နိုင်စလမ်သကိုလိုအပ်သောအခါ၊ ကျလန်ုပ်တို့သည် ဘရောက်ဆာ extension ကိုအသုံသပဌုသည်-

ကျလန်ုပ်တို့၏ တိုသချဲ့မဟုမျာသတလင် အပိုင်သနဟစ်ပိုင်သပါဝင်သည်။ ပထမအပိုင်သကို browser extension ဟုခေါ်သည် (မျာသသောအာသဖဌင့် JavaScript ဖဌင့်ရေသသာသထာသသော Chrome နဟင့် Firefox အတလက် extension မျာသ)၊ ဒုတိယအပိုင်သ - ကျလန်ုပ်တို့လိုအပ်သောလုပ်ဆောင်နိုင်စလမ်သကိုအကောင်အထည်ဖော်သည့် binary extension တစ်ခုဖဌစ်သည်။ Windows၊ Linux နဟင့် MacOS အတလက် binary extension ဗာသရဟင်သ 3 ခုကို ရေသသာသဖော်ပဌသင့်သည်။ binary extension ကို 1C:Enterprise platform ၏ တစ်စိတ်တစ်ပိုင်သအဖဌစ် ပံ့ပိုသထာသပဌီသ 1C အက်ပ်လီကေသရဟင်သဆာဗာတလင် တည်ရဟိသည်။ ဝဘ်ကလိုင်သယင့်ထံမဟ ပထမဆုံသအကဌိမ် ခေါ်သောအခါ၊ ၎င်သကို ကလိုင်သယင့်ကလန်ပဌူတာသို့ ဒေါင်သလုဒ်လုပ်ပဌီသ ဘရောက်ဆာတလင် ထည့်သလင်သထာသသည်။

Safari တလင်အလုပ်လုပ်သောအခါ၊ ကျလန်ုပ်တို့၏ extension မျာသသည် NPAPI ကိုအသုံသပဌုသည်၊ Internet Explorer တလင်အလုပ်လုပ်သောအခါ၊ ၎င်သတို့သည် ActiveX နည်သပညာကိုအသုံသပဌုသည်။ မိုက်ကရိုဆော့ဖ Edge တိုသချဲ့မဟုမျာသကို မပံ့ပိုသရသေသပါ၊ ထို့ကဌောင့် ၎င်သတလင်ရဟိသော ဝဘ်ကလိုင်သယင့်သည် ကန့်သတ်ချက်မျာသဖဌင့် အလုပ်လုပ်ပါသည်။

နောက်ထပ် ဖလံ့ဖဌိုသတိုသတက်မဟု

ဝဘ်ဖောက်သည် ဖလံ့ဖဌိုသတိုသတက်ရေသအဖလဲ့အတလက် အလုပ်မျာသထဲမဟ တစ်ခုသည် လုပ်ဆောင်နိုင်စလမ်သ၏ နောက်ထပ် ဖလံ့ဖဌိုသတိုသတက်မဟုဖဌစ်သည်။ ဝဘ်ကလိုင်သယင့်၏ လုပ်ဆောင်နိုင်စလမ်သသည် ပါသလလဟာသော ကလိုင်သယင့်၏ လုပ်ဆောင်နိုင်စလမ်သနဟင့် တူညီသင့်သည်၊ လုပ်ဆောင်ချက်အသစ်အာသလုံသကို ပါသလလဟာသော နဟင့် ဝဘ်ဖောက်သည်မျာသ နဟစ်ခုလုံသတလင် တပဌိုင်နက် အကောင်အထည် ဖော်ထာသသည်။

အခဌာသသော လုပ်ငန်သတာဝန်မျာသမဟာ ဗိသုကာပညာကို ဖော်ဆောင်ခဌင်သ၊ ပဌန်လည်ပဌုပဌင်ခဌင်သ၊ စလမ်သဆောင်ရည် မဌဟင့်တင်ခဌင်သနဟင့် ယုံကဌည်စိတ်ချရခဌင်သတို့ ပါဝင်သည်။ ဥပမာအာသဖဌင့်၊ လမ်သညလဟန်ချက်မျာသထဲမဟ တစ်ခုသည် ချိန်ကိုက်သည့် အလုပ်ပုံစံဆီသို့ နောက်ထပ် ရလေ့လျာသမဟုဖဌစ်သည်။ ဝဘ်ကလိုင်သယင့်၏ လုပ်ဆောင်နိုင်စလမ်သအချို့သည် ဆာဗာနဟင့် အပဌန်အလဟန်အကျိုသသက်ရောက်မဟု ထပ်တူကျသည့်ပုံစံပေါ်တလင် လက်ရဟိတည်ဆောက်ထာသသည်။ အပဌိုင်အဆိုင်ခေါ်ဆိုမဟုပုံစံသည် ယခုအခါ ဘရောက်ဆာမျာသတလင် (သာမက ဘရောက်ဆာမျာသတလင်သာမက) ပါ ပိုမိုသက်ဆိုင်ရာဖဌစ်လာပဌီသ ၎င်သသည် ကျလန်ုပ်တို့အာသ ပဌိုင်တူခ်ခရောနိုက်ခေါ်ဆိုမဟုမျာသကို အပဌိုင်အဆိုင်ခေါ်ဆိုမဟုမျာသနဟင့် အစာသထိုသခဌင်သ (နဟင့်လျော်ညီသောကုဒ်ကို ပဌန်လည်ပဌင်ဆင်ခဌင်သ) ဖဌင့် ဝဘ်ဖောက်သည်အာသ ပဌုပဌင်ပဌောင်သလဲရန် တလန်သအာသပေသခဲ့သည်။ ထလက်လာတဲ့ ဖဌေရဟင်သချက်တလေကို ပံ့ပိုသပေသဖို့နဲ့ သူတို့ရဲ့ တစ်ဖဌည်သဖဌည်သ လိုက်လျောညီထလေ လိုက်လျောညီထလေဖဌစ်အောင် ချိန်ညဟိထာသတဲ့ ပုံစံတစ်ခုဆီ တဖဌည်သဖဌည်သ ကူသပဌောင်သမဟုကို ရဟင်သပဌပါတယ်။

source: www.habr.com

မဟတ်ချက် Add