جامد تحلیل - له پیژندنې څخه ادغام ته

د نه ختمیدونکي کوډ بیاکتنې یا ډیبګ کولو څخه ستړي شوي ، ځینې وختونه تاسو فکر کوئ چې څنګه خپل ژوند ساده کړئ. او د یو څه لټون کولو وروسته، یا په ناڅاپي توګه د هغې په ټکر کې، تاسو کولی شئ د جادو جمله وګورئ: "جامد تحلیل". راځئ وګورو چې دا څه دي او دا څنګه ستاسو د پروژې سره اړیکه کولی شي.

جامد تحلیل - له پیژندنې څخه ادغام ته
په حقیقت کې، که تاسو په هره عصري ژبه کې لیکئ، نو بیا، حتی د پوهیدو پرته، تاسو یې د جامد تحلیل له لارې پرمخ وړئ. حقیقت دا دی چې هر عصري کمپیلر چمتو کوي، که څه هم یو کوچنی، په کوډ کې د احتمالي ستونزو په اړه خبرداری ورکوي. د مثال په توګه، کله چې په بصری سټوډیو کې د C++ کوډ تالیف کول ممکن تاسو لاندې وګورئ:

جامد تحلیل - له پیژندنې څخه ادغام ته
پدې محصول کې موږ ګورو چې متغیر var هیڅکله په فعالیت کې هیڅ ځای نه کارول شوی. نو په حقیقت کې، تاسو تقریبا تل یو ساده جامد کوډ تحلیل کوونکی کارولی. په هرصورت، د مسلکي تحلیل کونکو برعکس لکه پوښښ، کلوک ورک یا PVS-Studio، د تالیف کونکي لخوا چمتو شوي اخطارونه ممکن یوازې د ستونزو کوچنۍ لړۍ په ګوته کړي.

که تاسو د ډاډ لپاره نه پوهیږئ جامد تحلیل څه شی دی او څنګه یې پلي کړئ، دا مقاله ولولئد دې میتودولوژي په اړه نور معلومات زده کړئ.

تاسو ولې جامد تحلیل ته اړتیا لرئ؟

په لنډه توګه: سرعت او ساده کول.

جامد تحلیل تاسو ته اجازه درکوي چې په کوډ کې ډیری بیلابیلې ستونزې ومومئ: د ژبې ساختمانونو له غلط استعمال څخه تر ټایپو پورې. د مثال په توګه، پرځای

auto x = obj.x;
auto y = obj.y;
auto z = obj.z;

تاسو لاندې کوډ لیکلی:

auto x = obj.x;
auto y = obj.y;
auto z = obj.x;

لکه څنګه چې تاسو لیدلی شئ، په وروستۍ کرښه کې یو ټایپ شتون لري. د مثال په توګه، PVS-Studio لاندې خبرداری ورکوي:

V537 د 'y' توکي د کارونې سموالي بیاکتنې ته پام وکړئ.

که تاسو غواړئ خپل لاسونه په دې تېروتنه کې واچوئ، د کمپیلر اکسپلورر کې یو چمتو شوی مثال هڅه وکړئ: *ژړل*.

او لکه څنګه چې تاسو پوهیږئ ، دا تل امکان نلري چې سمدلاسه د کوډ داسې برخو ته پاملرنه وکړئ ، او د دې له امله ، تاسو کولی شئ د ښه ساعت لپاره ډیبګ کولو کې ناست شئ ، حیران یاست چې ولې هرڅه دومره عجیب کار کوي.

په هرصورت، دا په څرګنده توګه یوه تېروتنه ده. څه شی که چیرې پرمخ وړونکي د فرعي غوره کوډ لیکلی وي ځکه چې هغه د ژبې ځینې لنډیز هیر کړی؟ یا حتی په کوډ کې یې اجازه ورکړې نا تعریف شوی چلند؟ له بده مرغه، دا ډول قضیې په بشپړه توګه عادي دي او د وخت لویه برخه په ځانګړې توګه د کاري کوډ په ډیبګ کولو کې مصرف کیږي چې ټایپونه، عادي تېروتنې یا نا تعریف شوي چلند لري.

دا د دې شرایطو لپاره دی چې جامد تحلیل څرګند شو. دا د پراختیا کونکي لپاره یو معاون دی چې په کوډ کې به مختلف ستونزې په ګوته کړي او په اسنادو کې به تشریح کړي چې ولې د دې لارې لیکل اړین ندي ، دا څه لامل کیدی شي او څنګه یې حل کړي. دلته د هغه څه یوه بیلګه ده چې ممکن ورته ښکاري: *ژړل*.

تاسو کولی شئ ډیرې په زړه پورې غلطۍ ومومئ چې شنونکی کولی شي په مقالو کې کشف کړي:

اوس چې تاسو دا مواد لوستلي او د جامد تحلیل ګټو باندې قانع یاست، تاسو ممکن دا هڅه وکړئ. مګر له کوم ځای څخه پیل شي؟ ستاسو په اوسنۍ پروژه کې نوې وسیله څنګه یوځای کول؟ او څنګه به هغه ته ټیم معرفي کړي؟ تاسو به د دې پوښتنو ځوابونه لاندې ومومئ.

یادونه: جامد تحلیل د کوډ بیاکتنې په څیر داسې ګټور شی بدل یا لغوه نه کوي. دا د دې پروسې بشپړوي، د ټایپونو، غلطۍ، او خطرناکو ډیزاینونو په پام کې نیولو او سمولو کې مرسته کوي. دا خورا ګټور دی چې د الګوریتمونو او کوډ وضاحت باندې د کوډ بیاکتنې تمرکز وکړئ ، د دې پرځای چې د غلط ځای شوي قوس په لټه کې شئ یا د ستړيا پرتله کولو افعال ولولئ.

0. د وسیلې پیژندل

دا ټول د آزموینې نسخه سره پیل کیږي. په حقیقت کې ، دا ستونزمنه ده چې پریکړه وکړئ چې د پراختیا پروسې ته یو څه معرفي کړئ که تاسو مخکې هیڅکله دا وسیله ژوندۍ نه وي لیدلې. له همدې امله ، لومړی شی چې تاسو یې باید وکړئ ډاونلوډ دی ازمېښتي نسخه.

تاسو به پدې مرحله کې څه زده کړئ:

  • له شنونکي سره د تعامل لارې کومې دي؛
  • ایا شنونکی ستاسو د پراختیا چاپیریال سره مطابقت لري؟
  • اوس مهال ستاسو په پروژو کې کومې ستونزې شته؟

وروسته لدې چې تاسو هرڅه چې تاسو ورته اړتیا لرئ نصب کړئ ، لومړی شی چې تاسو یې باید وکړئ د ټولې پروژې تحلیل پرمخ وړئ (Windows, لینوکس, macOS). په بصری سټوډیو کې د PVS-Studio په قضیه کې تاسو به ورته عکس وګورئ (د کلیک کولو وړ):

جامد تحلیل - له پیژندنې څخه ادغام ته
حقیقت دا دی چې جامد شنونکي معمولا د لوی کوډ بیس سره د پروژو لپاره لوی شمیر اخطارونه خپروي. د دې ټولو حل کولو ته اړتیا نشته، ځکه چې ستاسو پروژه لا دمخه کار کوي، پدې معنی چې دا ستونزې مهمې ندي. په هرصورت، تاسو تاسو کولی شئ خورا په زړه پورې اخطارونه وګورئ او د اړتیا په صورت کې یې سم کړئ. د دې کولو لپاره ، تاسو اړتیا لرئ محصول فلټر کړئ او یوازې خورا معتبر پیغامونه پریږدئ. د بصری سټوډیو لپاره د PVS-Studio پلگ ان کې، دا د غلطۍ کچې او کټګوریو لخوا د فلټر کولو له لارې ترسره کیږي. د خورا دقیق محصول لپاره ، یوازې پریږدئ د عالي и جنرال (هم د کلک کولو وړ):

جامد تحلیل - له پیژندنې څخه ادغام ته
په حقیقت کې، 178 اخطارونه د څو زرو په پرتله د لیدلو لپاره خورا اسانه دي ...

په ټبونو کې منځني и ټیټ ډیری وختونه ښه اخطارونه شتون لري، مګر پدې کټګوریو کې هغه تشخیصات شامل دي چې لږ دقت ( اعتبار) لري. د وینډوز لاندې کار کولو لپاره د خبرتیا کچې او اختیارونو په اړه نور معلومات دلته موندل کیدی شي: *ژړل*.

د خورا زړه پورې غلطیو په بریالیتوب سره بیاکتنه کول (او په بریالیتوب سره یې سم کړل) ارزښت لري پاتې اخطارونه مات کړئ. دا اړینه ده چې نوي خبرتیاوې د پخوانیو په منځ کې له لاسه ورنکړي. برسېره پردې، یو جامد شنونکی د پروګرامر لپاره یو معاون دی، نه د کیګونو لیست. 🙂

1. اتوماتیک

د پیژندلو وروسته، دا وخت دی چې پلگ ان تنظیم کړئ او په CI کې مدغم شئ. دا باید مخکې له دې ترسره شي چې برنامه کونکي د جامد تحلیل کونکي کارول پیل کړي. حقیقت دا دی چې برنامه کوونکی ممکن د تحلیل وړ کول هیر کړي یا نه غواړي دا په بشپړ ډول ترسره کړي. د دې کولو لپاره، تاسو اړتیا لرئ چې د هر څه وروستی چک ترسره کړئ ترڅو نه ازمویل شوي کوډ د عمومي پراختیا څانګې ته لاړ نشي.

تاسو به پدې مرحله کې څه زده کړئ:

  • وسیله کوم اتومات اختیارونه چمتو کوي؛
  • ایا تحلیل کونکی ستاسو د مجلس سیسټم سره مطابقت لري؟

څرنګه چې کامل اسناد شتون نلري، ځینې وختونه تاسو باید ولیکئ ملاتړ. دا عادي خبره ده او موږ خوښ یو چې ستاسو سره مرسته وکړو. 🙂

اوس راځئ چې د دوامداره ادغام (CI) خدماتو ته لاړ شو. هر شنونکی په دوی کې پرته له کومې جدي ستونزې پلي کیدی شي. د دې کولو لپاره ، تاسو اړتیا لرئ په پایپ لاین کې یو جلا مرحله رامینځته کړئ ، کوم چې معمولا د جوړونې او واحد ازموینې وروسته موقعیت لري. دا د مختلف کنسول اسانتیاو په کارولو سره ترسره کیږي. د مثال په توګه، PVS-Studio لاندې اسانتیاوې وړاندې کوي:

په CI کې د تحلیل ادغام لپاره، تاسو باید درې شیان ترسره کړئ:

  • شنونکی نصب کړئ؛
  • تحلیل ترسره کول؛
  • پایلې وړاندې کړئ.

د مثال په توګه، په لینکس کې د PVS-Studio نصبولو لپاره (Debian-base)، تاسو اړتیا لرئ لاندې کمانډونه پرمخ بوځي:

wget -q -O - https://files.viva64.com/etc/pubkey.txt 
    | sudo apt-key add -
sudo wget -O /etc/apt/sources.list.d/viva64.list 
  https://files.viva64.com/etc/viva64.list
  
sudo apt-get update -qq
sudo apt-get install -qq pvs-studio

په وینډوز چلولو سیسټمونو کې ، د کڅوړې مدیر څخه تحلیل کونکي نصبولو لپاره هیڅ لاره شتون نلري ، مګر دا ممکنه ده چې تحلیل کونکی د کمانډ لاین څخه ځای په ځای کړئ:

PVS-Studio_setup.exe /verysilent /suppressmsgboxes 
/norestart /nocloseapplications

تاسو کولی شئ په وینډوز چلولو سیسټمونو کې د PVS-Studio ځای پرځای کولو په اړه نور ولولئ *دلته*.

د نصبولو وروسته، تاسو اړتیا لرئ چې تحلیل په مستقیم ډول پرمخ بوځي. په هرصورت، دا سپارښتنه کیږي چې دا یوازې د تالیف او ازموینې وروسته ترسره شي. دا ځکه چې جامد تحلیل معمولا د تالیف په پرتله دوه ځله وخت نیسي.

څنګه چې د لانچ میتود په پلیټ فارم او د پروژې ځانګړتیاو پورې اړه لري ، زه به د مثال په توګه د C++ (لینکس) اختیار وښیم:

pvs-studio-analyzer analyze -j8 
                            -o PVS-Studio.log
plog-converter -t errorfile PVS-Studio.log --cerr -w

لومړی کمانډ به تحلیل ترسره کړي، او دوهم به لفافېراپور د متن په بڼه بدلوي، په سکرین کې یې ښکاره کوي او د 0 څخه پرته د بیرته ستنیدو کوډ بیرته راګرځوي که چیرې خبرداری شتون ولري. د دې په څیر یو میکانیزم په اسانۍ سره د جوړونې بندولو لپاره کارول کیدی شي کله چې د خطا پیغامونه شتون ولري. په هرصورت، تاسو کولی شئ تل بیرغ لرې کړئ -w او داسې مجلس مه بندوئ چې اخطارونه ولري.

یادونه: د متن بڼه ناامنه ده. دا په ساده ډول د مثال په توګه وړاندې کیږي. د ډیر په زړه پورې راپور فارمیټ ته پام وکړئ - FullHtml. دا تاسو ته اجازه درکوي د کوډ له لارې حرکت وکړئ.

تاسو کولی شئ په مقاله کې د CI په اړه د تحلیل تنظیم کولو په اړه نور ولولئ "PVS- سټوډیو او دوامداره ادغام"(وینډوز) یا"په Travis CI کې د PVS- سټوډیو تنظیم کولو څرنګوالی"(لینکس).

سمه ده، تاسو د جوړونکي سرور کې تحلیلګر تنظیم کړی. اوس ، که چیرې یو څوک غیر ازمویل شوي کوډ اپلوډ کړي ، د تایید مرحله به ناکامه شي ، او تاسو به وکولی شئ ستونزه ومومئ ، په هرصورت ، دا په بشپړ ډول اسانه ندي ، ځکه چې دا د پروژې چیک کول خورا مؤثر دي نه د څانګو له یوځای کیدو وروسته ، مګر مخکې له دې، د پلولو غوښتنې په مرحله کې.

په عموم کې، د پلټ غوښتنې تحلیل تنظیم کول د CI په اړه د تحلیل معمول پیل کولو څخه ډیر توپیر نلري. د بدل شوي فایلونو لیست ترلاسه کولو اړتیا پرته. دا معمولا د git په کارولو سره د څانګو ترمینځ توپیرونو پوښتنې کولو سره ترلاسه کیدی شي:

git diff --name-only HEAD origin/$MERGE_BASE > .pvs-pr.list

اوس تاسو اړتیا لرئ د فایلونو دا لیست تحلیل کونکي ته د ننوتلو په توګه انتقال کړئ. د مثال په توګه، په PVS-Studio کې دا د بیرغ په کارولو سره پلي کیږي -S:

pvs-studio-analyzer analyze -j8 
                            -o PVS-Studio.log 
                            -S .pvs-pr.list

تاسو کولی شئ د پل غوښتنلیکونو تحلیل کولو په اړه نور معلومات ترلاسه کړئ *دلته*. حتی که ستاسو CI په مقاله کې ذکر شوي خدماتو لیست کې نه وي ، تاسو به د دې ډول تحلیل تیوري ته وقف عمومي برخه ګټور ومومئ.

د پلټ غوښتنو تحلیل تنظیم کولو سره ، تاسو کولی شئ د اخطارونو لرونکي ژمنې بندې کړئ ، پدې توګه یو حد رامینځته کړئ چې نه ازمویل شوی کوډ نشي تیریدلی.

دا ټول یقینا ښه دي، مګر زه غواړم چې ټول اخطارونه په یو ځای کې وګورم. نه یوازې د جامد تحلیل کونکي څخه ، بلکه د واحد ازموینې یا متحرک تحلیل کونکي څخه هم. د دې لپاره مختلف خدمتونه او پلگ انونه شتون لري. PVS-Studio، د بیلګې په توګه، لري په سونار کیوب کې د ادغام لپاره پلگ ان.

2. د پراختیا کونکي ماشینونو ادغام

اوس دا وخت دی چې د ورځني پراختیا کارونې لپاره تحلیل کونکي نصب او تنظیم کړئ. پدې وخت کې تاسو دمخه د کار کولو ډیری لارو سره آشنا شوي یاست ، نو دا ترټولو اسانه برخه بلل کیدی شي.

د ساده اختیار په توګه، پراختیا کونکي کولی شي اړین تحلیل کونکي پخپله نصب کړي. په هرصورت، دا به ډیر وخت ونیسي او د پراختیا څخه یې ډډه وکړي، نو تاسو کولی شئ دا پروسه د نصب کونکي او اړین بیرغونو په کارولو سره اتومات کړئ. د PVS-Studio لپاره مختلف شتون لري د اتوماتیک نصبولو لپاره بیرغونه. په هرصورت، تل د بسته بندي مدیران شتون لري، د بیلګې په توګه، چاکلیټ (وینډوز)، هومبریو (macOS) یا د لینکس لپاره لسګونه اختیارونه.

بیا تاسو اړتیا لرئ اړین پلگ ان نصب کړئ، د بیلګې په توګه لیدیز سټوډیو, IDEA, رینجر او داسې نور

3. ورځنی استعمال

پدې مرحله کې ، دا وخت دی چې د ورځني کارونې پرمهال د تحلیل کونکي ګړندي کولو لارو په اړه یو څو ټکي ووایو. د ټولې پروژې بشپړ تحلیل ډیر وخت نیسي، مګر موږ څو ځله په ټوله پروژه کې کوډ بدلوو؟ د دې امکان شتون نلري چې یو ریفیکٹرینګ دومره لوی وي چې دا به سمدلاسه د کوډ ټول اساس اغیزه وکړي. د فایلونو شمیر چې په یو وخت کې بدلیږي په ندرت سره له درجن څخه ډیر وي ، نو دا د دوی تحلیل کول معنی لري. د داسې حالت لپاره شتون لري د زیاتیدونکي تحلیل حالت. یوازې اندیښنه مه کوئ، دا بله وسیله نه ده. دا یو ځانګړی حالت دی چې تاسو ته اجازه درکوي یوازې بدل شوي فایلونه او د دوی انحصار تحلیل کړئ، او دا د جوړولو وروسته په اتوماتيک ډول پیښیږي که تاسو په IDE کې د پلگ ان نصب سره کار کوئ.

که شنونکی په وروستي بدل شوي کوډ کې ستونزې ومومي، نو دا به په خپلواک ډول راپور ورکړي. د مثال په توګه، PVS-Studio به تاسو ته د خبرتیا په کارولو سره د دې په اړه ووایي:

جامد تحلیل - له پیژندنې څخه ادغام ته
البته، د وسیلې کارولو لپاره پراختیا کونکو ته ویل کافي ندي. موږ باید یو څه ورته ووایو چې دا څه دي او دا څنګه دي. دلته، د مثال په توګه، د PVS-Studio لپاره د چټک پیل په اړه مقالې دي، مګر تاسو کولی شئ د هرې وسیلې لپاره ورته لارښوونې ومومئ چې تاسو یې غوره کوئ:

دا ډول مقالې د ورځني کارونې لپاره ټول اړین معلومات چمتو کوي او ډیر وخت نه نیسي. 🙂

حتی د وسیلې پیژندلو په مرحله کې ، موږ د لومړي لانچونو څخه یو په جریان کې ډیری اخطارونه مات کړل. له بده مرغه، جامد شنونکي کامل ندي، نو د وخت په تیریدو سره دوی غلط مثبت ورکوي. د دوی فشارول معمولا اسانه دي؛ د مثال په توګه ، د بصری سټوډیو لپاره PVS-Studio پلگ ان کې تاسو یوازې یو تڼۍ کلیک کولو ته اړتیا لرئ:

جامد تحلیل - له پیژندنې څخه ادغام ته
په هرصورت، تاسو کولی شئ یوازې د دوی له مینځه وړلو څخه ډیر څه وکړئ. د مثال په توګه، تاسو کولی شئ د مرستې لپاره د ستونزې راپور ورکړئ. که غلط مثبت سم کیدی شي ، نو په راتلونکي تازه معلوماتو کې تاسو کولی شئ پوه شئ چې هرځل ستاسو د کوډبیس لپاره لږ او لږ غلط مثبت شتون لري.

د ادغام وروسته

نو موږ د پرمختیا په بهیر کې د جامد تحلیل د یوځای کولو ټولو مرحلو څخه تیر شوي یو. په CI کې د ورته وسیلو تنظیم کولو اهمیت سره سره ، د دوی چلولو لپاره ترټولو مهم ځای د پراختیا کونکي کمپیوټر دی. په هرصورت، یو جامد شنونکی یو قاضي نه دی چې له تاسو څخه لیرې ووایي چې کوډ ښه نه دی. برعکس، دا یو معاون دی چې تاسو ته ووایي که تاسو ستړي یاست او تاسو ته یادونه کوي که تاسو یو څه هیر کړی وي.

ریښتیا، د منظم استعمال پرته، جامد تحلیل ممکن د پام وړ پرمختګ ساده کړي. په هرصورت، د پراختیا کونکي لپاره د هغې اصلي ګټه د کوډ پیچلو او جنجالي برخو په لټه کې نه ده، مګر د دوی په ابتدايي کشف کې. موافق یاست چې د ازموینې لپاره د ترمیمونو لیږلو وروسته د ستونزې کشف کول نه یوازې ناخوښه دي ، بلکه ډیر وخت نیسي. جامد تحلیل، کله چې په منظمه توګه کارول کیږي، په مستقیم ډول ستاسو په کمپیوټر کې هر بدلون ګوري او د کوډ کار کولو په وخت کې د شکمنو ځایونو راپور ورکوي.

او که تاسو یا ستاسو همکاران لاهم ډاډه نه یاست چې ایا دا د تحلیل کونکي پلي کولو ارزښت لري ، نو زه وړاندیز کوم چې تاسو اوس د مقالې لوستل پیل کړئ "د پراختیا پروسې ته د جامد کوډ تحلیل کونکي PVS-Studio معرفي کولو دلیلونهدا د پراختیا کونکو عمومي اندیښنې په ګوته کوي چې جامد تحلیل به د دوی وخت ونیسي او داسې نور.

جامد تحلیل - له پیژندنې څخه ادغام ته

که تاسو غواړئ دا مقاله د انګلیسي ژبو لیدونکو سره شریکه کړئ ، نو مهرباني وکړئ د ژباړې لینک وکاروئ: ماکسیم زویاګینتسیف. جامد تحلیل: له پیل څخه تر ادغام پورې.

سرچینه: www.habr.com

Add a comment