స్టాటిక్ విశ్లేషణ - పరిచయం నుండి ఏకీకరణ వరకు

అంతులేని కోడ్ సమీక్ష లేదా డీబగ్గింగ్‌తో విసిగిపోయి, కొన్నిసార్లు మీరు మీ జీవితాన్ని ఎలా సులభతరం చేసుకోవాలో ఆలోచిస్తారు. మరియు కొంచెం శోధించిన తర్వాత లేదా అనుకోకుండా దానిపై పొరపాట్లు చేయడం ద్వారా, మీరు మాయా పదబంధాన్ని చూడవచ్చు: "స్టాటిక్ అనాలిసిస్." అది ఏమిటో మరియు అది మీ ప్రాజెక్ట్‌తో ఎలా పరస్పర చర్య చేయగలదో చూద్దాం.

స్టాటిక్ విశ్లేషణ - పరిచయం నుండి ఏకీకరణ వరకు
వాస్తవానికి, మీరు ఏదైనా ఆధునిక భాషలో వ్రాస్తే, మీరు దానిని గ్రహించకుండానే, మీరు దానిని స్టాటిక్ ఎనలైజర్ ద్వారా నడిపారు. వాస్తవం ఏమిటంటే, ఏదైనా ఆధునిక కంపైలర్ కోడ్‌లోని సంభావ్య సమస్యల గురించి చిన్నపాటి హెచ్చరికలను అందిస్తుంది. ఉదాహరణకు, విజువల్ స్టూడియోలో C++ కోడ్‌ను కంపైల్ చేస్తున్నప్పుడు మీరు ఈ క్రింది వాటిని చూడవచ్చు:

స్టాటిక్ విశ్లేషణ - పరిచయం నుండి ఏకీకరణ వరకు
ఈ అవుట్‌పుట్‌లో మనం వేరియబుల్ అని చూస్తాము var ఫంక్షన్‌లో ఎక్కడా ఉపయోగించలేదు. కాబట్టి వాస్తవానికి, మీరు దాదాపు ఎల్లప్పుడూ సాధారణ స్టాటిక్ కోడ్ ఎనలైజర్‌ని ఉపయోగించారు. అయితే, కవరిటీ, క్లోక్‌వర్క్ లేదా PVS-స్టూడియో వంటి ప్రొఫెషనల్ ఎనలైజర్‌ల వలె కాకుండా, కంపైలర్ అందించిన హెచ్చరికలు చిన్న శ్రేణి సమస్యలను మాత్రమే సూచిస్తాయి.

స్టాటిక్ అనాలిసిస్ అంటే ఏమిటో మరియు దానిని ఎలా అమలు చేయాలో మీకు ఖచ్చితంగా తెలియకపోతే, ఈ కథనాన్ని చదవండిఈ పద్దతి గురించి మరింత తెలుసుకోవడానికి.

మీకు స్టాటిక్ విశ్లేషణ ఎందుకు అవసరం?

క్లుప్తంగా: త్వరణం మరియు సరళీకరణ.

స్టాటిక్ విశ్లేషణ కోడ్‌లో చాలా విభిన్న సమస్యలను కనుగొనడానికి మిమ్మల్ని అనుమతిస్తుంది: భాషా నిర్మాణాలను తప్పుగా ఉపయోగించడం నుండి అక్షరదోషాల వరకు. ఉదాహరణకు, బదులుగా

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-స్టూడియో క్రింది హెచ్చరికను జారీ చేస్తుంది:

V537 'y' అంశం వినియోగం యొక్క ఖచ్చితత్వాన్ని సమీక్షించడాన్ని పరిగణించండి.

మీరు ఈ ఎర్రర్‌లోకి మీ చేతులు దూర్చాలనుకుంటే, కంపైలర్ ఎక్స్‌ప్లోరర్‌లో రెడీమేడ్ ఉదాహరణను ప్రయత్నించండి: *ఏడుస్తారు*.

మరియు మీరు అర్థం చేసుకున్నట్లుగా, కోడ్ యొక్క అటువంటి విభాగాలపై వెంటనే శ్రద్ధ చూపడం ఎల్లప్పుడూ సాధ్యం కాదు మరియు దీని కారణంగా, మీరు మంచి గంట కోసం డీబగ్గింగ్ చేయడానికి కూర్చోవచ్చు, ప్రతిదీ ఎందుకు వింతగా పనిచేస్తుందో అని ఆలోచిస్తూ ఉండవచ్చు.

అయితే, ఇది స్పష్టంగా తప్పు. డెవలపర్ సబ్‌ప్టిమల్ కోడ్‌ను వ్రాసినట్లయితే, అతను భాషలోని కొంత సూక్ష్మతను మరచిపోతే? లేదా కోడ్‌లో కూడా అనుమతించండి నిర్వచించబడని ప్రవర్తన? దురదృష్టవశాత్తూ, ఇటువంటి సందర్భాలు సర్వసాధారణం మరియు అక్షరదోషాలు, విలక్షణమైన లోపాలు లేదా నిర్వచించబడని ప్రవర్తనను కలిగి ఉన్న నిర్దిష్టంగా పని చేసే కోడ్‌ని డీబగ్గింగ్ చేయడానికి సింహభాగం ఖర్చు చేయబడుతుంది.

ఈ పరిస్థితుల కోసమే స్టాటిక్ విశ్లేషణ కనిపించింది. ఇది డెవలపర్‌కు సహాయకుడు, అతను కోడ్‌లోని వివిధ సమస్యలను ఎత్తి చూపి, డాక్యుమెంటేషన్‌లో ఈ విధంగా ఎందుకు వ్రాయవలసిన అవసరం లేదు, అది దేనికి దారి తీస్తుంది మరియు దాన్ని ఎలా పరిష్కరించాలో వివరిస్తుంది. ఇది ఎలా ఉంటుందో ఇక్కడ ఒక ఉదాహరణ ఉంది: *ఏడుస్తారు*.

వ్యాసాలలో విశ్లేషణకర్త గుర్తించగల మరిన్ని ఆసక్తికరమైన లోపాలను మీరు కనుగొనవచ్చు:

ఇప్పుడు మీరు ఈ మెటీరియల్‌ని చదివారు మరియు స్టాటిక్ అనాలిసిస్ యొక్క ప్రయోజనాల గురించి మీరు నమ్ముతున్నారు, మీరు దీన్ని ప్రయత్నించవచ్చు. కానీ ఎక్కడ ప్రారంభించాలి? మీ ప్రస్తుత ప్రాజెక్ట్‌లో కొత్త సాధనాన్ని ఎలా సమగ్రపరచాలి? మరియు అతనికి జట్టును ఎలా పరిచయం చేయాలి? ఈ ప్రశ్నలకు మీరు దిగువ సమాధానాలను కనుగొంటారు.

గమనించండి. స్టాటిక్ విశ్లేషణ కోడ్ సమీక్షల వంటి ఉపయోగకరమైన విషయాన్ని భర్తీ చేయదు లేదా రద్దు చేయదు. ఇది ఈ ప్రక్రియను పూర్తి చేస్తుంది, అక్షరదోషాలు, తప్పులు మరియు ప్రమాదకరమైన డిజైన్‌లను ముందుగానే గమనించి సరిదిద్దడంలో సహాయపడుతుంది. తప్పుగా ఉంచిన కుండలీకరణం లేదా బోరింగ్ పోలిక ఫంక్షన్లను చదవండి.

0. సాధనాన్ని తెలుసుకోవడం

ఇదంతా ట్రయల్ వెర్షన్‌తో మొదలవుతుంది. నిజానికి, మీరు ఇంతకు ముందెన్నడూ సాధనాన్ని ప్రత్యక్షంగా చూడకపోతే అభివృద్ధి ప్రక్రియలో ఏదైనా ప్రవేశపెట్టాలని నిర్ణయించుకోవడం కష్టం. అందువల్ల, మీరు చేయవలసిన మొదటి విషయం డౌన్‌లోడ్ చేయడం ట్రయల్ వెర్షన్.

ఈ దశలో మీరు ఏమి నేర్చుకుంటారు:

  • ఎనలైజర్‌తో ఇంటరాక్ట్ అయ్యే మార్గాలు ఏమిటి;
  • ఎనలైజర్ మీ అభివృద్ధి వాతావరణానికి అనుకూలంగా ఉందా?
  • మీ ప్రాజెక్ట్‌లలో ప్రస్తుతం ఏ సమస్యలు ఉన్నాయి?

మీకు అవసరమైన ప్రతిదాన్ని మీరు ఇన్‌స్టాల్ చేసిన తర్వాత, మీరు చేయవలసిన మొదటి విషయం మొత్తం ప్రాజెక్ట్ యొక్క విశ్లేషణను అమలు చేయడం (విండోస్, linux, MacOS) విజువల్ స్టూడియోలో PVS-స్టూడియో విషయంలో మీరు ఇలాంటి చిత్రాన్ని చూస్తారు (క్లిక్ చేయగలరు):

స్టాటిక్ విశ్లేషణ - పరిచయం నుండి ఏకీకరణ వరకు
వాస్తవం ఏమిటంటే స్టాటిక్ ఎనలైజర్లు సాధారణంగా పెద్ద కోడ్ బేస్ ఉన్న ప్రాజెక్ట్‌ల కోసం భారీ సంఖ్యలో హెచ్చరికలను జారీ చేస్తాయి. మీ ప్రాజెక్ట్ ఇప్పటికే పని చేస్తున్నందున వాటన్నింటినీ పరిష్కరించాల్సిన అవసరం లేదు, అంటే ఈ సమస్యలు క్లిష్టమైనవి కావు. అయితే, మీరు మీరు అత్యంత ఆసక్తికరమైన హెచ్చరికలను చూడవచ్చు మరియు అవసరమైతే వాటిని సరిచేయండి. దీన్ని చేయడానికి, మీరు అవుట్‌పుట్‌ను ఫిల్టర్ చేయాలి మరియు అత్యంత విశ్వసనీయ సందేశాలను మాత్రమే వదిలివేయాలి. విజువల్ స్టూడియో కోసం PVS-స్టూడియో ప్లగ్ఇన్‌లో, ఇది లోపం స్థాయిలు మరియు వర్గాల ద్వారా ఫిల్టర్ చేయడం ద్వారా జరుగుతుంది. అత్యంత ఖచ్చితమైన అవుట్‌పుట్ కోసం, మాత్రమే వదిలివేయండి అధిక и జనరల్ (క్లిక్ చేయవచ్చు కూడా):

స్టాటిక్ విశ్లేషణ - పరిచయం నుండి ఏకీకరణ వరకు
నిజానికి, 178 హెచ్చరికలు వీక్షించడం అనేక వేల కంటే చాలా సులభం...

ట్యాబ్‌లలో మీడియం и తక్కువ తరచుగా మంచి హెచ్చరికలు ఉన్నాయి, కానీ ఈ వర్గాల్లో తక్కువ ఖచ్చితత్వం (విశ్వసనీయత) ఉన్న డయాగ్నస్టిక్స్ ఉంటాయి. Windows కింద పని చేయడానికి హెచ్చరిక స్థాయిలు మరియు ఎంపికల గురించి మరింత సమాచారం ఇక్కడ చూడవచ్చు: *ఏడుస్తారు*.

అత్యంత ఆసక్తికరమైన లోపాలను విజయవంతంగా సమీక్షించడం (మరియు వాటిని విజయవంతంగా సరిదిద్దడం) విలువైనది మిగిలిన హెచ్చరికలను అణచివేయండి. కొత్త హెచ్చరికలు పాతవాటిలో కోల్పోకుండా ఉండటానికి ఇది అవసరం. అదనంగా, స్టాటిక్ ఎనలైజర్ ప్రోగ్రామర్‌కు సహాయకుడు, బగ్‌ల జాబితా కాదు. 🙂

1. అవ్టోమాటిసాసియా

పరిచయం చేసుకున్న తర్వాత, ప్లగిన్‌లను కాన్ఫిగర్ చేయడానికి మరియు CIలో ఇంటిగ్రేట్ చేయడానికి ఇది సమయం. ప్రోగ్రామర్లు స్టాటిక్ ఎనలైజర్‌ని ఉపయోగించడం ప్రారంభించే ముందు ఇది చేయాలి. వాస్తవం ఏమిటంటే, ప్రోగ్రామర్ విశ్లేషణను ప్రారంభించడం మర్చిపోవచ్చు లేదా దీన్ని అస్సలు చేయకూడదనుకుంటారు. దీన్ని చేయడానికి, మీరు ప్రతిదానికీ కొంత తుది తనిఖీ చేయాలి, తద్వారా పరీక్షించని కోడ్ సాధారణ అభివృద్ధి శాఖలోకి ప్రవేశించదు.

ఈ దశలో మీరు ఏమి నేర్చుకుంటారు:

  • సాధనం ఏ ఆటోమేషన్ ఎంపికలను అందిస్తుంది;
  • ఎనలైజర్ మీ అసెంబ్లీ సిస్టమ్‌కు అనుకూలంగా ఉందా?

ఖచ్చితమైన డాక్యుమెంటేషన్ ఉనికిలో లేనందున, కొన్నిసార్లు మీరు వ్రాయవలసి ఉంటుంది మద్దతు. ఇది సాధారణం మరియు మీకు సహాయం చేయడానికి మేము సంతోషిస్తున్నాము. 🙂

ఇప్పుడు నిరంతర ఏకీకరణ (CI) సేవలకు వెళ్దాం. ఏదైనా ఎనలైజర్ ఏ తీవ్రమైన సమస్యలు లేకుండా వాటిని అమలు చేయవచ్చు. ఇది చేయటానికి, మీరు పైప్లైన్లో ఒక ప్రత్యేక దశను సృష్టించాలి, ఇది సాధారణంగా బిల్డ్ మరియు యూనిట్ పరీక్షల తర్వాత ఉంటుంది. ఇది వివిధ కన్సోల్ యుటిలిటీలను ఉపయోగించి చేయబడుతుంది. ఉదాహరణకు, PVS-స్టూడియో కింది వినియోగాలను అందిస్తుంది:

  • 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

మీరు Windows నడుస్తున్న సిస్టమ్‌లలో PVS-స్టూడియోని అమలు చేయడం గురించి మరింత చదవవచ్చు *ఇక్కడ*.

సంస్థాపన తర్వాత, మీరు నేరుగా విశ్లేషణను అమలు చేయాలి. అయినప్పటికీ, సంకలనం మరియు పరీక్షలు ఉత్తీర్ణత సాధించిన తర్వాత మాత్రమే దీన్ని చేయాలని సిఫార్సు చేయబడింది. ఎందుకంటే స్టాటిక్ అనాలిసిస్ సాధారణంగా సంకలనం కంటే రెండు రెట్లు ఎక్కువ సమయం తీసుకుంటుంది.

లాంచ్ పద్ధతి ప్లాట్‌ఫారమ్ మరియు ప్రాజెక్ట్ లక్షణాలపై ఆధారపడి ఉంటుంది కాబట్టి, నేను C++ (Linux) ఎంపికను ఉదాహరణగా చూపుతాను:

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

మొదటి ఆదేశం విశ్లేషణను నిర్వహిస్తుంది మరియు రెండవది ఎన్వలప్‌లునివేదికను టెక్స్ట్ ఫార్మాట్‌లోకి మారుస్తుంది, స్క్రీన్‌పై ప్రదర్శిస్తుంది మరియు హెచ్చరికలు ఉంటే 0 కాకుండా ఇతర రిటర్న్ కోడ్‌ను అందిస్తుంది. దోష సందేశాలు ఉన్నప్పుడు బిల్డ్‌ను నిరోధించడానికి ఇలాంటి మెకానిజం సౌకర్యవంతంగా ఉపయోగించవచ్చు. అయితే, మీరు ఎల్లప్పుడూ జెండాను తీసివేయవచ్చు -w మరియు హెచ్చరికలను కలిగి ఉన్న అసెంబ్లీని నిరోధించవద్దు.

గమనించండి. టెక్స్ట్ ఫార్మాట్ అసౌకర్యంగా ఉంది. ఇది కేవలం ఉదాహరణగా అందించబడింది. మరింత ఆసక్తికరమైన నివేదిక ఆకృతికి శ్రద్ధ వహించండి - FullHtml. ఇది కోడ్ ద్వారా నావిగేట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది.

మీరు వ్యాసంలో CI పై విశ్లేషణను సెటప్ చేయడం గురించి మరింత చదువుకోవచ్చు "PVS-స్టూడియో మరియు నిరంతర ఏకీకరణ"(విండోస్) లేదా"ట్రావిస్ CIలో PVS-స్టూడియోను ఎలా సెటప్ చేయాలి"(Linux).

సరే, మీరు బిల్డ్ సర్వర్‌లో ఎనలైజర్‌ను కాన్ఫిగర్ చేసారు. ఇప్పుడు, ఎవరైనా పరీక్షించని కోడ్‌ని అప్‌లోడ్ చేసినట్లయితే, ధృవీకరణ దశ విఫలమవుతుంది మరియు మీరు సమస్యను గుర్తించగలుగుతారు, అయినప్పటికీ, ఇది పూర్తిగా అనుకూలమైనది కాదు, ఎందుకంటే శాఖలను విలీనం చేసిన తర్వాత కాకుండా ప్రాజెక్ట్‌ను తనిఖీ చేయడం మరింత సమర్థవంతమైనది, కానీ దాని ముందు, పుల్ అభ్యర్థన దశలో. A.

సాధారణంగా, పుల్ అభ్యర్థన విశ్లేషణను సెటప్ చేయడం అనేది CIలో విశ్లేషణ యొక్క సాధారణ ప్రయోగానికి చాలా భిన్నంగా ఉండదు. మార్చబడిన ఫైల్‌ల జాబితాను పొందడం తప్ప. వీటిని సాధారణంగా git ఉపయోగించి శాఖల మధ్య తేడాలను ప్రశ్నించడం ద్వారా పొందవచ్చు:

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

ఇప్పుడు మీరు ఈ ఫైల్‌ల జాబితాను ఇన్‌పుట్‌గా ఎనలైజర్‌కి పంపాలి. ఉదాహరణకు, PVS-స్టూడియోలో ఇది ఫ్లాగ్ ఉపయోగించి అమలు చేయబడుతుంది -S:

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

మీరు పుల్ అభ్యర్థనలను విశ్లేషించడం గురించి మరింత తెలుసుకోవచ్చు *ఇక్కడ*. వ్యాసంలో పేర్కొన్న సేవల జాబితాలో మీ CI లేకపోయినా, ఈ రకమైన విశ్లేషణ యొక్క సిద్ధాంతానికి అంకితమైన సాధారణ విభాగం ఉపయోగకరంగా ఉంటుంది.

పుల్ రిక్వెస్ట్‌ల విశ్లేషణను సెటప్ చేయడం ద్వారా, మీరు హెచ్చరికలను కలిగి ఉన్న కమిట్‌లను నిరోధించవచ్చు, తద్వారా పరీక్షించని కోడ్ దాటలేని సరిహద్దును సృష్టించవచ్చు.

ఇది ఖచ్చితంగా మంచిదే, కానీ నేను అన్ని హెచ్చరికలను ఒకే చోట చూడాలనుకుంటున్నాను. స్టాటిక్ ఎనలైజర్ నుండి మాత్రమే కాకుండా, యూనిట్ పరీక్షల నుండి లేదా డైనమిక్ ఎనలైజర్ నుండి కూడా. దీని కోసం వివిధ సేవలు మరియు ప్లగిన్‌లు ఉన్నాయి. ఉదాహరణకు, PVS-స్టూడియో ఉంది SonarQubeకి అనుసంధానం కోసం ప్లగిన్.

2. డెవలపర్ మెషీన్లపై ఏకీకరణ

ఇప్పుడు రోజువారీ అభివృద్ధి ఉపయోగం కోసం ఎనలైజర్‌ను ఇన్‌స్టాల్ చేసి, కాన్ఫిగర్ చేయడానికి సమయం ఆసన్నమైంది. ఈ సమయానికి మీరు ఇప్పటికే చాలా పని మార్గాలతో సుపరిచితులయ్యారు, కాబట్టి దీనిని సులభమైన భాగం అని పిలుస్తారు.

సరళమైన ఎంపికగా, డెవలపర్లు అవసరమైన ఎనలైజర్‌ను తాము ఇన్‌స్టాల్ చేసుకోవచ్చు. అయినప్పటికీ, ఇది చాలా సమయం పడుతుంది మరియు వాటిని అభివృద్ధి నుండి దృష్టి మరల్చుతుంది, కాబట్టి మీరు ఇన్‌స్టాలర్ మరియు అవసరమైన ఫ్లాగ్‌లను ఉపయోగించి ఈ ప్రక్రియను ఆటోమేట్ చేయవచ్చు. PVS-స్టూడియో కోసం వివిధ ఉన్నాయి ఆటోమేటెడ్ ఇన్‌స్టాలేషన్ కోసం ఫ్లాగ్‌లు. అయినప్పటికీ, ఎల్లప్పుడూ ప్యాకేజీ నిర్వాహకులు ఉంటారు, ఉదాహరణకు, Chocolatey (Windows), Homebrew (macOS) లేదా Linux కోసం డజన్ల కొద్దీ ఎంపికలు.

అప్పుడు మీరు అవసరమైన ప్లగిన్‌లను ఇన్‌స్టాల్ చేయాలి, ఉదాహరణకు విజువల్ స్టూడియో, IDEA, రైడర్ మొదలైనవి

3. రోజువారీ ఉపయోగం

ఈ దశలో, రోజువారీ ఉపయోగంలో ఎనలైజర్‌ను వేగవంతం చేసే మార్గాల గురించి కొన్ని మాటలు చెప్పాల్సిన సమయం ఆసన్నమైంది. మొత్తం ప్రాజెక్ట్ యొక్క పూర్తి విశ్లేషణకు చాలా సమయం పడుతుంది, అయితే మేము మొత్తం ప్రాజెక్ట్‌లో ఒకేసారి కోడ్‌ని ఎంత తరచుగా మారుస్తాము? చాలా పెద్ద రీఫ్యాక్టరింగ్ ఏదీ లేదు, ఇది మొత్తం కోడ్ బేస్‌ను వెంటనే ప్రభావితం చేస్తుంది. ఒక సమయంలో మార్చబడిన ఫైళ్ళ సంఖ్య అరుదుగా డజనుకు మించి ఉంటుంది, కాబట్టి వాటిని విశ్లేషించడానికి అర్ధమే. అలాంటి పరిస్థితి ఉంది పెరుగుతున్న విశ్లేషణ మోడ్. భయపడవద్దు, ఇది మరొక సాధనం కాదు. ఇది మారిన ఫైల్‌లు మరియు వాటి డిపెండెన్సీలను మాత్రమే విశ్లేషించడానికి మిమ్మల్ని అనుమతించే ఒక ప్రత్యేక మోడ్, మరియు మీరు ఇన్‌స్టాల్ చేసిన ప్లగ్ఇన్‌తో IDEలో పని చేస్తున్నట్లయితే ఇది స్వయంచాలకంగా నిర్మించబడిన తర్వాత జరుగుతుంది.

ఎనలైజర్ ఇటీవల మార్చిన కోడ్‌లో సమస్యలను గుర్తిస్తే, అది స్వతంత్రంగా దీన్ని నివేదిస్తుంది. ఉదాహరణకు, PVS-Studio దీని గురించి హెచ్చరికను ఉపయోగించి మీకు తెలియజేస్తుంది:

స్టాటిక్ విశ్లేషణ - పరిచయం నుండి ఏకీకరణ వరకు
వాస్తవానికి, సాధనాన్ని ఉపయోగించమని డెవలపర్‌లకు చెప్పడం సరిపోదు. అది ఏమిటో మరియు ఎలా ఉందో మనం ఏదో ఒకవిధంగా వారికి చెప్పాలి. ఇక్కడ, ఉదాహరణకు, PVS-Studio కోసం త్వరిత ప్రారంభం గురించి కథనాలు ఉన్నాయి, కానీ మీరు ఇష్టపడే ఏదైనా సాధనం కోసం ఇలాంటి ట్యుటోరియల్‌లను మీరు కనుగొనవచ్చు:

ఇటువంటి కథనాలు రోజువారీ ఉపయోగం కోసం అవసరమైన మొత్తం సమాచారాన్ని అందిస్తాయి మరియు ఎక్కువ సమయం తీసుకోవు. 🙂

సాధనాన్ని తెలుసుకునే దశలో కూడా, మేము మొదటి లాంచ్‌లలో చాలా హెచ్చరికలను అణిచివేసాము. దురదృష్టవశాత్తు, స్టాటిక్ ఎనలైజర్లు ఖచ్చితమైనవి కావు, కాబట్టి ఎప్పటికప్పుడు అవి తప్పుడు పాజిటివ్‌లను ఇస్తాయి. వాటిని అణచివేయడం సాధారణంగా సులభం; ఉదాహరణకు, విజువల్ స్టూడియో కోసం PVS-స్టూడియో ప్లగ్ఇన్‌లో మీరు ఒక బటన్‌ను క్లిక్ చేయాలి:

స్టాటిక్ విశ్లేషణ - పరిచయం నుండి ఏకీకరణ వరకు
అయితే, మీరు వాటిని అణచివేయడం కంటే ఎక్కువ చేయవచ్చు. ఉదాహరణకు, మీరు మద్దతు కోసం సమస్యను నివేదించవచ్చు. తప్పుడు పాజిటివ్‌ని సరిదిద్దగలిగితే, భవిష్యత్ అప్‌డేట్‌లలో ప్రతిసారీ మీ కోడ్‌బేస్‌కు నిర్దిష్టంగా తక్కువ మరియు తక్కువ తప్పుడు పాజిటివ్‌లు ఉన్నాయని మీరు గమనించవచ్చు.

После INTEGRATSI

కాబట్టి మేము అభివృద్ధి ప్రక్రియలో స్టాటిక్ విశ్లేషణను ఏకీకృతం చేసే అన్ని దశల ద్వారా వెళ్ళాము. CIలో అటువంటి సాధనాలను సెటప్ చేయడం యొక్క ప్రాముఖ్యత ఉన్నప్పటికీ, వాటిని అమలు చేయడానికి అత్యంత ముఖ్యమైన ప్రదేశం డెవలపర్ యొక్క కంప్యూటర్. అన్నింటికంటే, స్టాటిక్ ఎనలైజర్ కోడ్ మంచిది కాదని మీకు ఎక్కడో దూరంగా చెప్పే న్యాయమూర్తి కాదు. దానికి విరుద్ధంగా, మీరు అలసిపోయి ఉంటే, మీరు ఏదైనా మర్చిపోయినట్లయితే మీకు గుర్తు చేసే సహాయకుడు.

నిజమే, సాధారణ ఉపయోగం లేకుండా, స్టాటిక్ విశ్లేషణ అభివృద్ధిని గణనీయంగా సులభతరం చేసే అవకాశం లేదు. అన్నింటికంటే, డెవలపర్‌కు దాని ప్రధాన ప్రయోజనం కోడ్ యొక్క సంక్లిష్టమైన మరియు వివాదాస్పద విభాగాల కోసం శోధించడంలో అంతగా లేదు, కానీ వాటిని ముందుగానే గుర్తించడంలో ఉంటుంది. సవరణలు పరీక్ష కోసం పంపబడిన తర్వాత సమస్యను కనుగొనడం అసహ్యకరమైనది మాత్రమే కాదు, చాలా సమయం కూడా తీసుకుంటుందని అంగీకరిస్తున్నారు. స్థిర విశ్లేషణ, క్రమం తప్పకుండా ఉపయోగించినప్పుడు, మీ కంప్యూటర్‌లో నేరుగా ప్రతి మార్పును చూస్తుంది మరియు కోడ్‌పై పని చేస్తున్నప్పుడు అనుమానాస్పద స్థలాలను నివేదిస్తుంది.

మరియు మీరు లేదా మీ సహోద్యోగులు ఎనలైజర్‌ను అమలు చేయడం విలువైనదేనా అని ఇంకా తెలియకపోతే, మీరు ఇప్పుడు కథనాన్ని చదవడం ప్రారంభించాలని నేను సూచిస్తున్నాను "అభివృద్ధి ప్రక్రియలో స్టాటిక్ కోడ్ ఎనలైజర్ PVS-స్టూడియోను పరిచయం చేయడానికి కారణాలు". ఇది స్టాటిక్ విశ్లేషణ వారి సమయాన్ని తీసుకుంటుందనే డెవలపర్‌ల సాధారణ ఆందోళనలను పరిష్కరిస్తుంది.

స్టాటిక్ విశ్లేషణ - పరిచయం నుండి ఏకీకరణ వరకు

మీరు ఈ కథనాన్ని ఆంగ్లం మాట్లాడే ప్రేక్షకులతో భాగస్వామ్యం చేయాలనుకుంటే, దయచేసి అనువాద లింక్‌ని ఉపయోగించండి: Maxim Zvyagintsev. స్టాటిక్ అనాలిసిస్: ప్రారంభం నుండి ఇంటిగ్రేషన్ వరకు.

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి