SonarQube ஐ எவ்வாறு செயல்படுத்தினோம் மற்றும் அதன் சிறந்த திறனை உணர்ந்தோம்

SonarQube ஐ எவ்வாறு செயல்படுத்தினோம் மற்றும் அதன் சிறந்த திறனை உணர்ந்தோம்

நேஷனல் செட்டில்மென்ட் டெபாசிட்டரியின் டிபிஓ அமைப்பை (அலமேடா டெபாசிட்டரி மற்றும் க்ளியரிங் அக்கவுண்டிங் சிஸ்டத்துடன் கூடுதலாக) உருவாக்குவதற்கான தற்போதைய செயல்முறைகளில், தொடர்ச்சியான பகுப்பாய்வு மற்றும் சோனார்க்யூப் குறியீட்டின் தரத்தை அளவிடுவதற்கான தளத்தை செயல்படுத்துவதில் எங்கள் அனுபவத்தைப் பகிர்ந்து கொள்ள விரும்புகிறோம்.

தேசிய செட்டில்மென்ட் டெபாசிட்டரி (மாஸ்கோ எக்ஸ்சேஞ்ச் குரூப் ஆஃப் கம்பெனிகள்) 50 டிரில்லியன் ரூபிள்களுக்கு மேல் மதிப்புள்ள ரஷ்ய மற்றும் வெளிநாட்டு வழங்குநர்களின் பத்திரங்களை சேமித்து பதிவு செய்யும் முக்கிய நிதி உள்கட்டமைப்பு நிறுவனங்களில் ஒன்றாகும். கணினியால் மேற்கொள்ளப்படும் செயல்பாடுகளின் வளர்ந்து வரும் அளவு, அத்துடன் செயல்பாட்டில் தொடர்ச்சியான அதிகரிப்பு, அமைப்புகளின் மூலக் குறியீட்டின் உயர் தரத்தை பராமரிக்க வேண்டும். இந்த இலக்கை அடைவதற்கான கருவிகளில் ஒன்று SonarQube நிலையான பகுப்பாய்வி ஆகும். இந்த கட்டுரையில், எங்கள் துறையின் தற்போதைய வளர்ச்சி செயல்முறைகளில் SonarQube நிலையான பகுப்பாய்வியை தடையின்றி செயல்படுத்துவதன் வெற்றிகரமான அனுபவத்தை விவரிக்கிறோம்.

துறை பற்றி சுருக்கமாக

எங்கள் திறனில் பின்வரும் தொகுதிகள் அடங்கும்: NSD கிளையண்டுகளுக்கு பணம் செலுத்துதல், மின்னணு ஆவண மேலாண்மை (EDF), வர்த்தக களஞ்சிய செய்திகளின் செயலாக்கம் (மாற்று பரிமாற்ற பரிவர்த்தனைகளின் பதிவு), வாடிக்கையாளர்களுக்கும் NSD க்கும் இடையிலான மின்னணு தொடர்பு சேனல்கள் மற்றும் பல. பொதுவாக, செயல்பாடுகளின் தொழில்நுட்ப பக்கத்தில் ஒரு பெரிய அடுக்கு வேலை. நாங்கள் விண்ணப்பங்களின் அடிப்படையில் வேலை செய்கிறோம். சொல்பவர்களின் விண்ணப்பங்கள் ஆய்வாளர்களால் செயலாக்கப்படுகின்றன: அவர்கள் வாடிக்கையாளர் தேவைகளைச் சேகரித்து, அது நிரலுக்கு எவ்வாறு பொருந்த வேண்டும் என்பது பற்றிய அவர்களின் பார்வையை எங்களுக்கு முன்வைக்கின்றனர். மேலும், நிலையான திட்டம்: குறியீடு மேம்பாடு - சோதனை - சோதனை செயல்பாடு - நேரடி வாடிக்கையாளருக்கு உற்பத்தி சுற்றுக்கு குறியீட்டை வழங்குதல்.

ஏன் SonarQube?

குறியீடு தரக் கட்டுப்பாட்டுக்கான தளத்தை செயல்படுத்துவதில் இது எங்கள் துறையின் முதல் அனுபவம் - முன்பு நாங்கள் அதை கைமுறையாக செய்தோம், குறியீடு மதிப்பாய்வு மட்டுமே. ஆனால் வளர்ந்து வரும் வேலையின் அளவு இந்த செயல்முறையின் ஆட்டோமேஷன் தேவைப்படுகிறது. கூடுதலாக, குழுவில் அனுபவமற்ற ஊழியர்களும் உள்ளனர், அவர்கள் உள் மேம்பாட்டு விதிமுறைகளை முழுமையாக அறிந்திருக்கவில்லை மற்றும் அதிக தவறுகளைச் செய்ய முனைகிறார்கள். குறியீட்டின் தரத்தை கட்டுப்படுத்த, நிலையான பகுப்பாய்வியை செயல்படுத்த முடிவு செய்யப்பட்டது. SonarQube ஏற்கனவே சில NSD அமைப்புகளில் பயன்படுத்தப்பட்டதால், அதை தேர்வு செய்ய அதிக நேரம் எடுக்கவில்லை. முன்னதாக, பிற பிரிவுகளைச் சேர்ந்த சக ஊழியர்கள், அலமேடா அமைப்பில் (என்எஸ்டியின் சொந்த டெபாசிட்டரி மற்றும் க்ளியரிங் அக்கவுண்டிங் சிஸ்டம்), சிஎஃப்டியில் (கணக்கியல், இருப்பு, கட்டாய மற்றும் உள் அறிக்கை தயாரித்தல் ஆகியவற்றுக்கான தகவல் அமைப்பு) மைக்ரோ சர்வீஸ் குறியீட்டை பகுப்பாய்வு செய்ய இதைப் பயன்படுத்தினர். அமைப்புகள். பரிசோதனைக்காக, SonarQube இன் இலவச பதிப்பில் தொடங்க முடிவு செய்தோம். எனவே எங்கள் விஷயத்திற்கு செல்லலாம்.

செயல்படுத்தும் செயல்முறை

எங்களிடம் உள்ளது:

  • TeamCity இல் கணினியின் தானியங்கி அசெம்பிளி;
  • ஒரு அம்சக் கிளையிலிருந்து GitLab இல் உள்ள முதன்மைக் கிளைக்கு MergeRequest வழியாக குறியீட்டைப் பதிவேற்றும் செயல்முறையை அமைக்கவும் (GitHub Flow இன் படி வளர்ச்சி செயல்முறை);
  • சோனார்க்யூப் டிபிஓ அமைப்பிற்கான குறியீட்டை அட்டவணையில் பகுப்பாய்வு செய்ய உள்ளமைக்கப்பட்டது.

எங்கள் இலக்கு: AVE இன் CI/CD செயல்முறைகளில் தானியங்கி குறியீடு பகுப்பாய்வை செயல்படுத்தவும்.

தனிப்பயனாக்க வேண்டும்: பிரதான கிளைக்கான ஒவ்வொரு MergeRequest உடன் நிலையான பகுப்பாய்வி மூலம் குறியீட்டை தானாகவே சரிபார்க்கும் செயல்முறை.

அந்த. இலக்கு படம் பின்வருமாறு: டெவலப்பர் அம்சக் கிளையில் மாற்றங்களைப் பதிவேற்றியவுடன், குறியீட்டில் புதிய பிழைகளுக்கான தானியங்கி சரிபார்ப்பு தொடங்குகிறது. பிழைகள் இல்லை என்றால், மாற்றங்கள் ஏற்றுக்கொள்ள அனுமதிக்கப்படும், இல்லையெனில் பிழைகள் திருத்தப்பட வேண்டும். ஏற்கனவே ஆரம்ப கட்டத்தில், குறியீட்டில் குறிப்பிட்ட எண்ணிக்கையிலான பிழைகளை அடையாளம் காண முடிந்தது. கணினி மிகவும் நெகிழ்வான அமைப்புகளைக் கொண்டுள்ளது: இது டெவலப்பர்களின் குறிப்பிட்ட பணிகளுக்கு, ஒவ்வொரு கணினி மற்றும் நிரலாக்க பாணிக்கும் வேலை செய்யும் வகையில் கட்டமைக்கப்படலாம்.

SonarQube இல் QualityGate ஐ கட்டமைக்கிறது

QualityGate பகுப்பாய்வு என்பது இணையத்தின் குடலில் நாம் படிக்கும் ஒரு விஷயம். ஆரம்பத்தில், நாங்கள் வேறுபட்ட அணுகுமுறையைப் பயன்படுத்தினோம், மிகவும் சிக்கலானது மற்றும் சில வழிகளில், முற்றிலும் சரியானது அல்ல. முதலில், SonarQube மூலம் இரண்டு முறை ஸ்கேன் செய்தோம்: அம்சக் கிளையையும், அம்சக் கிளையை இணைக்கப் போகும் கிளையையும் ஸ்கேன் செய்தோம், பின்னர் பிழைகளின் எண்ணிக்கையை ஒப்பிட்டுப் பார்த்தோம். இந்த முறை நிலையானது அல்ல, எப்போதும் சரியான முடிவைக் கொடுக்கவில்லை. SonarQube ஐ இரண்டு முறை இயக்குவதற்குப் பதிலாக, நீங்கள் செய்த பிழைகளின் எண்ணிக்கையில் (QualityGate) வரம்பை நிர்ணயித்து, நீங்கள் பதிவேற்றும் மற்றும் ஒப்பிடும் கிளையை மட்டும் பகுப்பாய்வு செய்யலாம் என்பதை நாங்கள் அறிந்தோம்.

SonarQube ஐ எவ்வாறு செயல்படுத்தினோம் மற்றும் அதன் சிறந்த திறனை உணர்ந்தோம்

இப்போதைக்கு, நாங்கள் இன்னும் பழமையான குறியீடு சரிபார்ப்பைப் பயன்படுத்துகிறோம். டெல்பி உட்பட சில நிரலாக்க மொழிகளுடன் SonarQube இணக்கமாக இல்லை என்பதை கவனத்தில் கொள்ள வேண்டும். இந்த நேரத்தில், எங்கள் கணினியில், நாங்கள் PLSql குறியீட்டை மட்டுமே பகுப்பாய்வு செய்கிறோம்.

இது இப்படி வேலை செய்கிறது:

  • எங்கள் திட்டத்திற்கான PL/SQL குறியீட்டை மட்டுமே நாங்கள் பகுப்பாய்வு செய்கிறோம்.
  • QualityGate ஆனது SonarQube இல் கட்டமைக்கப்பட்டுள்ளது, அதனால் பிழைகளின் எண்ணிக்கை உறுதியுடன் அதிகரிக்காது.
  • முதல் ஓட்டத்தில் பிழைகளின் எண்ணிக்கை 229. உறுதியின் போது அதிக பிழைகள் இருந்தால், ஒன்றிணைத்தல் அனுமதிக்கப்படாது.
  • மேலும், பிழைகள் திருத்தத்திற்கு உட்பட்டு, QualityGate ஐ மீண்டும் கட்டமைக்க முடியும்.
  • பகுப்பாய்விற்கான புதிய உருப்படிகளையும் நீங்கள் சேர்க்கலாம், எடுத்துக்காட்டாக, சோதனைகளுடன் கூடிய குறியீடு கவரேஜ் போன்றவை.

வேலை திட்டம்:

SonarQube ஐ எவ்வாறு செயல்படுத்தினோம் மற்றும் அதன் சிறந்த திறனை உணர்ந்தோம்

ஸ்கிரிப்ட்டின் கருத்துகளில், அம்சக் கிளையில் பிழைகளின் எண்ணிக்கை அதிகரிக்கவில்லை என்பதைக் காணலாம். அதனால் எல்லாம் ஓகே.

SonarQube ஐ எவ்வாறு செயல்படுத்தினோம் மற்றும் அதன் சிறந்த திறனை உணர்ந்தோம்

ஒன்றிணைத்தல் பொத்தான் கிடைக்கும்.

SonarQube ஐ எவ்வாறு செயல்படுத்தினோம் மற்றும் அதன் சிறந்த திறனை உணர்ந்தோம்

ஸ்கிரிப்ட்டின் கருத்துகளில், அம்சக் கிளையில் உள்ள பிழைகளின் எண்ணிக்கை அனுமதிக்கப்பட்டதை விட அதிகமாகிவிட்டதைக் காணலாம். எனவே எல்லாம் மோசமாக உள்ளது.

SonarQube ஐ எவ்வாறு செயல்படுத்தினோம் மற்றும் அதன் சிறந்த திறனை உணர்ந்தோம்

ஒன்றிணைத்தல் பொத்தான் சிவப்பு. இந்த நேரத்தில், தவறான குறியீட்டில் மாற்றங்களைப் பதிவேற்றுவதில் எந்தத் தடையும் இல்லை, ஆனால் இது பொறுப்பான டெவலப்பரின் விருப்பப்படி செய்யப்படுகிறது. எதிர்காலத்தில், பிரதான கிளைக்கு இதுபோன்ற உறுதிமொழிகள் செய்யப்படுவதை நீங்கள் தடுக்கலாம்.

SonarQube ஐ எவ்வாறு செயல்படுத்தினோம் மற்றும் அதன் சிறந்த திறனை உணர்ந்தோம்

பிழைகளுடன் சுயமாக கையாளுதல்

அடுத்து, கணினியால் கண்டறியப்பட்ட அனைத்து பிழைகளையும் நீங்கள் சரிபார்க்க வேண்டும், ஏனெனில் SonarQube அதன் கடுமையான தரநிலைகளின்படி பகுப்பாய்வு செய்கிறது. அவர் பிழையாகக் கருதுவது உண்மையில் எங்கள் குறியீட்டில் ஒன்றாக இருக்காது. எனவே, இது உண்மையில் தவறா, அல்லது எங்கள் நிபந்தனைகளில் திருத்த வேண்டிய அவசியமில்லையா என்பதை நீங்கள் சரிபார்த்து கவனிக்க வேண்டும். இதனால், பிழைகளின் எண்ணிக்கையை குறைக்கிறோம். காலப்போக்கில், கணினி இந்த நுணுக்கங்களைப் புரிந்துகொள்ள கற்றுக் கொள்ளும்.

நாம் என்ன வந்தோம்

குறியீடு சரிபார்ப்பை ஆட்டோமேஷனுக்கு மாற்றுவது எங்கள் விஷயத்தில் உகந்ததா என்பதைப் புரிந்துகொள்வதே எங்கள் இலக்காக இருந்தது. மற்றும் முடிவு எதிர்பார்ப்புகளுக்கு ஏற்ப வாழ்ந்தது. SonarQube நமக்குத் தேவையான மொழிகளுடன் பணிபுரிய அனுமதிக்கிறது, மிகவும் திறமையான பகுப்பாய்வு செய்கிறது மற்றும் டெவலப்பர் உதவிக்குறிப்புகளிலிருந்து கற்றுக்கொள்ளும் திறனைக் கொண்டுள்ளது. பொதுவாக, SonarQube உடனான எங்கள் முதல் அனுபவத்தில் நாங்கள் மகிழ்ச்சியடைகிறோம், மேலும் இந்த திசையில் மேலும் மேம்படுத்த திட்டமிட்டுள்ளோம். எதிர்காலத்தில் குறியீட்டை மதிப்பாய்வு செய்வதில் அதிக நேரத்தையும் முயற்சியையும் சேமித்து, மனித காரணியை அகற்றுவதன் மூலம் அதைச் சிறப்பாகச் செய்ய முடியும் என்று எதிர்பார்க்கிறோம். ஒருவேளை செயல்பாட்டில் நாம் இயங்குதளத்தின் குறைபாடுகளைக் கண்டுபிடிப்போம், அல்லது, மாறாக, இது ஒரு சிறந்த ஆற்றல் வாய்ந்த விஷயம் என்பதை மீண்டும் உறுதி செய்வோம்.

இந்த மேலோட்டக் கட்டுரையில், SonarQube நிலையான பகுப்பாய்வியுடன் எங்களுக்குத் தெரிந்ததைப் பற்றி பேசினோம். உங்களிடம் கேள்விகள் இருந்தால், கருத்துகளில் எழுதவும். இந்த தலைப்பில் நீங்கள் ஆர்வமாக இருந்தால், புதிய வெளியீட்டில் எல்லாவற்றையும் சரியாக அமைப்பது மற்றும் அத்தகைய சரிபார்ப்புக்கு குறியீட்டை எழுதுவது எப்படி என்பதை இன்னும் விரிவாக விவரிப்போம்.

உரை ஆசிரியர்: அதன்யா

ஆதாரம்: www.habr.com

கருத்தைச் சேர்