యూనిట్లు
1. కంప్యూటర్ ఇంజినీరింగ్‌లో ఆర్టిఫిషియల్ ఇంటెలిజెన్స్ మరియు వెరిఫికేషన్ డిసిప్లిన్ పరిచయం 2. అవసరాలు విశ్లేషణ మరియు సాఫ్ట్‌వేర్ డిజైన్ 3. AIతో కోడింగ్ మరియు పెయిర్ ప్రోగ్రామింగ్ 4. కోడ్ రివ్యూ, రీఫ్యాక్టరింగ్ మరియు టెక్నికల్ డెట్ 5. డీబగ్గింగ్ మరియు ట్రబుల్షూటింగ్ 6. టెస్ట్ ఆటోమేషన్ మరియు నాణ్యత హామీ 7. డేటా నిర్మాణాలు, అల్గోరిథంలు మరియు పనితీరు 8. డేటాబేస్, SQL మరియు డేటా మోడలింగ్ 9. API, సిస్టమ్ ఆర్కిటెక్చర్ మరియు క్లౌడ్ 10. సురక్షిత కోడ్, థ్రెట్ మోడలింగ్ మరియు దుర్బలత్వ విశ్లేషణ 11. డాక్యుమెంటేషన్, DevOps మరియు CI/CD ఆటోమేషన్ 12. సరిహద్దులు: భద్రత, గోప్యత, లైసెన్స్ మరియు నీతి
యూనిట్ 4 / 12

కోడ్ రివ్యూ, రీఫ్యాక్టరింగ్ మరియు టెక్నికల్ డెట్

లాభాలు:

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

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

ఈ యూనిట్‌లో, కోడ్ సమీక్ష కోసం నిర్మాణాత్మక మార్గంలో AIని ఎలా ఉపయోగించాలో, సంక్లిష్ట కోడ్‌ను దాని ప్రవర్తనను విచ్ఛిన్నం చేయకుండా ఎలా పరిష్కరించాలో మరియు సాంకేతిక రుణాన్ని ఎలా నిర్వహించాలో (త్వరగా కానీ ఖరీదైన కోడ్ నిర్ణయాలు) ఎలా ఉపయోగించాలో చూద్దాం.

కాన్సెప్ట్‌లు: సాంకేతిక రుణం: భవిష్యత్తులో నిర్వహణ కష్టతరం చేసే వేగం కోసం నేడు తీసుకున్న కోడ్ నిర్ణయాలు. కోడ్ వాసన: లోపాలు లేని నమూనాలు సమస్యలను సూచిస్తాయి (చాలా పొడవైన విధులు, పునరావృత కోడ్). తిరోగమనం: మార్పు గతంలో పని చేస్తున్న దాన్ని విచ్ఛిన్నం చేసినప్పుడు.

స్ట్రక్చర్డ్ కోడ్ రివ్యూలో AIని ఉపయోగించడం

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

  1. పరిధిని ఇవ్వండి. ఏ కోడ్, ఏమి చేయాలి, ఏ సందర్భంలో పని చేస్తుంది.
  2. ప్రాధాన్యతా అక్షాన్ని పేర్కొనండి. ఖచ్చితత్వం మరియు భద్రత మొదటిది, రెండవది చదవదగినది.
  3. కాంక్రీట్ దిద్దుబాటు కోసం అడగండి. ప్రతి అన్వేషణకు "ఎందుకు సమస్య" మరియు "సిఫార్సు చేయబడిన పరిష్కారం".
  4. మీరు కనుగొన్న వాటిని ధృవీకరించండి. AI తప్పుడు పాజిటివ్‌లను కూడా ఉత్పత్తి చేస్తుంది; కోడ్ మరియు పరీక్షకు వ్యతిరేకంగా ప్రతి అన్వేషణను ధృవీకరించండి.

నిర్మాణాత్మక సమీక్ష ప్రాంప్ట్: "ఒక సీనియర్ ఇంజనీర్ లాగా కింది ఫంక్షన్‌ను పరిశీలించండి. కనుగొన్న వాటిని ప్రాముఖ్యత క్రమంలో జాబితా చేయండి మరియు వాటిని ఈ ట్యాగ్‌లతో గుర్తు పెట్టండి: [క్రిటికల్] లాజిక్/సెక్యూరిటీ, [మీడియం] ఎడ్జ్ కేస్/పర్ఫామెన్స్, [తక్కువ] రీడబిలిటీ/పేరు. ప్రతి అన్వేషణ కోసం: ఎందుకు అడగండి, కాంక్రీట్ పరిష్కార సూచనలను స్వయంచాలకంగా పరిష్కరించాల్సిన అవసరం లేదు. ఇది కోడ్: [కోడ్]"

భద్రత-కేంద్రీకృత సమీక్ష ప్రాంప్ట్: "భద్రతా ప్రయోజనాల కోసం మాత్రమే ఈ కోడ్‌ను సమీక్షించండి: ఇన్‌పుట్ ధ్రువీకరణ లేకపోవడం, ఇంజెక్షన్ ప్రమాదం, అధికార నియంత్రణ లేకపోవడం, రహస్య సమాచారం లీక్, అసురక్షిత డిఫాల్ట్‌లు. ప్రతి అన్వేషణకు ఉదాహరణ దాడి దృశ్యాన్ని జోడించండి. భద్రతా సమస్య లేనట్లయితే, 'నేను ఏ క్లిష్టమైన భద్రతా సమస్యలను కనుగొనలేదు' అని స్పష్టంగా పేర్కొనండి. కోడ్: [కోడ్]"

జాగ్రత్త: AI "నో ప్రాబ్లమ్" అని చెప్పినందున సమస్య లేదని రుజువు కాదు. AI తప్పుడు ప్రతికూలతలను ఉత్పత్తి చేయగలదు; నిజమైన భద్రతా సమస్యను దాటవేయవచ్చు. AI రివ్యూ సప్లిమెంట్స్, రీప్లేస్‌లు కాదు, హ్యూమన్ రివ్యూ మరియు సెక్యూరిటీ టెస్టింగ్. సెక్యూరిటీ-క్రిటికల్ కోడ్‌లో, సమర్థుడైన ఇంజనీర్‌కు తుది నిర్ణయం ఉంటుంది.

పరీక్ష-సంరక్షించబడిన రీఫ్యాక్టరింగ్

రీఫ్యాక్టరింగ్ యొక్క గోల్డెన్ రూల్: మొదట పరీక్షించండి, తరువాత మార్చండి. కోడ్‌ను పరిష్కరించే ముందు, ప్రస్తుత ప్రవర్తనను లాక్ చేసే పరీక్షలు ఉండాలి, తద్వారా మార్పు ఏదైనా విచ్ఛిన్నమైతే మీకు వెంటనే తెలుస్తుంది. AI రీఫ్యాక్టరింగ్ ఉన్నప్పుడు ఆర్డర్‌ను బ్రేక్ చేయవద్దు.

  1. ప్రస్తుత ప్రవర్తనను పరీక్షకు పెట్టండి. లేకుంటే, AI ఒక "క్యారెక్టరైజేషన్ టెస్ట్" (ప్రస్తుత ప్రవర్తనను క్యాప్చర్ చేసే పరీక్ష)ను రూపొందించండి.
  2. చిన్న దశల్లో దాన్ని పరిష్కరించండి. పరీక్ష అడుగడుగునా పచ్చగా ఉండాలి.
  3. ప్రతి దశ తర్వాత దాన్ని అమలు చేయండి. రిగ్రెషన్‌ను ముందుగానే పట్టుకోండి.

సురక్షిత రీఫ్యాక్టరింగ్ ప్లాన్ ప్రాంప్ట్: "క్రింది 60-లైన్ ఫంక్షన్ చాలా ఎక్కువ చేస్తుంది మరియు చదవడం కష్టం. నేను దాని ప్రవర్తనను మార్చకుండా రీఫాక్టర్ చేయాలనుకుంటున్నాను. మొదటిది: నేను ప్రస్తుత ప్రవర్తనను లాక్ చేయాల్సిన పరీక్ష కేసులను జాబితా చేయండి. తర్వాత: రీఫ్యాక్టరింగ్‌ను చిన్న దశలుగా విభజించండి, వీటిలో ప్రతి ఒక్కటి పరీక్షలు ఆకుపచ్చగా ఉన్నప్పుడు అమలు చేయబడతాయి. [మొదటి కోడ్‌ను ఇంకా వ్రాయవద్దు] కోడ్ ఇవ్వండి"

బలహీనమైన ప్రాంప్ట్ / బలమైన ప్రాంప్ట్

బలహీనం: "ఈ కోడ్‌ని మెరుగుపరచండి." (ఫలితం: ఏమి మెరుగుపరచాలో అస్పష్టంగా ఉంది; AI ఏకపక్ష మార్పులు చేస్తుంది, నిశ్శబ్దంగా ప్రవర్తనను మార్చగలదు.) STRONG: "రీడబిలిటీ కోసం ఈ చెల్లింపు గణన ఫంక్షన్‌ని రీఫాక్టర్ చేయండి. నిర్బంధం: ప్రవర్తన ఖచ్చితంగా అలాగే ఉండాలి, రిటర్న్ విలువలు మారకూడదు. లాంగ్ ఫంక్షన్‌ను అర్ధవంతమైన యుటిలిటీ ఫంక్షన్‌లుగా విభజించండి, మ్యాజిక్ నంబర్‌లను పేరు పెట్టబడిన స్థిరాంకాలకు పెంచండి. [ప్రతి కోడ్ ప్రవర్తనను మార్చదు].

శక్తివంతమైన ప్రాంప్ట్ స్పష్టంగా "ప్రవర్తన ఖచ్చితంగా అదే విధంగా ఉండాలి" నిర్బంధం మరియు మెరుగుపరచాల్సిన అవసరం ఉంది. ఈ పరిమితి లేకుండా, AI "మెరుగుదల" పేరుతో తర్కాన్ని మార్చగలదు మరియు నిశ్శబ్ద తిరోగమనాన్ని ఉత్పత్తి చేస్తుంది.

సాంకేతిక రుణ నిర్వహణ

అప్రోచ్

స్వల్పకాలంలో

దీర్ఘకాలంలో

రుణాన్ని విస్మరించడం

వేగవంతమైన పురోగతి

నిర్వహణ పక్షవాతం, జట్టు మందగించడం

ప్రతిదీ తిరిగి వ్రాయండి

స్టాండింగ్ ఫీచర్ డెవలప్‌మెంట్

అనిశ్చిత రాబడి, అధిక ప్రమాదం

కొలిచిన, పరీక్ష-రక్షిత రీఫ్యాక్టరింగ్

చిన్న మందగమనం

స్థిరమైన వేగం

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

మినీ కేసులు

కేస్ 1 - సైలెంట్ రిగ్రెషన్. డెవలపర్ AIకి “ఈ ఫంక్షన్‌ను సులభతరం చేయమని” చెప్పాడు; AI షరతును తప్పుగా అనువదిస్తుంది మరియు రిటర్న్ గణన విచ్ఛిన్నమైంది. పరీక్ష లేనందున, కస్టమర్ ఫిర్యాదుతో 3 వారాల తర్వాత ఎర్రర్ ఏర్పడుతుంది. జట్టు మొదట క్యారెక్టరైజేషన్ పరీక్ష రాయడం ద్వారా అదే పనిని చేస్తుంది మరియు మొదటి పరుగులో రెడ్ టెస్ట్‌తో లోపాన్ని పట్టుకుంటుంది.

కేస్ 2 - ఉపయోగకరమైన రెండవ కన్ను. కోడ్ సమీక్షలో, వినియోగదారు అధికారం ఇంటర్‌ఫేస్‌లో మాత్రమే తనిఖీ చేయబడుతుందని మరియు సర్వర్‌లో కాదని AI గ్రహించింది. ఇది అనధికార యాక్సెస్ దుర్బలత్వం. ఇంజనీర్ సర్వర్ వైపు అధికార తనిఖీని జోడిస్తుంది; AI తనిఖీ నిజమైన భద్రతా సంఘటనను నిరోధిస్తుంది.

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

సాధారణ తప్పులు

  • పరీక్ష లేకుండా రీఫ్యాక్టరింగ్. ప్రవర్తన సంరక్షించబడిందని నిర్ధారించడానికి ఏమీ మిగిలి లేదు.
  • AI అన్వేషణలను ధృవీకరించకుండా వాటిని వర్తింపజేయడం. తప్పుడు సానుకూలతలు మరియు తప్పుడు ప్రతికూలతలు రెండూ జరుగుతాయి.
  • ఫార్మాట్ సమస్యలపై మానవ సమయాన్ని వృధా చేస్తున్నారు. స్వయంచాలక సాధనాల ద్వారా పరిష్కరించబడే పనులపై దృష్టి కేంద్రీకరించడం నిజమైన నష్టాలను కప్పివేస్తుంది.
  • "నో ప్రాబ్లమ్" అనే సమాధానాన్ని గ్యారంటీగా తీసుకోవడం. AI దుర్బలత్వాన్ని దాటవేయగలదు; మానవ సమీక్ష అవసరం.
  • మొత్తం అప్పును ఒకేసారి చెల్లించేందుకు ప్రయత్నిస్తున్నారు. ప్రధాన రీరైట్‌లు ప్రమాదకరం; పరీక్ష ద్వారా కొలవబడిన మరియు రక్షించబడే దశలు ప్రాధాన్యత ఇవ్వబడతాయి.

సారాంశంలో

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

అప్లికేషన్ టాస్క్

40-70 లైన్‌ను తీసుకోండి, మీరు కలిగి ఉన్న కొంత సంక్లిష్టమైన ఫంక్షన్‌ను తీసుకోండి (లేదా AIని రూపొందించండి). ముందుగా నిర్మాణాత్మక సమీక్ష ప్రాంప్ట్‌ను అనుసరించండి మరియు కనుగొన్న వాటిని [క్రిటికల్]/[మీడియం]/[తక్కువ]గా క్రమబద్ధీకరించండి; కోడ్‌కు వ్యతిరేకంగా కనీసం ఒక అన్వేషణను మాన్యువల్‌గా ధృవీకరించండి. తర్వాత, సురక్షిత రీఫ్యాక్టరింగ్ ప్లాన్ ప్రాంప్ట్‌తో, మొదట క్యారెక్టరైజేషన్ పరీక్షలను రూపొందించి, అమలు చేయండి, ఆపై చిన్న దశల్లో రీఫ్యాక్టరింగ్‌ను వర్తింపజేయండి మరియు ప్రతి దశలో పరీక్షలు ఆకుపచ్చగా ఉన్నాయని ధృవీకరించండి.

చెక్లిస్ట్

  • [ ] నేను ప్రాధాన్యత ట్యాగ్‌లతో సమీక్షను రూపొందించాను (క్లిష్టమైన/మధ్యస్థం/తక్కువ).
  • [ ] నేను కోడ్/పరీక్షకు వ్యతిరేకంగా కనీసం ఒక AI అన్వేషణను ధృవీకరించాను.
  • [ ] నేను రీఫ్యాక్టరింగ్ చేయడానికి ముందు ప్రస్తుత ప్రవర్తనను పరీక్షించాను.
  • [ ] నేను చిన్న దశలలో మార్పులు చేసాను మరియు ప్రతి దశలోనూ పరీక్షలను అమలు చేసాను.
  • [ ] నేను ప్రాంప్ట్‌లో "బిహేవియర్ అలాగే ఉండాలి" అనే పరిమితిని పేర్కొన్నాను.
  • [ ] భద్రతా పరిశోధనలకు మానవ నిర్ధారణ అవసరమని నేను ధృవీకరించాను.