ہم نے سونار کیوب کو کیسے نافذ کیا اور اس کی عظیم صلاحیت کو محسوس کیا۔

ہم نے سونار کیوب کو کیسے نافذ کیا اور اس کی عظیم صلاحیت کو محسوس کیا۔

ہم نیشنل سیٹلمنٹ ڈپازٹری کے ڈی پی او سسٹم (المیڈا ڈپازٹری اور کلیئرنگ اکاؤنٹنگ سسٹم کے علاوہ) کے موجودہ ترقیاتی عمل میں کوڈ کے معیار کے مسلسل تجزیہ اور پیمائش کے لیے سونار کیوب پلیٹ فارم کو لاگو کرنے کے اپنے تجربے کا اشتراک کرنا چاہتے ہیں۔

نیشنل سیٹلمنٹ ڈپازٹری (ماسکو ایکسچینج گروپ آف کمپنیز) مالیاتی ڈھانچے کی کلیدی کمپنیوں میں سے ایک ہے، جو کہ 50 ٹریلین روبل سے زیادہ مالیت کی روسی اور غیر ملکی جاری کنندگان کی سیکیورٹیز کا ذخیرہ اور اکاؤنٹنگ کرتی ہے۔ سسٹم کے ذریعہ کئے جانے والے آپریشنز کے بڑھتے ہوئے حجم کے ساتھ ساتھ فعالیت کی مسلسل توسیع کے لئے سسٹم کے اعلیٰ معیار کے سورس کوڈ کو برقرار رکھنے کی ضرورت ہے۔ اس مقصد کو حاصل کرنے کا ایک ٹول سونار کیوب سٹیٹک اینالائزر ہے۔ اس مضمون میں ہم اپنے محکمہ کے موجودہ ترقیاتی عمل میں سونار کیوب سٹیٹک اینالائزر کو بغیر کسی رکاوٹ کے لاگو کرنے کے کامیاب تجربے کو بیان کریں گے۔

محکمہ کے بارے میں مختصراً

ہماری قابلیت میں مندرجہ ذیل ماڈیولز شامل ہیں: NSD کلائنٹس کو ادائیگیاں، الیکٹرانک دستاویز کا انتظام (EDF)، تجارتی ذخیرے کے پیغامات کی پروسیسنگ (اوور دی کاؤنٹر ٹرانزیکشنز کی رجسٹریشن)، کلائنٹس اور NSD کے درمیان الیکٹرانک تعامل کے چینلز، اور بہت کچھ۔ عام طور پر، آپریشنل سرگرمیوں کے تکنیکی پہلو پر بہت زیادہ کام کرنا ہے۔ ہم درخواستوں کی بنیاد پر کام کرتے ہیں۔ آپریشنز آفیسرز کی درخواستوں پر تجزیہ کاروں کے ذریعے کارروائی کی جاتی ہے: وہ گاہک کی ضروریات کو جمع کرتے ہیں اور ہمیں اپنے وژن کے ساتھ پیش کرتے ہیں کہ اسے پروگرام میں کیسے فٹ ہونا چاہیے۔ اگلا معیاری اسکیم ہے: کوڈ کی ترقی - جانچ - آزمائشی آپریشن - کوڈ کی ترسیل براہ راست صارف کو پروڈکشن سرکٹ میں۔

سونار کیوب کیوں؟

کوڈ کوالٹی کنٹرول کے لیے ایک پلیٹ فارم کو نافذ کرنے میں ہمارے محکمہ کا یہ پہلا تجربہ ہے - اس سے قبل ہم نے اسے دستی طور پر کیا تھا، صرف کوڈ کے جائزے کرتے تھے۔ لیکن کام کے بڑھتے ہوئے حجم کے لیے اس عمل کے آٹومیشن کی ضرورت ہے۔ اس کے علاوہ، ٹیم میں ناتجربہ کار ملازمین بھی شامل ہیں جو اندرونی ترقی کے ضوابط سے پوری طرح واقف نہیں ہیں اور زیادہ غلطیاں کرنے کا رجحان رکھتے ہیں۔ کوڈ کی کوالٹی کو کنٹرول کرنے کے لیے سٹیٹک اینالائزر لگانے کا فیصلہ کیا گیا۔ چونکہ سونار کیوب پہلے ہی کچھ NSD سسٹمز میں استعمال ہو چکا تھا، اس لیے اسے منتخب کرنے میں زیادہ وقت نہیں لگا۔ اس سے پہلے، دوسرے محکموں کے ساتھیوں نے اسے المیڈا سسٹم (این ایس ڈی کا اپنا ڈپازٹری اور کلیئرنگ اکاؤنٹنگ سسٹم) میں مائیکرو سروسز کے کوڈ کا تجزیہ کرنے کے لیے استعمال کیا، سی ایف ٹی (اکاؤنٹنگ، بیلنس شیٹس، لازمی اور اندرونی رپورٹنگ کی تیاری کے لیے ایک معلوماتی نظام) میں، کچھ میں۔ دوسرے نظام تجربات کے لیے، ہم نے سونار کیوب کے مفت ورژن سے شروع کرنے کا فیصلہ کیا۔ تو آئیے اپنے کیس کی طرف چلتے ہیں۔

عمل درآمد کا عمل

ہمارے پاس ہے۔:

  • TeamCity میں خودکار نظام اسمبلی؛
  • GitLab میں فیچر برانچ سے ماسٹر برانچ میں MergeRequest کے ذریعے کوڈ اپ لوڈ کرنے کا عمل ترتیب دیا گیا ہے (گٹ ہب فلو کے مطابق ترقی کا عمل)؛
  • سونار کیوب، شیڈول کے مطابق ڈی پی او سسٹم کے کوڈ کا تجزیہ کرنے کے لیے ترتیب دیا گیا ہے۔

ہمارا مقصد: DPO کے CI/CD کے عمل میں خودکار کوڈ تجزیہ کو نافذ کریں۔

ترتیب دینے کی ضرورت ہے۔: مرکزی برانچ میں ہر MergeRequest کے ساتھ ایک جامد تجزیہ کار کے ساتھ کوڈ کو خود بخود چیک کرنے کا عمل۔

وہ. ہدف کی تصویر مندرجہ ذیل ہے: جیسے ہی ڈویلپر فیچر برانچ میں تبدیلیاں اپ لوڈ کرتا ہے، کوڈ میں نئی ​​غلطیوں کی خودکار جانچ شروع کردی جاتی ہے۔ اگر کوئی غلطیاں نہیں ہیں، تو تبدیلیوں کو قبول کرنے کی اجازت ہے، بصورت دیگر غلطیوں کو درست کرنا پڑے گا۔ پہلے سے ہی ابتدائی مرحلے میں ہم کوڈ میں غلطیوں کی ایک خاص تعداد کی نشاندہی کرنے میں کامیاب ہو گئے تھے۔ سسٹم میں بہت لچکدار سیٹنگز ہیں: اسے اس طرح ترتیب دیا جا سکتا ہے کہ یہ ہر سسٹم اور پروگرامنگ اسٹائل کے لیے ڈویلپرز کے مخصوص کاموں کے لیے کام کرے۔

سونار کیوب میں کوالٹی گیٹ کا قیام

کوالٹی گیٹ تجزیہ ایک ایسی چیز ہے جسے ہم انٹرنیٹ کی گہرائیوں میں پڑھتے ہیں۔ شروع میں، ہم نے ایک مختلف طریقہ استعمال کیا، زیادہ پیچیدہ اور، کچھ طریقوں سے، مکمل طور پر درست نہیں۔ سب سے پہلے، ہم نے SonarQube کے ذریعے دو بار اسکین چلایا: ہم نے فیچر برانچ اور اس برانچ کو اسکین کیا جہاں ہم فیچر برانچ کو ضم کرنے جا رہے تھے، اور پھر غلطیوں کی تعداد کا موازنہ کیا۔ یہ طریقہ مستحکم نہیں تھا اور ہمیشہ صحیح نتیجہ نہیں دیتا تھا۔ اور پھر ہمیں پتہ چلا کہ سونار کیوب کو دو بار چلانے کے بجائے، ہم غلطیوں کی تعداد (کوالٹی گیٹ) کی حد مقرر کر سکتے ہیں اور صرف اس برانچ کا تجزیہ کر سکتے ہیں جسے آپ اپ لوڈ اور موازنہ کرتے ہیں۔

ہم نے سونار کیوب کو کیسے نافذ کیا اور اس کی عظیم صلاحیت کو محسوس کیا۔

ابھی کے لیے ہم اب بھی ایک قدیم کوڈ کا جائزہ استعمال کر رہے ہیں۔ یہ بات قابل غور ہے کہ سونار کیوب کچھ پروگرامنگ زبانوں کے ساتھ مطابقت نہیں رکھتا ہے، بشمول Delphi۔ اس وقت، ہم اپنے سسٹم کے لیے صرف PLSql کوڈ کا تجزیہ کرتے ہیں۔

یہ اس طرح کام کرتا ہے:

  • ہم اپنے پروجیکٹ کے لیے صرف PL/SQL کوڈ کا تجزیہ کرتے ہیں۔
  • سونار کیوب نے کوالٹی گیٹ کو کنفیگر کیا ہے تاکہ غلطیوں کی تعداد کمٹمنٹ کے ساتھ نہ بڑھے۔
  • پہلی لانچ میں غلطیوں کی تعداد 229 تھی۔ اگر کسی کمٹ کے دوران زیادہ خرابیاں ہوں تو انضمام کی اجازت نہیں ہے۔
  • مزید، اگر غلطیوں کو درست کیا جاتا ہے، تو کوالٹی گیٹ کو دوبارہ ترتیب دینا ممکن ہوگا۔
  • آپ تجزیہ کے لیے نئے پوائنٹس بھی شامل کر سکتے ہیں، مثال کے طور پر، ٹیسٹ کے ساتھ کوڈ کوریج وغیرہ۔

کام کی اسکیم:

ہم نے سونار کیوب کو کیسے نافذ کیا اور اس کی عظیم صلاحیت کو محسوس کیا۔

اسکرپٹ کے تبصرے ظاہر کرتے ہیں کہ فیچر برانچ میں غلطیوں کی تعداد میں اضافہ نہیں ہوا ہے۔ تو سب کچھ ٹھیک ہے۔

ہم نے سونار کیوب کو کیسے نافذ کیا اور اس کی عظیم صلاحیت کو محسوس کیا۔

ضم کرنے کا بٹن دستیاب ہو جاتا ہے۔

ہم نے سونار کیوب کو کیسے نافذ کیا اور اس کی عظیم صلاحیت کو محسوس کیا۔

اسکرپٹ کے تبصروں میں، آپ دیکھ سکتے ہیں کہ فیچر برانچ میں غلطیوں کی تعداد قابل قبول سے زیادہ ہو گئی ہے۔ تو سب کچھ برا ہے۔

ہم نے سونار کیوب کو کیسے نافذ کیا اور اس کی عظیم صلاحیت کو محسوس کیا۔

ضم کرنے کا بٹن سرخ ہے۔ اس وقت، غلط کوڈ کی بنیاد پر تبدیلیاں اپ لوڈ کرنے پر کوئی ممانعت نہیں ہے، لیکن یہ ذمہ دار ڈویلپر کی صوابدید پر کیا جاتا ہے۔ مستقبل میں، آپ اس طرح کے وعدوں کو مین برانچ میں شامل ہونے سے روک سکتے ہیں۔

ہم نے سونار کیوب کو کیسے نافذ کیا اور اس کی عظیم صلاحیت کو محسوس کیا۔

غلطیوں پر آزادانہ کام

اس کے بعد، آپ کو سسٹم کے ذریعے پائی جانے والی تمام خرابیوں کو چیک کرنے کی ضرورت ہے، کیونکہ سونار کیوب اپنے سخت معیارات کے مطابق تجزیہ کرتا ہے۔ جس چیز کو وہ غلطی سمجھتا ہے وہ درحقیقت ہمارے کوڈ میں ایک نہ ہو۔ لہذا، آپ کو چیک کرنے اور نوٹ کرنے کی ضرورت ہے کہ آیا یہ واقعی ایک غلطی ہے، یا ہماری شرائط میں ترمیم کرنے کی ضرورت نہیں ہے۔ اس طرح ہم غلطیوں کی تعداد کو کم کرتے ہیں۔ وقت گزرنے کے ساتھ، نظام ان باریکیوں کو سمجھنا سیکھ جائے گا۔

ہم کیا کرنے آئے ہیں

ہمارا مقصد یہ سمجھنا تھا کہ آیا ہمارے معاملے میں کوڈ کا جائزہ آٹومیشن میں منتقل کرنا مناسب ہوگا۔ اور نتیجہ توقعات پر پورا اترا۔ سونار کیوب ہمیں اپنی ضرورت کی زبانوں کے ساتھ کام کرنے کی اجازت دیتا ہے، کافی قابل تجزیہ کرتا ہے، اور ڈویلپر کی تجاویز سے سیکھنے کی صلاحیت رکھتا ہے۔ مجموعی طور پر، ہم سونار کیوب کے استعمال کے اپنے پہلے تجربے سے خوش ہیں اور اس سمت میں مزید ترقی کرنے کا ارادہ رکھتے ہیں۔ ہم امید کرتے ہیں کہ مستقبل میں ہم کوڈ کے جائزے پر زیادہ وقت اور محنت بچانے اور انسانی عنصر کو ختم کر کے اسے بہتر بنانے کے قابل ہو جائیں گے۔ شاید اس عمل میں ہم پلیٹ فارم کی کوتاہیوں کو تلاش کر لیں گے یا اس کے برعکس ہمیں ایک بار پھر یقین ہو جائے گا کہ یہ بڑی صلاحیت کے ساتھ ایک عمدہ چیز ہے۔

اس جائزے کے مضمون میں ہم نے سونار کیوب سٹیٹک اینالائزر کے ساتھ اپنی واقفیت کے بارے میں بات کی۔ اگر آپ کے سوالات ہیں، تو براہ کرم تبصرے میں لکھیں۔ اگر آپ اس موضوع میں دلچسپی رکھتے ہیں تو، ایک نئی اشاعت میں ہم مزید تفصیل سے بیان کریں گے کہ کس طرح ہر چیز کو درست طریقے سے ترتیب دیا جائے اور اس طرح کی جانچ کرنے کے لیے کوڈ لکھیں۔

متن کا مصنف: اتنیا

ماخذ: www.habr.com

نیا تبصرہ شامل کریں