ڪيئن اسان SonarQube تي عمل ڪيو ۽ ان جي عظيم صلاحيت کي محسوس ڪيو

ڪيئن اسان SonarQube تي عمل ڪيو ۽ ان جي عظيم صلاحيت کي محسوس ڪيو

اسان SonarQube پليٽ فارم کي لاڳو ڪرڻ جو تجربو حصيداري ڪرڻ چاهيون ٿا مسلسل تجزيو ۽ ڪوڊ جي معيار جي ماپ لاءِ DPO سسٽم جي موجوده ترقياتي عملن ۾ (اضافو الميدا ذخيرو ۽ ڪليئرنگ اڪائونٽنگ سسٽم) نيشنل سيٽلمينٽ ڊيپوزٽري جي.

نيشنل سيٽلمينٽ ڊيپوزٽري (ماسڪو ايڪسچينج گروپ آف ڪمپنيون) مالي بنيادي ڍانچي ۾ اهم ڪمپنين مان هڪ آهي، 50 ٽريلين روبل کان وڌيڪ ماليت جي روسي ۽ پرڏيهي جاري ڪندڙن جي سيڪيورٽيز کي محفوظ ڪرڻ ۽ اڪائونٽنگ. سسٽم پاران ڪيل عملن جو وڌندڙ حجم، انهي سان گڏ ڪارڪردگي جي مسلسل توسيع، سسٽم جي اعلي معيار جي سورس ڪوڊ کي برقرار رکڻ جي ضرورت آهي. هن مقصد کي حاصل ڪرڻ لاءِ هڪ اوزار آهي سونار ڪوب جامد تجزيه ڪندڙ. هن آرٽيڪل ۾ اسين بيان ڪنداسين ته اسان جي ڊپارٽمينٽ جي موجوده ترقياتي عملن ۾ سونار ڪوب جامد تجزيي کي بغير ڪنهن حد تائين لاڳو ڪرڻ جي ڪامياب تجربي کي.

کاتي جي باري ۾ مختصر طور

اسان جي قابليت ۾ هيٺيان ماڊل شامل آهن: NSD گراهڪن کي ادائيگيون، اليڪٽرانڪ دستاويزن جي انتظام (EDF)، واپاري مخزن جي پيغامن جي پروسيسنگ (اوور دي-ڪائونٽر ٽرانزيڪشن جي رجسٽريشن)، گراهڪن ۽ NSD جي وچ ۾ اليڪٽرانڪ رابطي جا چينل، ۽ گهڻو ڪجهه. عام طور تي، آپريشنل سرگرمين جي ٽيڪنيڪل پاسي تي تمام گهڻو ڪم ڪرڻو پوندو. اسان درخواستن جي بنياد تي ڪم ڪريون ٿا. آپريشنز آفيسرن کان درخواستون تجزيه نگارن پاران پروسيس ڪيون وينديون آهن: اهي گراهڪ جي گهرج کي گڏ ڪن ٿا ۽ اسان کي انهن جي نظر سان پيش ڪن ٿا ته اهو پروگرام ۾ ڪيئن ٺهڪندڙ هجڻ گهرجي. اڳيون معياري اسڪيم آهي: ڪوڊ ڊولپمينٽ - ٽيسٽ - آزمائشي آپريشن - ڪوڊ جي ترسيل پيداوار جي سرڪٽ کي سڌو ڪسٽمر تائين.

SonarQube ڇو؟

اهو اسان جي ڊپارٽمينٽ جو پهريون تجربو آهي پليٽ فارم لاڳو ڪرڻ ۾ ڪوڊ جي معيار جي ڪنٽرول لاءِ - اڳ ۾ اسان اهو دستي طور ڪيو هو، صرف ڪوڊ جائزو وٺڻ. پر ڪم جي وڌندڙ مقدار هن عمل جي automation جي ضرورت آهي. ان کان علاوه، ٽيم ۾ غير تجربيڪار ملازم پڻ شامل آهن جيڪي مڪمل طور تي اندروني ترقي جي ضابطن کان واقف نه آهن ۽ وڌيڪ غلطيون ڪندا آهن. ڪوڊ جي معيار کي ڪنٽرول ڪرڻ لاء، اهو هڪ مستحڪم تجزيي کي لاڳو ڪرڻ جو فيصلو ڪيو ويو. جيئن ته سونار ڪوب اڳ ۾ ئي ڪجهه اين ايس ڊي سسٽم ۾ استعمال ڪيو ويو، اهو چونڊڻ ۾ گهڻو وقت نه ورتو. اڳي، ٻين شعبن جي ساٿين ان کي الاميڊا سسٽم ۾ مائڪرو سروسز جي ڪوڊ جو تجزيو ڪرڻ لاءِ استعمال ڪيو (NSD جو پنهنجو ذخيرو ۽ ڪليئرنگ اڪائونٽنگ سسٽم)، CFT ۾ (اڪائونٽنگ کي برقرار رکڻ لاءِ هڪ معلوماتي نظام، بيلنس شيٽ، لازمي ۽ اندروني رپورٽنگ تيار ڪرڻ)، ڪجهه ۾. ٻيا نظام. تجربن لاءِ، اسان سونار ڪوب جي مفت ورزن سان شروع ڪرڻ جو فيصلو ڪيو. تنهن ڪري اچو ته اسان جي ڪيس ڏانهن وڃو.

عمل درآمد

اسان وٽ آهي:

  • TeamCity ۾ خودڪار نظام اسيمبلي؛
  • GitLab ۾ فيچر برانچ کان ماسٽر برانچ تائين MergeRequest ذريعي ڪوڊ اپ لوڊ ڪرڻ جو عمل ترتيب ڏنو ويو آھي (ترقي جو عمل GitHub فلو جي مطابق)؛
  • سونار ڪوب، ڊي پي او سسٽم لاءِ ڪوڊ جو تجزيو ڪرڻ لاءِ ترتيب ڏنل شيڊول تي.

اسان جو مقصد: DPO جي CI/CD عملن ۾ خودڪار ڪوڊ تجزيو لاڳو ڪريو.

ترتيب ڏيڻ جي ضرورت آهي: خودڪار طريقي سان ڪوڊ چيڪ ڪرڻ جو عمل هڪ جامد تجزيه ڪندڙ سان هر MergeRequest سان مکيه شاخ ڏانهن.

اهي. ھدف واري تصوير ھيٺ ڏنل آھي: جيئن ئي ڊولپر اپلوڊ ڪري ٿو تبديليون فيچر برانچ تي، ڪوڊ ۾ نئين نقصن لاءِ ھڪ خودڪار چيڪ شروع ڪيو ويندو. جيڪڏهن غلطيون نه آهن، ته تبديلين کي قبول ڪرڻ جي اجازت آهي، ٻي صورت ۾ غلطيون درست ڪرڻ گهرجن. اڳ ۾ ئي ابتدائي اسٽيج تي اسان ڪوڊ ۾ غلطين جي هڪ خاص تعداد جي نشاندهي ڪرڻ جي قابل هئا. سسٽم ۾ تمام لچڪدار سيٽنگون آهن: اهو اهڙي طرح ترتيب ڏئي سگهجي ٿو ته اهو ڊولپرز جي مخصوص ڪمن لاءِ ڪم ڪري ٿو، هر سسٽم ۽ پروگرامنگ انداز لاءِ.

SonarQube ۾ QualityGate قائم ڪرڻ

QualityGate تجزيو اهو آهي جيڪو اسان انٽرنيٽ جي کوٽائي ۾ پڙهون ٿا. شروعات ۾، اسان هڪ مختلف طريقو استعمال ڪيو، وڌيڪ پيچيده ۽، ڪجهه طريقن سان، مڪمل طور تي درست ناهي. پهرين، اسان سونار ڪيوب ذريعي ٻه ڀيرا اسڪين ڪيو: اسان فيچر برانچ ۽ برانچ کي اسڪين ڪيو جتي اسان فيچر برانچ کي ضم ڪرڻ وارا هئاسين، ۽ پوءِ غلطين جي تعداد جو مقابلو ڪيو. اهو طريقو مستحڪم نه هو ۽ هميشه صحيح نتيجو پيدا نه ڪيو. ۽ پوءِ اسان کي معلوم ٿيو ته سونار ڪوب کي ٻه ڀيرا هلائڻ بدران، اسان غلطين جي تعداد جي حد مقرر ڪري سگهون ٿا (QualityGate) ۽ صرف ان برانچ جو تجزيو ڪريون ٿا جيڪو توهان اپلوڊ ڪيو ۽ مقابلو ڪيو.

ڪيئن اسان SonarQube تي عمل ڪيو ۽ ان جي عظيم صلاحيت کي محسوس ڪيو

ھاڻي لاءِ اسان اڃا تائين استعمال ڪري رھيا آھيون بلڪه ابتدائي ڪوڊ جو جائزو. اهو نوٽ ڪرڻ جي قابل آهي ته سونار ڪوب ڪجهه پروگرامنگ ٻولين سان مطابقت ناهي، بشمول ڊيلفي. هن وقت، اسان تجزيو ڪريون ٿا صرف PLSql ڪوڊ اسان جي سسٽم لاءِ.

اهو هن طرح ڪم ڪري ٿو:

  • اسان پنهنجي پروجيڪٽ لاءِ صرف PL/SQL ڪوڊ جو تجزيو ڪريون ٿا.
  • SonarQube کي QualityGate ترتيب ڏنو ويو آهي ته جيئن غلطين جو تعداد هڪ عزم سان نه وڌي.
  • پهرين لانچ تي غلطين جو تعداد 229 هو. جيڪڏهن هڪ ڪم دوران وڌيڪ غلطيون آهن، ته پوء ضم ڪرڻ جي اجازت ناهي.
  • وڌيڪ، جيڪڏهن غلطيون درست ڪيون وينديون آهن، اهو ممڪن ٿيندو QualityGate کي ٻيهر ترتيب ڏيڻ.
  • توھان پڻ شامل ڪري سگھو ٿا نوان نقطا تجزيو لاءِ، مثال طور، ڪوڊ ڪوريج سان گڏ ٽيسٽ وغيره.

ڪم جي اسڪيم:

ڪيئن اسان SonarQube تي عمل ڪيو ۽ ان جي عظيم صلاحيت کي محسوس ڪيو

لکت جي تبصرن مان ظاهر ٿئي ٿو ته فيچر برانچ ۾ غلطين جو تعداد نه وڌيو آهي. تنهنڪري سڀ ڪجهه ٺيڪ آهي.

ڪيئن اسان SonarQube تي عمل ڪيو ۽ ان جي عظيم صلاحيت کي محسوس ڪيو

ضم ڪرڻ جو بٽڻ دستياب ٿي ويندو.

ڪيئن اسان SonarQube تي عمل ڪيو ۽ ان جي عظيم صلاحيت کي محسوس ڪيو

لکت جي تبصرن ۾، توهان ڏسي سگهو ٿا ته فيچر برانچ ۾ غلطين جو تعداد قابل قبول کان وڌيڪ ٿي چڪو آهي. تنهنڪري سڀ ڪجهه خراب آهي.

ڪيئن اسان SonarQube تي عمل ڪيو ۽ ان جي عظيم صلاحيت کي محسوس ڪيو

ضم ڪرڻ جو بٽڻ ڳاڙهو آهي. هن وقت، غلط ڪوڊ جي بنياد تي تبديليون اپلوڊ ڪرڻ تي ڪا به پابندي ناهي، پر اهو ذميوار ڊولپر جي صوابديد تي ڪيو ويندو آهي. مستقبل ۾، توهان اهڙن ڪمن کي مکيه شاخ ۾ شامل ٿيڻ کان روڪي سگهو ٿا.

ڪيئن اسان SonarQube تي عمل ڪيو ۽ ان جي عظيم صلاحيت کي محسوس ڪيو

غلطين تي آزاد ڪم

اڳيون، توهان کي سسٽم پاران معلوم ڪيل سڀني غلطين کي جانچڻ جي ضرورت آهي، ڇاڪاڻ ته سونار ڪوب ان جي سخت معيارن جي مطابق تجزيو ڪري ٿو. ڇا هو سمجهي ٿو هڪ غلطي شايد اصل ۾ اسان جي ڪوڊ ۾ نه هجي. تنهن ڪري، توهان کي جانچڻ ۽ نوٽ ڪرڻ جي ضرورت آهي ته ڇا اهو واقعي هڪ غلطي آهي، يا ڇا اسان جي حالتن ۾ ترميم ڪرڻ جي ڪا ضرورت ناهي. هن طريقي سان اسان غلطين جو تعداد گھٽائي سگهون ٿا. وقت سان گڏ، سسٽم انهن nuances کي سمجهڻ سکندا.

اسان ڇا ڪري آيا آهيون

اسان جو مقصد اهو سمجھڻ هو ته ڇا اسان جي صورت ۾ اهو مشورو هوندو ته ڪوڊ جو جائزو آٽوميشن ڏانهن منتقل ڪيو وڃي. ۽ نتيجو اميدن تي پورو ٿيو. SonarQube اسان کي انهن ٻولين سان ڪم ڪرڻ جي اجازت ڏئي ٿو جن جي اسان کي ضرورت آهي، مناسب تجزيو ڪرڻ، ۽ ڊولپر جي صلاحن کان سکڻ جي صلاحيت آهي. مجموعي طور تي، اسان SonarQube استعمال ڪندي اسان جي پهرين تجربي مان خوش آهيون ۽ هن طرف اڳتي وڌڻ جو منصوبو ٺاهيو. اسان اميد ڪريون ٿا ته مستقبل ۾ اسان ڪوڊ جي نظرثاني تي وڌيڪ وقت ۽ ڪوشش بچائي سگهنداسين ۽ انساني عنصر کي ختم ڪري ان کي بهتر بڻائي سگهنداسين. شايد پروسيس ۾ اسان پليٽ فارم جي گهٽتائي کي ڳولي سگهون ٿا يا، ان جي ابتڙ، اسان کي هڪ ڀيرو ٻيهر قائل ڪيو ويندو ته اها وڏي صلاحيت سان هڪ بهترين شيء آهي.

هن جائزي واري آرٽيڪل ۾ اسان اسان جي واقفيت بابت ڳالهايو سونار ڪوب جامد تجزيه ڪندڙ. جيڪڏھن توھان وٽ سوال آھن، مھرباني ڪري تبصرن ۾ لکو. جيڪڏهن توهان هن موضوع ۾ دلچسپي رکو ٿا، هڪ نئين اشاعت ۾ اسين وڌيڪ تفصيل سان بيان ڪنداسين ته ڪيئن هر شي کي صحيح طريقي سان ترتيب ڏيڻ ۽ ڪوڊ لکڻ لاء اهڙي چيڪ ڪرڻ لاء.

متن جو مصنف: اتنيا

جو ذريعو: www.habr.com

تبصرو شامل ڪريو