SonarQubeን እንዴት እንደተገበርን እና ታላቅ አቅሙን እንደተረዳን

SonarQubeን እንዴት እንደተገበርን እና ታላቅ አቅሙን እንደተረዳን

ቀጣይነት ያለው ትንተና እና የ SonarQube ኮድን ጥራት ለመለካት መድረክን በመተግበር የዲፒኦ ስርዓትን ለማዳበር (ከአላሜዳ ተቀማጭ እና የሒሳብ አያያዝ ስርዓት በተጨማሪ) ብሔራዊ የሰፈራ ማከማቻ ቦታን በመተግበር ልምዳችንን ልናካፍል እንወዳለን።

ብሄራዊ የሰፈራ ማከማቻ (የሞስኮ ልውውጥ ቡድን ኦፍ ኩባንያዎች) ከ50 ትሪሊዮን ሩብል በላይ ዋጋ ያላቸውን የሩሲያ እና የውጭ ሀገር አውጪዎችን ዋስትና ከሚያከማቹ እና ከሚመዘግቡ ቁልፍ የፋይናንስ መሠረተ ልማት ኩባንያዎች አንዱ ነው። በስርአቱ የተከናወኑት እያደገ የሚሄደው የክወና ስራዎች እንዲሁም ቀጣይነት ያለው ተግባራዊነት መጨመር የስርአቶቹን የምንጭ ኮድ ጥራት መጠበቅን ይጠይቃል። ይህንን ግብ ለማሳካት አንዱ መሳሪያ የ SonarQube static analyzer ነው። በዚህ ጽሁፍ ውስጥ የ SonarQube static analyzerን በመምሪያችን ያሉትን የእድገት ሂደቶች ያለምንም እንከን የመተግበርን የተሳካ ተሞክሮ እንገልፃለን።

ስለ መምሪያው በአጭሩ

ብቃታችን የሚከተሉትን ሞጁሎች ያካትታል፡ ለኤንኤስዲ ደንበኞች ክፍያ፣ የኤሌክትሮኒክስ ሰነድ አስተዳደር (ኢዲኤፍ)፣ የንግድ ማከማቻ መልእክቶችን ማቀናበር (ከመለዋወጫ ውጪ ግብይቶች ምዝገባ)፣ በደንበኞች እና በኤንኤስዲ መካከል የኤሌክትሮኒክስ መስተጋብር ሰርጦች እና ሌሎችም። በአጠቃላይ በቴክኒካዊ አሠራር ላይ ትልቅ የሥራ ንብርብር. በመተግበሪያዎች መሰረት እንሰራለን. የቴሌተሮች አፕሊኬሽኖች በተንታኞች ይከናወናሉ፡ የደንበኛ መስፈርቶችን ይሰበስባሉ እና ከፕሮግራሙ ጋር እንዴት እንደሚጣጣም ራዕያቸውን ያሳዩናል። በተጨማሪም ፣ መደበኛው እቅድ-የኮድ ልማት - ሙከራ - የሙከራ ሥራ - ኮዱን ወደ ምርታማ ዑደት ለቀጥታ ደንበኛ ማድረስ።

ለምን SonarQube?

ይህ የኮድ ጥራት ቁጥጥር መድረክን በመተግበር የመምሪያችን የመጀመሪያ ተሞክሮ ነው - ከዚህ ቀደም በእጅ አደረግነው ፣ የኮድ ግምገማ ብቻ። ነገር ግን እየጨመረ የሚሄደው የሥራ መጠን የዚህን ሂደት አውቶማቲክ ይጠይቃል. በተጨማሪም በቡድኑ ውስጥ የውስጥ ልማት ደንቦችን ሙሉ በሙሉ የማያውቁ እና ብዙ ስህተቶችን የሚያደርጉ ልምድ የሌላቸው ሰራተኞችም አሉ. የኮዱን ጥራት ለመቆጣጠር የማይንቀሳቀስ ተንታኝ ተግባራዊ ለማድረግ ተወስኗል። SonarQube በአንዳንድ የኤንኤስዲ ሲስተሞች ውስጥ ጥቅም ላይ ስለዋለ፣ ለመምረጥ ብዙ ጊዜ አልወሰደበትም። ቀደም ሲል ከሌሎች ክፍሎች የመጡ ባልደረቦች በአላሜዳ ስርዓት (ኤንኤስዲ የራሱ ተቀማጭ እና የማጽዳት ሂሳብ ስርዓት) ፣ በ CFT (የመረጃ ስርዓት ለሂሳብ አያያዝ ፣ ሚዛን ፣ የግዴታ እና የውስጥ ዘገባ ዝግጅት) ውስጥ ያለውን የማይክሮ ሰርቪስ ኮድ ለመተንተን ይጠቀሙበት ነበር። ስርዓቶች . ለሙከራ ያህል፣ በነጻው የ SonarQube ስሪት ለመጀመር ወስነናል። ስለዚህ ወደ ጉዳያችን እንሂድ።

የትግበራ ሂደት

እኛ ነን:

  • በ TeamCity ውስጥ የስርዓቱን ራስ-ሰር መሰብሰብ;
  • ኮድን በ MergeRequest በኩል ከባህሪ ቅርንጫፍ ወደ GitLab ዋና ቅርንጫፍ (በ GitHub ፍሰት መሠረት የእድገት ሂደት) የመስቀል ሂደትን ያዋቅሩ።
  • SonarQube በጊዜ መርሐግብር የ DPO ሥርዓትን ኮድ ለመተንተን ተዋቅሯል።

ግባችንበ CI / ሲዲ የ AVE ሂደቶች ውስጥ አውቶማቲክ ኮድ ትንታኔን ተግባራዊ ማድረግ.

ማበጀት ያስፈልጋልበእያንዳንዱ የውህደት መጠየቂያ ወደ ዋናው ቅርንጫፍ ኮዱን በስታቲክ ተንታኝ በራስ ሰር የመፈተሽ ሂደት።

እነዚያ። የዒላማው ምስል እንደሚከተለው ነው፡ ገንቢው ሰቀላ ወደ ባህሪው ቅርንጫፍ እንደተለወጠ፣ በኮዱ ውስጥ ያሉ አዳዲስ ስህተቶችን በራስ ሰር ማረጋገጥ ይጀምራል። ምንም ስህተቶች ከሌሉ ለውጦቹ ተቀባይነት እንዲኖራቸው ይፈቀድላቸዋል, አለበለዚያ ስህተቶቹ መስተካከል አለባቸው. ቀድሞውኑ በመነሻ ደረጃ, በኮዱ ውስጥ የተወሰኑ ስህተቶችን መለየት ችለናል. ስርዓቱ በጣም ተለዋዋጭ ቅንጅቶች አሉት-ለእያንዳንዱ ስርዓት እና የፕሮግራም አወጣጥ ዘይቤ ለተወሰኑ ገንቢዎች በሚሠራበት መንገድ ሊዋቀር ይችላል።

በ SonarQube ውስጥ QualityGateን በማዋቀር ላይ

የ QualityGate ትንተና በኢንተርኔት አንጀት ውስጥ የምናነበው ነገር ነው። መጀመሪያ ላይ፣ የተለየ አካሄድ፣ የበለጠ ውስብስብ እና፣ በአንዳንድ መንገዶች፣ ሙሉ በሙሉ ትክክል አልነበርንም። በመጀመሪያ ፣ ፍተሻውን በ SonarQube በኩል ሁለት ጊዜ እናካሂዳለን-የባህሪ ቅርንጫፍን እና የባህሪ ቅርንጫፍን የምናዋህድበትን ቅርንጫፍ ቃኘን እና ከዚያ የስህተቶቹን ብዛት አነፃፅርን። ይህ ዘዴ የተረጋጋ አልነበረም እና ሁልጊዜ ትክክለኛውን ውጤት አልሰጠም. እና በመቀጠል SonarQube ን ሁለት ጊዜ ከማሄድ ይልቅ የተሰሩትን ስህተቶች ብዛት (QualityGate) ላይ ገደብ ማበጀት እና የሰቀሉትን እና የሚያወዳድሩትን ቅርንጫፍ ብቻ መተንተን እንደሚችሉ ተምረናል።

SonarQubeን እንዴት እንደተገበርን እና ታላቅ አቅሙን እንደተረዳን

ለአሁን፣ አሁንም ይልቅ ጥንታዊ የሆነ የኮድ ቼክ እንጠቀማለን። SonarQube ዴልፊን ጨምሮ ከአንዳንድ የፕሮግራም አወጣጥ ቋንቋዎች ጋር ተኳሃኝ እንዳልሆነ ልብ ሊባል ይገባል። በአሁኑ ጊዜ, ለስርዓታችን, የ PLSql ኮድን ብቻ ​​እንመረምራለን.

እንደሚከተለው ይሰራል።

  • ለፕሮጀክታችን የPL/SQL ኮድን ብቻ ​​ነው የምንመረምረው።
  • QualityGate በ SonarQube ውስጥ ተዋቅሯል ስለዚህም የስህተቶች ብዛት በፈጸመው አይጨምርም።
  • በመጀመሪያው ሩጫ ላይ ያሉ ስህተቶች ቁጥር 229 ነበር.በድርጊቱ ወቅት ብዙ ስህተቶች ካሉ, ከዚያም ማዋሃድ አይፈቀድም.
  • በተጨማሪም ፣ ለስህተቶች እርማት እንደተጠበቀ ሆኖ QualityGate ን እንደገና ማዋቀር ይቻል ይሆናል።
  • እንዲሁም አዳዲስ ነገሮችን ለትንተና ማከል ይችላሉ፣ ለምሳሌ የኮድ ሽፋን ከሙከራዎች ጋር፣ ወዘተ.

የሥራ ዕቅድ

SonarQubeን እንዴት እንደተገበርን እና ታላቅ አቅሙን እንደተረዳን

በስክሪፕቱ አስተያየቶች ውስጥ በባህሪው ቅርንጫፍ ውስጥ ያሉ ስህተቶች ቁጥር እንዳልጨመረ ማየት ይችላሉ. ስለዚህ ሁሉም ነገር ደህና ነው.

SonarQubeን እንዴት እንደተገበርን እና ታላቅ አቅሙን እንደተረዳን

የውህደት አዝራሩ ይገኛል።

SonarQubeን እንዴት እንደተገበርን እና ታላቅ አቅሙን እንደተረዳን

በስክሪፕቱ አስተያየቶች ውስጥ በባህሪው ቅርንጫፍ ውስጥ ያሉ ስህተቶች ብዛት ከተፈቀደው በላይ እንደ ሆነ ማየት ይችላሉ ። ስለዚህ ሁሉም ነገር መጥፎ ነው።

SonarQubeን እንዴት እንደተገበርን እና ታላቅ አቅሙን እንደተረዳን

የውህደት አዝራሩ ቀይ ነው። በአሁኑ ጊዜ ለውጦችን ወደ የተሳሳተ ኮድ መስቀል ላይ ምንም ክልከላ የለም፣ ነገር ግን ይህ የሚከናወነው ኃላፊነት ባለው ገንቢ ውሳኔ ነው። ለወደፊቱ, እንደዚህ አይነት ድርጊቶች ወደ ዋናው ቅርንጫፍ እንዳይሰሩ መከላከል ይችላሉ.

SonarQubeን እንዴት እንደተገበርን እና ታላቅ አቅሙን እንደተረዳን

ከስህተቶች ጋር ራስን መቋቋም

በመቀጠል, በስርዓቱ የተገኙትን ሁሉንም ስህተቶች ማረጋገጥ አለብዎት, ምክንያቱም SonarQube ጥብቅ በሆኑ መስፈርቶች መሰረት ይመረምራል. እሱ እንደ ስህተት የሚቆጥረው በእኛ ኮድ ውስጥ አንድ ላይሆን ይችላል። ስለዚህ, ይህ በእውነቱ ስህተት መሆኑን ወይም በእኛ ሁኔታዎች ውስጥ ማረም አስፈላጊ አለመሆኑን ማረጋገጥ እና ልብ ይበሉ። ስለዚህ, የስህተቶችን ብዛት እንቀንሳለን. ከጊዜ በኋላ ስርዓቱ እነዚህን ጥቃቅን ነገሮች ለመረዳት ይማራል.

ምን ላይ ደርሰናል።

ግባችን ኮድ ማረጋገጫን ወደ አውቶሜትድ ማዛወር በእኛ ጉዳይ ጠቃሚ መሆኑን መረዳት ነበር። ውጤቱም የሚጠበቀውን ያህል ኖረ። SonarQube ከምንፈልጋቸው ቋንቋዎች ጋር እንድንሰራ ያስችለናል፣ በቂ ብቃት ያለው ትንታኔ ያደርጋል፣ እና ከገንቢ ምክሮች የመማር አቅም አለው። በአጠቃላይ፣ ከSonarQube ጋር ባደረግነው የመጀመሪያ ተሞክሮ ተደስተናል እናም በዚህ አቅጣጫ የበለጠ ለማደግ አቅደናል። ወደፊት በኮድ ግምገማ ላይ ተጨማሪ ጊዜን እና ጥረትን ለመቆጠብ እና የሰውን መንስኤ በማስወገድ የተሻለ ለማድረግ እንደምንችል እንጠብቃለን። ምናልባት በሂደቱ ውስጥ የመድረክን ድክመቶች እናገኝ ይሆናል, ወይም በተቃራኒው, ይህ ትልቅ አቅም ያለው አሪፍ ነገር መሆኑን በድጋሚ እናረጋግጣለን.

በዚህ የአጠቃላይ እይታ መጣጥፍ፣ ከSonarQube static analyzer ጋር ስለምናውቀው ተነጋገርን። ጥያቄዎች ካሉዎት, እባክዎን በአስተያየቶቹ ውስጥ ይፃፉ. በዚህ ርዕስ ላይ ፍላጎት ካሎት, በአዲሱ ህትመት ውስጥ ሁሉንም ነገር በትክክል እንዴት ማቀናጀት እንደሚቻል እና እንደዚህ አይነት ቼክ ለማድረግ ኮድ እንዴት እንደሚፃፍ በበለጠ ዝርዝር እንገልፃለን.

የጽሑፍ ደራሲ፡- አትንያ

ምንጭ: hab.com

አስተያየት ያክሉ