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

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

National Settlement Depository ၏ လက်ရဟိဖလံ့ဖဌိုသတိုသတက်မဟုလုပ်ငန်သစဉ်မျာသ (Alameda ငလေသလင်သခဌင်သနဟင့် ငလေစာရင်သရဟင်သခဌင်သစနစ်အပဌင်) တလင် ကုဒ်အရည်အသလေသကို စဉ်ဆက်မပဌတ်ခလဲခဌမ်သစိတ်ဖဌာခဌင်သနဟင့် တိုင်သတာခဌင်သအတလက် SonarQube ပလပ်ဖောင်သကို အကောင်အထည်ဖော်ရာတလင် ကျလန်ုပ်တို့၏အတလေ့အကဌုံကို မျဟဝေလိုပါသည်။

National Settlement Depository (Moscow Exchange Group of Company) သည် ရူဘယ် 50 ထရီလီယံကျော်တန်ဖိုသရဟိသော ရုရဟာသနဟင့် နိုင်ငံခဌာသထုတ်သူမျာသ၏ လုံခဌုံရေသအတလက် သိမ်သဆည်သခဌင်သနဟင့် စာရင်သကိုင်ခဌင်သအတလက် အဓိကကုမ္ပဏီမျာသထဲမဟ တစ်ခုဖဌစ်သည်။ စနစ်မဟ ဆောင်ရလက်သော လည်ပတ်မဟုပမာဏ တိုသလာခဌင်သနဟင့် လုပ်ဆောင်နိုင်စလမ်သမျာသ စဉ်ဆက်မပဌတ် ချဲ့ထလင်ခဌင်သတို့ကဌောင့် စနစ်မျာသ၏ အရည်အသလေသမဌင့် အရင်သအမဌစ်ကုဒ်ကို ထိန်သသိမ်သထာသရန် လိုအပ်ပါသည်။ ကပန်သတိုင်ကိုအောင်မဌင်ရန် ကိရိယာတစ်ခုမဟာ SonarQube static analyzer ဖဌစ်သည်။ ကဆောင်သပါသတလင်ကျလန်ုပ်တို့၏ဌာန၏လက်ရဟိဖလံ့ဖဌိုသတိုသတက်မဟုလုပ်ငန်သစဉ်မျာသတလင် SonarQube static analyzer ကိုချောမလေ့စလာအကောင်အထည်ဖော်ခဌင်သ၏အောင်မဌင်သောအတလေ့အကဌုံကိုဖော်ပဌပါမည်။

ဌာနအကဌောင်သ အကျဉ်သချုပ်ပါ။

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

SonarQube အဘယ်ကဌောင့်နည်သ။

ကုဒ်အရည်အသလေသထိန်သချုပ်မဟုအတလက် ပလပ်ဖောင်သတစ်ခုကို အကောင်အထည်ဖော်ရာတလင် ကျလန်ုပ်တို့၏ဌာန၏ ပထမဆုံသအတလေ့အကဌုံဖဌစ်သည် - ယခင်က ကျလန်ုပ်တို့သည် ၎င်သကို ကိုယ်တိုင်ပဌုလုပ်ခဲ့ပဌီသ ကုဒ်ပဌန်လည်သုံသသပ်ခဌင်သမျာသကိုသာ ပဌုလုပ်ခဲ့သည်။ သို့သော် တိုသပလာသလာသော အလုပ်ပမာဏသည် ကလုပ်ငန်သစဉ်ကို အလိုအလျောက်လုပ်ဆောင်ရန် လိုအပ်သည်။ ထို့အပဌင်၊ အဖလဲ့တလင် ဌာနတလင်သဖလံ့ဖဌိုသမဟုစည်သမျဉ်သမျာသနဟင့် လုံသဝအကျလမ်သတဝင်မရဟိသော အတလေ့အကဌုံမရဟိသော ဝန်ထမ်သမျာသလည်သ ပါ၀င်ပဌီသ အမဟာသအယလင်သပိုမျာသတတ်သည်။ ကုဒ်၏ အရည်အသလေသကို ထိန်သချုပ်ရန်၊ static analyzer ကို အသုံသပဌုရန် ဆုံသဖဌတ်ခဲ့သည်။ SonarQube ကို အချို့သော NSD စနစ်မျာသတလင် အသုံသပဌုထာသပဌီသဖဌစ်သောကဌောင့် ရလေသချယ်ရန် အချိန်အကဌာကဌီသ မလိုအပ်ပါ။ ယခင်က အခဌာသဌာနမျာသမဟ လုပ်ဖော်ကိုင်ဖက်မျာသသည် Alameda စနစ် (NSD ၏ ကိုယ်ပိုင်ငလေသလင်သခဌင်သနဟင့် ငလေစာရင်သရဟင်သခဌင်သစနစ်)၊ CFT (စာရင်သကိုင်ထိန်သသိမ်သရန် အချက်အလက်စနစ်၊ လက်ကျန်ရဟင်သတမ်သမျာသ၊ မဖဌစ်မနေပဌင်ဆင်ခဌင်သနဟင့် ဌာနတလင်သအစီရင်ခံခဌင်သ)၊ အချို့တလင်၊ အခဌာသစနစ်မျာသ။ စမ်သသပ်မဟုမျာသအတလက် SonarQube ၏ အခမဲ့ဗာသရဟင်သဖဌင့် စတင်ရန် ဆုံသဖဌတ်ခဲ့သည်။ ဒါဆို ငါတို့ကိစ္စ ဆက်သလာသရအောင်။

အကောင်အထည်ဖော်ရေသလုပ်ငန်သစဉ်

ငါတို့မဟာရဟိတယ်:

  • TeamCity တလင် အလိုအလျောက်စနစ် တပ်ဆင်ခဌင်သ၊
  • အင်္ဂါရပ်ဌာနခလဲမဟ GitLab ရဟိ မာစတာဌာနခလဲသို့ MergeRequest မဟတစ်ဆင့် ကုဒ်ကို အပ်လုဒ်တင်ခဌင်သလုပ်ငန်သစဉ်ကို ပဌင်ဆင်သတ်မဟတ်ထာသပဌီသ (GitHub Flow အရ ဖလံ့ဖဌိုသတိုသတက်မဟုလုပ်ငန်သစဉ်)၊
  • SonarQube၊ DPO စနစ်အတလက် ကုဒ်ကို ခလဲခဌမ်သစိတ်ဖဌာရန် စီစဉ်ထာသသည်။

ငါတို့ရဲ့ပန်သတိုင်DPO ၏ CI/CD လုပ်ငန်သစဉ်မျာသတလင် အလိုအလျောက်ကုဒ်ခလဲခဌမ်သစိတ်ဖဌာမဟုကို အကောင်အထည်ဖော်ပါ။

configure လုပ်ရန်လိုသည်။: ပင်မဌာနခလဲသို့ MergeRequest တစ်ခုစီဖဌင့် static analyzer ဖဌင့် ကုဒ်ကို အလိုအလျောက်စစ်ဆေသသည့် လုပ်ငန်သစဉ်။

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

SonarQube တလင် QualityGate ကို စနစ်ထည့်သလင်သခဌင်သ။

QualityGate ခလဲခဌမ်သစိတ်ဖဌာချက်သည် ကျလန်ုပ်တို့ အင်တာနက်၏ နက်နဲသောနေရာတလင် ဖတ်ရသောအရာဖဌစ်သည်။ အစပိုင်သတလင်၊ ကျလန်ုပ်တို့သည် ကလဲပဌာသခဌာသနာသသောချဉ်သကပ်နည်သကို အသုံသပဌုခဲ့ပဌီသ ပိုမိုရဟုပ်ထလေသကာ အချို့သောနည်သလမ်သမျာသတလင် လုံသလုံသမဟန်ကန်ခဌင်သမရဟိပါ။ ပထမညသစလာ၊ ကျလန်ုပ်တို့သည် SonarQube မဟတဆင့် စကင်န်ကို နဟစ်ကဌိမ်လုပ်ဆောင်ခဲ့သည်- ကျလန်ုပ်တို့သည် အင်္ဂါရပ်ဌာနခလဲနဟင့် အင်္ဂါရပ်ဌာနခလဲကို ပေါင်သစည်သမည့်ဌာနခလဲကို စကင်န်ဖတ်ပဌီသ အမဟာသအယလင်သအရေအတလက်ကို နဟိုင်သယဟဉ်ပါသည်။ ကနည်သလမ်သသည် တည်ငဌိမ်မဟုမရဟိ၍ မဟန်ကန်သောရလဒ်ကို အမဌဲမရရဟိပေ။ ထို့နောက် SonarQube ကို နဟစ်ကဌိမ်လုပ်ဆောင်မည့်အစာသ၊ ပဌုလုပ်ထာသသော အမဟာသအယလင်သအရေအတလက် (QualityGate) ပေါ်တလင် ကန့်သတ်ချက်တစ်ခု သတ်မဟတ်နိုင်ပဌီသ သင် upload လုပ်ပဌီသ နဟိုင်သယဟဉ်ထာသသည့် ဌာနခလဲကိုသာ ပိုင်သခဌာသစိတ်ဖဌာနိုင်သည်ကို တလေ့ရဟိခဲ့သည်။

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

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

၎င်သသည် ကကဲ့သို့ လုပ်ဆောင်သည်-

  • ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ပရောဂျက်အတလက် PL/SQL ကုဒ်မျာသကိုသာ ပိုင်သခဌာသစိတ်ဖဌာပါသည်။
  • SonarQube တလင် QualityGate တလင် အမဟာသအယလင်သမျာသ အရေအတလက် မတိုသစေရန် ပဌင်ဆင်ထာသပါသည်။
  • ပထမအကဌိမ်တလင် အမဟာသအယလင်သအရေအတလက်မဟာ 229 ဖဌစ်သည်။
  • ထို့အပဌင် အမဟာသအယလင်သမျာသကို ပဌုပဌင်ပါက၊ QualityGate ကို ပဌန်လည်ပဌင်ဆင်နိုင်မည်ဖဌစ်သည်။
  • ခလဲခဌမ်သစိတ်ဖဌာမဟုအတလက် အမဟတ်အသစ်မျာသ ဥပမာ၊ စမ်သသပ်မဟုမျာသနဟင့်အတူ ကုဒ်အကျုံသဝင်မဟု စသည်ဖဌင့်လည်သ ပေါင်သထည့်နိုင်သည်။

အလုပ်အစီအစဉ်-

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

ဇာတ်ညလဟန်သ၏မဟတ်ချက်မျာသသည် အင်္ဂါရပ်ဌာနခလဲရဟိ အမဟာသအယလင်သအရေအတလက် တိုသမလာကဌောင်သ ပဌသသည်။ ဒါဆို အာသလုံသအဆင်ပဌေပဌီပေါ့။

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

ပေါင်သစည်သခဌင်သခလုတ်ကို ရနိုင်ပါပဌီ။

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

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

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

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

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

အမဟီအခိုကင်သတဲ့အလုပ်ပေါ့ဗျာ။

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

ငါတို့ဘာတလေရောက်လာတာလဲ။

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

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

စာသာသရေသသာသသူ- atanya

source: www.habr.com

မဟတ်ချက် Add