ස්ථිතික විශ්ලේෂණය - හැඳින්වීමේ සිට ඒකාබද්ධ කිරීම දක්වා

නිමක් නැති කේත සමාලෝචනයෙන් හෝ නිදොස්කරණයෙන් වෙහෙසට පත් වී ඇත, සමහර විට ඔබ ඔබේ ජීවිතය සරල කරන්නේ කෙසේදැයි සිතයි. ටිකක් සෙවීමෙන් පසු හෝ අහම්බෙන් එය මත පැකිලීමෙන්, ඔබට මැජික් වාක්‍ය ඛණ්ඩය දැකිය හැකිය: “ස්ථිතික විශ්ලේෂණය”. එය කුමක්ද සහ එය ඔබේ ව්‍යාපෘතිය සමඟ අන්තර්ක්‍රියා කරන්නේ කෙසේදැයි බලමු.

ස්ථිතික විශ්ලේෂණය - හැඳින්වීමේ සිට ඒකාබද්ධ කිරීම දක්වා
ඇත්ත වශයෙන්ම, ඔබ ඕනෑම නවීන භාෂාවකින් ලියන්නේ නම්, එය නොදැනුවත්වම, ඔබ එය ස්ථිතික විශ්ලේෂකය හරහා ධාවනය කර ඇත. කාරණය නම්, ඕනෑම නවීන සම්පාදකයක් කේතයේ ඇති විය හැකි ගැටළු පිළිබඳව කුඩා, අනතුරු ඇඟවීම් කට්ටලයක් සපයයි. උදාහරණයක් ලෙස, Visual Studio හි C++ කේතය සම්පාදනය කරන විට ඔබට පහත දෑ දැකිය හැක:

ස්ථිතික විශ්ලේෂණය - හැඳින්වීමේ සිට ඒකාබද්ධ කිරීම දක්වා
මෙම ප්‍රතිදානයේදී අපට පෙනෙන්නේ විචල්‍යය බව ය var කාර්යයේ දී කිසි විටෙක භාවිතා නොකළේය. එබැවින් යථාර්ථයේ දී, ඔබ සෑම විටම පාහේ සරල ස්ථිතික කේත විශ්ලේෂකය භාවිතා කළේය. කෙසේ වෙතත්, Coverity, Klocwork හෝ 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' අයිතමයේ භාවිතයේ නිවැරදි බව සමාලෝචනය කිරීම සලකා බලන්න.

ඔබට මෙම දෝෂයට අත තැබීමට අවශ්‍ය නම්, Compiler Explorer හි සූදානම් කළ උදාහරණයක් උත්සාහ කරන්න: *අඬනවා*.

ඔබ තේරුම් ගත් පරිදි, එවැනි කේත කොටස් කෙරෙහි වහාම අවධානය යොමු කිරීම සැමවිටම කළ නොහැකි අතර, මේ නිසා, සෑම දෙයක්ම මෙතරම් අමුතු ලෙස ක්‍රියා කරන්නේ මන්දැයි කල්පනා කරමින් ඔබට හොඳ පැයක් දෝශ නිරාකරණය කරමින් වාඩි විය හැකිය.

කෙසේ වෙතත්, මෙය පැහැදිලිවම වැරැද්දකි. සංවර්ධකයාට භාෂාවේ යම් සියුම් බව අමතක වූ නිසා උපප්‍රශස්ත කේතය ලිව්වේ නම් කුමක් කළ යුතුද? එසේත් නැතිනම් කේතය තුළ පවා ඉඩ ලබා දී ඇත නිර්වචනය නොකළ හැසිරීම? අවාසනාවකට මෙන්, එවැනි අවස්ථා සම්පූර්ණයෙන්ම පොදු වන අතර සිංහයාගේ කාලය වැය කරනු ලබන්නේ අක්ෂර දෝෂ, සාමාන්‍ය දෝෂ හෝ නිර්වචනය නොකළ හැසිරීම් අඩංගු විශේෂිතව ක්‍රියාත්මක වන කේතය නිදොස් කිරීම සඳහා ය.

ස්ථිතික විශ්ලේෂණයන් දර්ශනය වූයේ මෙම තත්වයන් සඳහා ය. මෙය සංවර්ධකයා සඳහා සහායකයෙකි, ඔහු කේතයේ විවිධ ගැටළු පෙන්වා දෙන අතර ලේඛනගත කිරීමේදී මේ ආකාරයෙන් ලිවීමට අවශ්‍ය නොවන්නේ ඇයි, එය හේතු විය හැක්කේ කුමක්ද සහ එය නිවැරදි කරන්නේ කෙසේද යන්න පැහැදිලි කරයි. එය කෙබඳු විය හැකිද යන්න පිළිබඳ උදාහරණයක් මෙන්න: *අඬනවා*.

විශ්ලේෂකයාට සොයාගත හැකි වඩාත් රසවත් දෝෂ ඔබට ලිපි වලින් සොයාගත හැකිය:

දැන් ඔබ මෙම තොරතුරු කියවා ඇති අතර ස්ථිතික විශ්ලේෂණයේ ප්‍රතිලාභ පිළිබඳව ඒත්තු ගැන්වී ඇති බැවින්, ඔබට එය උත්සාහ කිරීමට අවශ්‍ය විය හැකිය. නමුත් ආරම්භ කළ යුත්තේ කොතැනින්ද? ඔබගේ වත්මන් ව්‍යාපෘතියට නව මෙවලමක් ඒකාබද්ධ කරන්නේ කෙසේද? සහ කණ්ඩායම ඔහුට හඳුන්වා දෙන්නේ කෙසේද? ඔබට මෙම ප්‍රශ්නවලට පිළිතුරු පහතින් සොයාගත හැකිය.

සටහන: ස්ථිතික විශ්ලේෂණය කේත සමාලෝචන වැනි ප්‍රයෝජනවත් දෙයක් ප්‍රතිස්ථාපනය හෝ අවලංගු නොකරයි. එය මෙම ක්‍රියාවලිය සම්පූර්ණ කරයි, මුද්‍රණ දෝෂ, සාවද්‍ය සහ භයානක සැලසුම් කල්තියා දැකීමට සහ නිවැරදි කිරීමට උපකාරී වේ. අස්ථානගත වරහන් සෙවීමට වඩා ඇල්ගොරිතම සහ කේත පැහැදිලි බව පිළිබඳ කේත සමාලෝචන කෙරෙහි අවධානය යොමු කිරීම වඩා ඵලදායී වේ. කම්මැලි සංසන්දනාත්මක කාර්යයන් කියවන්න.

0. මෙවලම දැන ගැනීම

එය සියල්ලම අත්හදා බැලීමේ අනුවාදයකින් ආරම්භ වේ. ඇත්ත වශයෙන්ම, ඔබ මීට පෙර මෙවලම සජීවීව දැක නොමැති නම් සංවර්ධන ක්‍රියාවලියට යමක් ක්‍රියාත්මක කිරීමට තීරණය කිරීම අපහසුය. එමනිසා, ඔබ කළ යුතු පළමු දෙය බාගත කිරීමයි අත්හදා බැලීමේ අනුවාදය.

මෙම අදියරේදී ඔබ ඉගෙන ගන්නා දේ:

  • විශ්ලේෂකය සමඟ අන්තර් ක්‍රියා කළ හැකි ක්‍රම කවරේද;
  • විශ්ලේෂකය ඔබේ සංවර්ධන පරිසරයට අනුකූලද?
  • ඔබේ ව්‍යාපෘතිවල දැනට තිබෙන ගැටලු මොනවාද?

ඔබට අවශ්‍ය සියල්ල ස්ථාපනය කිරීමෙන් පසු, ඔබ කළ යුතු පළමු දෙය නම් සම්පූර්ණ ව්‍යාපෘතිය පිළිබඳ විශ්ලේෂණයක් ක්‍රියාත්මක කිරීමයි (හි Windows සඳහා, ලිනක්ස්, macOS) Visual Studio හි PVS-Studio සම්බන්ධයෙන් ඔබට සමාන පින්තූරයක් පෙනෙනු ඇත (ක්ලික් කළ හැකි):

ස්ථිතික විශ්ලේෂණය - හැඳින්වීමේ සිට ඒකාබද්ධ කිරීම දක්වා
කාරණය නම් ස්ථිතික විශ්ලේෂකයින් සාමාන්‍යයෙන් විශාල කේත පදනමක් සහිත ව්‍යාපෘති සඳහා අනතුරු ඇඟවීම් විශාල ප්‍රමාණයක් නිකුත් කිරීමයි. ඔබේ ව්‍යාපෘතිය දැනටමත් ක්‍රියාත්මක වන බැවින් ඒවා සියල්ලම නිවැරදි කිරීමට අවශ්‍ය නැත, එයින් අදහස් වන්නේ මෙම ගැටළු තීරණාත්මක නොවන බවයි. කෙසේ වෙතත්, ඔබ ඔබට වඩාත් රසවත් අනතුරු ඇඟවීම් දෙස බැලිය හැකිය සහ අවශ්ය නම් ඒවා නිවැරදි කරන්න. මෙය සිදු කිරීම සඳහා, ඔබ ප්රතිදානය පෙරහන් කළ යුතු අතර වඩාත් විශ්වාසදායක පණිවිඩ පමණක් තැබිය යුතුය. Visual Studio සඳහා PVS-Studio ප්ලගිනය තුළ, මෙය සිදු කරනු ලබන්නේ දෝෂ මට්ටම් සහ කාණ්ඩ අනුව පෙරීමෙනි. වඩාත් නිවැරදි නිමැවුම සඳහා, පමණක් තබන්න අධි и ජනරාල් (ක්ලික් කළ හැකි)

ස්ථිතික විශ්ලේෂණය - හැඳින්වීමේ සිට ඒකාබද්ධ කිරීම දක්වා
ඇත්ත වශයෙන්ම, අනතුරු ඇඟවීම් 178 ක් දහස් ගණනකට වඩා බැලීම පහසුය ...

ටැබ් තුළ මධ්යම и අඩු බොහෝ විට හොඳ අනතුරු ඇඟවීම් ඇත, නමුත් මෙම කාණ්ඩවලට අඩු නිරවද්‍යතාවයක් (විශ්වසනීයත්වය) ඇති රෝග විනිශ්චය ඇතුළත් වේ. වින්ඩෝස් යටතේ වැඩ කිරීම සඳහා අනතුරු ඇඟවීමේ මට්ටම් සහ විකල්ප පිළිබඳ වැඩි විස්තර මෙතැනින් සොයාගත හැකිය: *අඬනවා*.

වඩාත්ම සිත්ගන්නාසුලු දෝෂ (සහ ඒවා සාර්ථකව නිවැරදි කිරීම) සාර්ථකව සමාලෝචනය කිරීම වටී ඉතිරි අනතුරු ඇඟවීම් යටපත් කරන්න. පැරණි ඒවා අතර නව අනතුරු ඇඟවීම් නැති නොවන පරිදි මෙය අවශ්ය වේ. ඊට අමතරව, ස්ථිතික විශ්ලේෂකය යනු ක්‍රමලේඛකයා සඳහා සහායකයෙක් මිස දෝෂ ලැයිස්තුවක් නොවේ. 🙂

1. ස්වයංක්රීයකරණය

දැන හඳුනා ගැනීමෙන් පසු, ප්ලගීන වින්‍යාස කිරීමට සහ CI වෙත ඒකාබද්ධ වීමට කාලයයි. ක්‍රමලේඛකයින් ස්ථිතික විශ්ලේෂකය භාවිතා කිරීමට පෙර මෙය කළ යුතුය. කාරණය නම් ක්‍රමලේඛකයාට විශ්ලේෂණය සක්‍රීය කිරීමට අමතක වී හෝ එය කිරීමට අවශ්‍ය නොවීමයි. මෙය සිදු කිරීම සඳහා, ඔබ විසින් පරීක්ෂා නොකළ කේතය සාමාන්ය සංවර්ධන ශාඛාව තුළට ඇතුල් විය නොහැකි වන පරිදි සෑම දෙයක්ම අවසාන පරීක්ෂා කිරීම සිදු කළ යුතුය.

මෙම අදියරේදී ඔබ ඉගෙන ගන්නා දේ:

  • මෙවලම සපයන ස්වයංක්‍රීය විකල්ප මොනවාද;
  • විශ්ලේෂකය ඔබේ එකලස් කිරීමේ පද්ධතියට අනුකූලද?

පරිපූර්ණ ලියකියවිලි නොපවතින බැවින්, සමහර විට ඔබට ලිවීමට සිදුවේ සහාය. මෙය සාමාන්‍ය දෙයක් වන අතර ඔබට උදව් කිරීමට අපි සතුටු වෙමු. 🙂

දැන් අපි අඛණ්ඩ ඒකාබද්ධතා (CI) සේවාවන් වෙත යමු. ඕනෑම විශ්ලේෂකයක් බරපතල ගැටළු නොමැතිව ඒවාට ක්රියාත්මක කළ හැකිය. මෙය සිදු කිරීම සඳහා, ඔබ නල මාර්ගයේ වෙනම වේදිකාවක් නිර්මාණය කළ යුතුය, එය සාමාන්යයෙන් ගොඩනැගීම සහ ඒකක පරීක්ෂණ වලින් පසුව පිහිටා ඇත. මෙය විවිධ කොන්සෝල උපයෝගිතා භාවිතයෙන් සිදු කෙරේ. උදාහරණයක් ලෙස, PVS-Studio පහත උපයෝගිතා සපයයි:

  • PVS-Studio_Cmd.exe (වින්ඩෝස් හි විසඳුම්, C#, C++ ව්‍යාපෘති විශ්ලේෂණය)
  • CLMonitor.exe (සම්පාදන අධීක්ෂණය)
  • pvs-studio-analyzer (Linux / macOS හි C++ ව්‍යාපෘති විශ්ලේෂණය)
  • pvs-studio-dotnet (විසඳුම් විශ්ලේෂණය, Linux / macOS හි C# ව්‍යාපෘති)
  • pvs-studio.jar (ජාවා ව්‍යාපෘති විශ්ලේෂණය)
  • PlogConverter (වාර්තා ගොනු පරිවර්තකය)

CI වෙත විශ්ලේෂණය ඒකාබද්ධ කිරීම සඳහා, ඔබ කරුණු තුනක් කළ යුතුය:

  • විශ්ලේෂකය ස්ථාපනය කරන්න;
  • ධාවන විශ්ලේෂණය;
  • ප්රතිඵල ලබා දෙන්න.

උදාහරණයක් ලෙස, Linux (Debian-base) මත PVS-Studio ස්ථාපනය කිරීමට, ඔබ පහත විධානයන් ක්‍රියාත්මක කළ යුතුය:

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-Studio පිහිටුවන්නේ කෙසේද?"(ලිනක්ස්).

හරි, ඔබ ගොඩනැගීමේ සේවාදායකයේ විශ්ලේෂකය වින්‍යාස කර ඇත. දැන්, යමෙකු පරීක්ෂා නොකළ කේතය උඩුගත කළහොත්, සත්‍යාපන අදියර අසාර්ථක වනු ඇත, සහ ඔබට ගැටලුව හඳුනා ගැනීමට හැකි වනු ඇත, කෙසේ වෙතත්, මෙය සම්පූර්ණයෙන්ම පහසු නොවේ, මන්ද ව්‍යාපෘතිය පරීක්ෂා කිරීම වඩාත් කාර්යක්ෂම වන්නේ ශාඛා ඒකාබද්ධ කිරීමෙන් පසුව නොවේ, නමුත් ඊට පෙර, ඇදීමේ ඉල්ලීම් අදියරේදී A.

සාමාන්‍යයෙන්, ඇදීමේ ඉල්ලීම් විශ්ලේෂණයක් සැකසීම 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, උදාහරණයක් ලෙස, ඇත SonarQube වෙත ඒකාබද්ධ කිරීම සඳහා ප්ලගිනය.

2. සංවර්ධක යන්ත්‍ර මත ඒකාබද්ධ කිරීම

එදිනෙදා සංවර්ධන භාවිතය සඳහා විශ්ලේෂකය ස්ථාපනය කර වින්‍යාස කිරීමට දැන් කාලයයි. මෙම අවස්ථාව වන විට ඔබ වැඩ කිරීමේ බොහෝ ක්‍රම පිළිබඳව දැනටමත් හුරුපුරුදු වී ඇත, එබැවින් මෙය පහසුම කොටස ලෙස හැඳින්විය හැක.

සරලම විකල්පය ලෙස, සංවර්ධකයින්ට අවශ්ය විශ්ලේෂකය ස්ථාපනය කළ හැකිය. කෙසේ වෙතත්, මෙය බොහෝ කාලයක් ගත වන අතර සංවර්ධනයෙන් ඔවුන් අවධානය වෙනතකට යොමු කරනු ඇත, එබැවින් ඔබට ස්ථාපකය සහ අවශ්‍ය ධජ භාවිතයෙන් මෙම ක්‍රියාවලිය ස්වයංක්‍රීය කළ හැකිය. PVS-Studio සඳහා විවිධ වේ ස්වයංක්රීය ස්ථාපනය සඳහා කොඩි. කෙසේ වෙතත්, සෑම විටම පැකේජ කළමනාකරුවන් ඇත, උදාහරණයක් ලෙස, Chocolatey (Windows), Homebrew (macOS) හෝ Linux සඳහා විකල්ප දුසිම් ගණනක්.

එවිට ඔබට අවශ්‍ය ප්ලගීන ස්ථාපනය කිරීමට අවශ්‍ය වනු ඇත, උදාහරණයක් ලෙස විෂුවල් ස්ටුඩියෝ, අදහස, රයිඩර් ආදිය

3. දෛනික භාවිතය

මෙම අදියරේදී, දිනපතා භාවිතයේදී විශ්ලේෂකය වේගවත් කිරීම සඳහා ක්රම ගැන වචන කිහිපයක් පැවසීමට කාලයයි. සම්පූර්ණ ව්‍යාපෘතිය පිළිබඳ සම්පූර්ණ විශ්ලේෂණයක් සඳහා බොහෝ කාලයක් ගත වේ, නමුත් අපි කොපමණ වාරයක් මුළු ව්‍යාපෘතිය පුරාවටම එකවර කේතය වෙනස් කරන්නේද? එය වහාම සම්පූර්ණ කේත පදනමට බලපාන තරම් විශාල ප්‍රතිනිර්මාණය කිරීමක් නොමැති තරම්ය. වරකට වෙනස් කරන ගොනු ගණන දුසිමක් ඉක්මවන්නේ කලාතුරකිනි, එබැවින් ඒවා විශ්ලේෂණය කිරීම අර්ථවත් කරයි. එවැනි තත්වයක් සඳහා පවතී වර්ධක විශ්ලේෂණ මාදිලිය. කලබල නොවන්න, මෙය තවත් මෙවලමක් නොවේ. මෙය ඔබට වෙනස් කරන ලද ගොනු සහ ඒවායේ පරායත්තතා පමණක් විශ්ලේෂණය කිරීමට ඉඩ සලසන විශේෂ මාදිලියක් වන අතර, ඔබ ස්ථාපනය කර ඇති ප්ලගිනය සමඟ IDE එකක වැඩ කරන්නේ නම් ගොඩනැගීමෙන් පසු මෙය ස්වයංක්‍රීයව සිදු වේ.

විශ්ලේෂකය මෑතකදී වෙනස් කරන ලද කේතයේ ගැටළු හඳුනා ගන්නේ නම්, එය ස්වාධීනව මෙය වාර්තා කරයි. උදාහරණයක් ලෙස, PVS-Studio ඔබට අනතුරු ඇඟවීමක් භාවිතයෙන් මේ ගැන කියනු ඇත:

ස්ථිතික විශ්ලේෂණය - හැඳින්වීමේ සිට ඒකාබද්ධ කිරීම දක්වා
ඇත්ත වශයෙන්ම, මෙවලම භාවිතා කිරීමට සංවර්ධකයින්ට පැවසීම ප්රමාණවත් නොවේ. එය කුමක්ද සහ කෙසේද යන්න අපි කෙසේ හෝ ඔවුන්ට පැවසිය යුතුය. මෙන්න, උදාහරණයක් ලෙස, PVS-Studio සඳහා ඉක්මන් ආරම්භයක් පිළිබඳ ලිපි, නමුත් ඔබට ඔබ කැමති ඕනෑම මෙවලමක් සඳහා සමාන නිබන්ධන සොයා ගත හැක:

එවැනි ලිපි එදිනෙදා භාවිතය සඳහා අවශ්ය සියලු තොරතුරු සපයන අතර වැඩි කාලයක් ගත නොවේ. 🙂

මෙවලම දැන හඳුනා ගැනීමේ අදියරේදී පවා, පළමු දියත් කිරීම් වලින් එකකදී අපි බොහෝ අනතුරු ඇඟවීම් යටපත් කළෙමු. අවාසනාවකට, ස්ථිතික විශ්ලේෂක පරිපූර්ණ නොවේ, එබැවින් වරින් වර ඔවුන් ව්යාජ ධනාත්මක ලබා දෙයි. සාමාන්යයෙන් ඒවා යටපත් කිරීම පහසුය; උදාහරණයක් ලෙස, Visual Studio සඳහා PVS-Studio ප්ලගිනය තුළ ඔබට එක් බොත්තමක් ක්ලික් කිරීම අවශ්ය වේ:

ස්ථිතික විශ්ලේෂණය - හැඳින්වීමේ සිට ඒකාබද්ධ කිරීම දක්වා
කෙසේ වෙතත්, ඔබට ඒවා යටපත් කිරීමට වඩා වැඩි යමක් කළ හැකිය. උදාහරණයක් ලෙස, ඔබට සහාය සඳහා ගැටලුවක් වාර්තා කළ හැකිය. ව්‍යාජ ධනය නිවැරදි කළ හැකි නම්, අනාගත යාවත්කාලීන වලදී ඔබට සෑම අවස්ථාවකම ඔබේ කේත පදනමට විශේෂිත වූ ව්‍යාජ ධනාත්මක කරුණු අඩුවෙන් හා අඩුවෙන් ඇති බව දැකගත හැක.

ඒකාබද්ධ කිරීමෙන් පසුව

එබැවින් අපි සංවර්ධන ක්රියාවලියට ස්ථිතික විශ්ලේෂණය ඒකාබද්ධ කිරීමේ සියලු අදියරයන් හරහා ගොස් ඇත. CI මත එවැනි මෙවලම් සැකසීමේ වැදගත්කම තිබියදීත්, ඒවා ක්රියාත්මක කිරීමට වඩාත්ම වැදගත් ස්ථානය වන්නේ සංවර්ධකයාගේ පරිගණකයයි. සියල්ලට පසු, ස්ථිතික විශ්ලේෂකය යනු කේතය හොඳ නැතැයි ඔබෙන් දුරින් කොහේ හෝ පවසන විනිශ්චයකරුවෙකු නොවේ. ඊට පටහැනිව, එය ඔබ වෙහෙසට පත් වී ඇත්නම් සහ ඔබට යමක් අමතක වී ඇත්නම් ඔබට මතක් කර දෙන සහායකයෙකි.

ඇත්ත, නිතිපතා භාවිතයෙන් තොරව, ස්ථිතික විශ්ලේෂණය සංවර්ධනය සැලකිය යුතු ලෙස සරල කිරීමට අපහසුය. සියල්ලට පසු, සංවර්ධකයෙකුට එහි ප්‍රධාන ප්‍රතිලාභය පවතින්නේ සංකීර්ණ සහ මතභේදාත්මක කේත කොටස් සෙවීමේදී නොව, ඒවා කලින් හඳුනාගැනීමේදීය. සංස්කරණයන් පරීක්‍ෂණයට යැවීමෙන් පසු ගැටලුවක් සොයා ගැනීම අමිහිරි පමණක් නොව, ඉතා කාලය ගතවන බව එකඟ වන්න. ස්ථිතික විශ්ලේෂණය, නිතිපතා භාවිතා කරන විට, ඔබේ පරිගණකයේ සෑම වෙනස්කමක්ම සෘජුව බලමින් කේතය මත වැඩ කරන අතරතුර සැක සහිත ස්ථාන වාර්තා කරයි.

විශ්ලේෂකය ක්‍රියාත්මක කිරීම වටී දැයි ඔබට හෝ ඔබේ සගයන්ට තවමත් විශ්වාස නැත්නම්, මම ඔබට යෝජනා කරන්නේ දැන් ලිපිය කියවීම ආරම්භ කරන්න "ස්ථිතික කේත විශ්ලේෂකය PVS-Studio සංවර්ධන ක්‍රියාවලියට හඳුන්වා දීමට හේතු". එය ස්ථිතික විශ්ලේෂණයට ඔවුන්ගේ කාලය ගත වන බවට සංවර්ධකයින්ගේ සාමාන්‍ය ගැටළු ආමන්ත්‍රණය කරයි.

ස්ථිතික විශ්ලේෂණය - හැඳින්වීමේ සිට ඒකාබද්ධ කිරීම දක්වා

ඔබට මෙම ලිපිය ඉංග්‍රීසි කතා කරන ප්‍රේක්ෂකයින් සමඟ බෙදා ගැනීමට අවශ්‍ය නම්, කරුණාකර පරිවර්තන සබැඳිය භාවිතා කරන්න: Maxim Zvyagintsev. ස්ථිතික විශ්ලේෂණය: ආරම්භයේ සිට ඒකාබද්ධ කිරීම දක්වා.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න