లెగసీ కోడ్ వయస్సు పెరిగే కొద్దీ మరింత అధ్వాన్నంగా మారుతుంది
లెగసీ కోడ్ కాలక్రమేణా మెరుగుపడదు. అది మరింత అధ్వాన్నంగా మారుతుంది.
గత వారం, ఒక బగ్ను సరిచేయడానికి నేను మూడు గంటలు గడిపాను. అది కేవలం 20 నిమిషాల్లో పూర్తవ్వాల్సింది. సమస్య 2019 నాటి ఒక వాలిడేషన్ మాడ్యూల్లో ఉంది. "అది పనిచేస్తుంది" అని అందరూ దానిని విస్మరించారు. కానీ అది పనిచేయడం లేదు. ఆ ఫైల్లో 2020 నాటి ఒక TODO కామెంట్ను నేను కనుగొన్నాను.
చాలా మంది లెగసీ కోడ్ను ఒక ఐచ్ఛిక అప్పులా భావిస్తారు. సమయం దొరికినప్పుడు దానిని తీర్చివేయవచ్చని వారు అనుకుంటారు. కానీ లెగసీ కోడ్ ఒక బూజులాంటిది. అది వ్యాపిస్తుంది. మీ సిస్టమ్లోని ఇతర భాగాలను కూడా కలుషితం చేస్తుంది. మీరు దానిని ఎంత కాలం విస్మరిస్తే, దానిని శుభ్రం చేయడం అంత ఖరీదైనదిగా మారుతుంది.
ఇది ఒక చెడు చక్రం సృష్టిస్తుంది:
- మీరు ఒక గందరగోళంగా ఉన్న ప్రాజెక్ట్ను పొందుతారు.
- మీ ఫీచర్ పనిచేయడం కోసం మీరు మరో if statementను జోడిస్తారు.
- ఆరు నెలల తర్వాత, మరొకరు కూడా అదే చేస్తారు.
- ఒక సంవత్సరం తర్వాత, ఆ ఫైల్లో 800 లైన్లు ఉంటాయి మరియు ఒక్క టెస్ట్ కూడా ఉండదు.
ఈ "పనిచేసే" కోడ్కు కొన్ని దాగి ఉన్న ఖర్చులు ఉన్నాయి:
- డెవలప్మెంట్ వేగం తగ్గుతుంది. కోడ్ రాయడం కంటే సందర్భాన్ని (context) అర్థం చేసుకోవడానికే మీరు ఎక్కువ సమయం కేటాయిస్తారు.
- బగ్లు పెరుగుతాయి. ఒక దానిని సరిచేయడం వల్ల మరొకటి పాడవుతుంది.
- ఆన్బోర్డింగ్ కష్టమవుతుంది. లాజిక్ ఎక్కడ చూసినా డూప్లికేట్ ఎందుకు ఉందో అర్థం చేసుకోవడానికి కొత్త డెవలపర్లు ఇబ్బంది పడతారు.
ఈ రెడ్ ఫ్లాగ్స్ పట్ల జాగ్రత్తగా ఉండండి:
- పనికిరాని లేదా తప్పుగా ఉన్న కామెంట్లు.
- వేర్వేరు ఫైళ్లలో డూప్లికేట్ బిజినెస్ లాజిక్.
- సర్క్యులర్ డిపెండెన్సీలు మరియు హై కప్లింగ్.
ప్రతిదీ మళ్ళీ రాయడానికి ప్రయత్నించకండి. పూర్తి రీరైట్లు 80% సందర్భాల్లో విఫలమవుతాయి. వ్యాపారం కొత్త ఫీచర్ల కోసం వేచి చూస్తుండగా, ఇప్పటికే ఉన్న దానిని మళ్ళీ నిర్మించడానికి మీరు నెలల కొద్దీ సమయం వృధా చేస్తారు.
క్యారెక్టరైజేషన్ టెస్ట్లతో ఇన్క్రిమెంటల్ రిఫ్యాక్టరింగ్ను ఉపయోగించండి:
- ప్రస్తుత ప్రవర్తన వింతగా ఉన్నప్పటికీ, దానిని టెస్ట్ల ద్వారా క్యాప్చర్ చేయండి.
- ఆ ప్రవర్తనను మార్చకుండా రిఫ్యాక్టర్ చేయండి.
- కోడ్ చదవడానికి వీలుగా ఉండే వరకు దీనిని పునరావృతం చేయండి.
- ఆ తర్వాతే నిజమైన టెస్ట్లతో ప్రవర్తనను మార్చండి.
చిక్కుల్లో పడకుండా ఉండటానికి ఈ నియమాలను పాటించండి:
- టెస్ట్లు లేకుండా ఎప్పుడూ రిఫ్యాక్టర్ చేయకండి.
- రిఫ్యాక్టరింగ్ సమయంలో ప్రవర్తనను మార్చకండి. ఒక బగ్ అనేది క్లయింట్ ఆధారపడిన డాక్యుమెంట్ చేయని ఫీచర్గా కూడా ఉండవచ్చు.
- నిశ్శబ్దంగా ఉన్న కోడ్ను అలాగే వదిలేయండి. ఒక మాడ్యూల్ మూడు సంవత్సరాలుగా మారకపోయినా మరియు ఎటువంటి సమస్యలను సృష్టించకపోయినా, దానిని వదిలేయండి.
మీరు తరచుగా తాకే కోడ్పై మీ శక్తిని కేటాయించండి.
Source: https://dev.to/taina_costa_f/legacy-code-nao-envelhece-como-vinho-quanto-mais-espera-pior-fica-132h
