కోడ్ నాణ్యత దెబ్బతినకుండా చూసే ఒక సులభమైన నేమింగ్ ట్రిక్
మీ క్లాస్లకు Service, Manager, లేదా Handler అని పేరు పెట్టడం ఆపండి.
ఈ పేర్లు అస్పష్టంగా ఉంటాయి. ఇవి తప్పుడు డిజైన్కు అనుమతి ఇచ్చినట్లు అవుతాయి.
మీరు ఒక క్లాస్కు UserService అని పేరు పెడితే, యూజర్కు సంబంధించిన దేన్నైనా దానిలో ఉంచవచ్చు. మీరు పాస్వర్డ్ రీసెట్లు, రోల్ అసైన్మెంట్లు మరియు డిస్కౌంట్ కాలిక్యులేషన్లను కూడా జోడించవచ్చు. ఇవన్నీ యూజర్కు సంబంధించినవే కాబట్టి, ఆ పేరు సరైనదే అనిపిస్తుంది.
కానీ ఈ పనులకు వేర్వేరు నియమాలు మరియు డిపెండెన్సీలు ఉంటాయి. ఒకే UserService ఒక పెద్ద గందరగోళంగా మారిపోతుంది.
దానికి బదులుగా 'agentive naming' ప్రయత్నించండి. ఒక నిర్దిష్ట చర్యను వివరించే పేర్లను ఉపయోగించండి:
• UserRegistrar • PasswordResetter • RoleAssigner • DiscountCalculator
ఈ పేర్లు ఒక రకమైన అడ్డంకిని (friction) సృష్టిస్తాయి. ఒక PasswordResetterకి అకస్మాత్తుగా ఇన్వాయిస్లను జనరేట్ చేసే టూల్ అవసరమైతే, ఆ తప్పు స్పష్టంగా కనిపిస్తుంది. ఆ పేరు వల్ల తప్పుడు డిజైన్ను విస్మరించడం కష్టమవుతుంది.
UserService వంటి అస్పష్టమైన పేరు ప్రోగ్రామింగ్లోని "any" టైపు లాంటిది. ఇది దేన్నైనా అంగీకరిస్తుంది. ఖచ్చితమైన పేర్లు సరిహద్దులను (boundaries) సృష్టిస్తాయి.
AI వల్ల ఇప్పుడు ఇది మరింత ముఖ్యమైనది.
కొత్త లాజిక్ను ఎక్కడ ఉంచాలో నిర్ణయించడానికి AI కోడింగ్ ఏజెంట్లు మీ ప్రస్తుత కోడ్ను చూస్తాయి. మీరు AIకి ఒక UserService ఇస్తే, అది అదే గందరగోళమైన క్లాస్కు కొత్త ఫీచర్లను జోడిస్తుంది. అది కూడా చాలా వేగంగా చేస్తుంది.
మీరు AIకి ఒక PasswordResetter ఇస్తే, అది ఆ నిర్దిష్ట సరిహద్దులోనే ఉంటుంది.
మీ కోడ్బేస్ అనేది AI కోసం ఒక ప్రాంప్ట్ (prompt). అస్పష్టమైన పేర్లు అస్పష్టమైన డిజైన్ను నేర్పిస్తాయి.
పేర్లు మంచి ఆర్కిటెక్చర్ను సృష్టించవు. అవి తప్పుడు ఆర్కిటెక్చర్ను స్పష్టంగా కనిపించేలా చేస్తాయి.
ప్రతి బాధ్యతకు (responsibility) ఎంత ఖచ్చితమైన పేరు పెట్టాలంటే, సంబంధం లేని కోడ్ చూస్తే అది తప్పుగా అనిపించాలి.
Source: https://dev.to/caeus/one-simple-naming-trick-that-keeps-vibe-coded-code-from-rotting-5hf5
Optional learning community: https://t.me/GyaanSetuAi