C++ में क्लीन कोड: पठनीय कोड लिखने के सिद्धांत

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

C++ में Clean Code: ऐसा कोड कैसे लिखें जो सहकर्मियों को दिखाने में शर्म न आए



प्रत्येक C++ डेवलपर को देर-सबेर ऐसी स्थिति का सामना करना पड़ता है जब एक महीने बाद उनका अपना कोड "अंधेरे जंगल" में बदल जाता है। int a जैसे वेरिएबल, 300 लाइनों वाले फंक्शन और पूरे प्रोजेक्ट में मैजिक नंबर्स — परिचित लगता है? इस लेख में हम C++ पर लागू Clean Code के सिद्धांतों पर चर्चा करेंगे, ताकि आपका कोड न केवल काम करे बल्कि दूसरों (और भविष्य में आपके लिए भी) समझने योग्य हो।



1. वेरिएबल्स, फंक्शन्स और क्लासेस का नामकरण



एक अच्छा नाम आधा काम कर देता है। C++ में वेरिएबल्स और फंक्शन्स के लिए camelCase, क्लासेस के लिए PascalCase और कॉन्स्टेंट के लिए UPPER_CASE का उपयोग करने की प्रथा है (हालांकि आधुनिक C++ में constexpr को प्राथमिकता दी जाती है)।



खराब उदाहरण:

int d; // elapsed time in daysfloat x; // salary multiplierbool fl; // is file loaded?


अच्छा उदाहरण:

int elapsedDays;float salaryMultiplier;bool isFileLoaded;


नियम सरल है: नाम को "यह क्या है?" या "यह क्या करता है?" प्रश्न का उत्तर देना चाहिए। संक्षिप्ताक्षरों से बचें (सामान्य रूप से स्वीकृत को छोड़कर, जैसे इंडेक्स के लिए idx)। बूलियन वेरिएबल्स के लिए is, has, can उपसर्गों का उपयोग करें।



2. फंक्शन्स छोटे होने चाहिए और एक ही काम करने चाहिए



Clean Code का क्लासिक सिद्धांत — फंक्शन को बिल्कुल एक ही कार्य करना चाहिए। यदि आप फंक्शन के लिए कोई छोटा और समझने योग्य नाम नहीं सोच सकते — तो संभवतः वह बहुत अधिक काम कर रहा है।



खराब उदाहरण:

void processData(std::vector<int>& data) {    // सॉर्टिंग    std::sort(data.begin(), data.end());    // डुप्लिकेट हटाना    data.erase(std::unique(data.begin(), data.end()), data.end());    // औसत की गणना    double sum = 0;    for (int val : data) sum += val;    double avg = sum / data.size();    // आउटपुट    std::cout << "Average: " << avg << std::endl;}


अच्छा उदाहरण:

std::vector<int> sortAndUnique(std::vector<int> data) {    std::sort(data.begin(), data.end());    data.erase(std::unique(data.begin(), data.end()), data.end());    return data;}

double calculateAverage(const std::vector<int>& data) { if (data.empty()) return 0.0; double sum = std::accumulate(data.begin(), data.end(), 0.0); return sum / data.size();}

void printAverage(const std::vector<int>& data) { auto processed = sortAndUnique(data); double avg = calculateAverage(processed); std::cout << "Average: " << avg << std::endl;}


प्रत्येक फंक्शन एक कार्य हल करता है, आसानी से परीक्षण योग्य और पुन: प्रयोग करने योग्य है। फंक्शन की लंबाई 20-30 लाइनों से अधिक नहीं होनी चाहिए — यह एक अच्छा मार्गदर्शक है।



3. मैजिक नंबर्स और डुप्लिकेशन से बचें



मैजिक नंबर्स वे नंबर होते हैं जिनका मान संदर्भ से स्पष्ट नहीं होता। उनके बजाय नामित कॉन्स्टेंट का उपयोग करें।



खराब उदाहरण:

double calculatePrice(double base) {    return base * 1.2 + 5.0;}


अच्छा उदाहरण:

constexpr double TAX_RATE = 1.2;constexpr double DELIVERY_FEE = 5.0;

double calculatePrice(double basePrice) { return basePrice * TAX_RATE + DELIVERY_FEE;}


यही बात कोड डुप्लिकेशन पर भी लागू होती है। यदि आप कोड के एक ब्लॉक को एक से अधिक बार कॉपी कर रहे हैं — तो उसे एक फंक्शन में डालें। DRY (Don't Repeat Yourself) नियम — रखरखाव योग्य कोड का आधार है।



4. कमेंट्स खराब कोड के लिए बहाना नहीं हैं



सबसे अच्छा कमेंट वह है जो अच्छी तरह से लिखा गया कोड हो जिसमें स्पष्टीकरण की आवश्यकता न हो। कमेंट्स को यह समझाना चाहिए कि कोड क्यों कुछ गैर-स्पष्ट कर रहा है, न कि वह क्या कर रहा है।



खराब उदाहरण:



                
                

ब्लॉग

पुस्तक अनुशंसाएँ