C# में कोड रिव्यू: क्या जाँचें और शुरुआती लोगों को फीडबैक कैसे दें

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

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

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

C# में कोड रिव्यू: कहाँ से शुरू करें और क्या देखें

\n\n

कोड रिव्यू (कोड की समीक्षा) केवल एक औपचारिकता नहीं है, बल्कि परियोजना की गुणवत्ता बढ़ाने और टीम के विकास का एक शक्तिशाली उपकरण है। C# में शुरुआती डेवलपर्स के लिए, दूसरों के कोड की जाँच करने की प्रक्रिया अक्सर डर पैदा करती है: "कहीं मैं कोई बग तो नहीं छोड़ दूंगा?", "मैं सहकर्मी को कैसे बताऊं कि उसका कोड खराब है?" इस लेख में, हम चर्चा करेंगे कि .NET परियोजनाओं में कोड रिव्यू के दौरान किन बातों पर ध्यान देना चाहिए और फीडबैक कैसे दें ताकि आपकी बात सुनी जाए, न कि नाराजगी हो।

\n\n

हम सिंटैक्स त्रुटियों जैसी स्पष्ट चीजों के बारे में बात नहीं करेंगे - कंपाइलर उन्हें पकड़ लेता है। हमारा लक्ष्य आर्किटेक्चर, पठनीयता और प्रदर्शन की समस्याओं को देखना सीखना है, साथ ही टिप्पणियों को सही ढंग से तैयार करना है।

\n\n

1. C# में आर्किटेक्चर और SOLID सिद्धांत

\n\n

C# कोड में सबसे पहले जाँचें कि क्या वह SOLID सिद्धांतों का पालन करता है। एक छोटे से मेथड में भी एकल जिम्मेदारी (Single Responsibility) का उल्लंघन देखा जा सकता है।

\n\n

क्या जाँचें:

\n
    \n
  • मेथड और क्लास का आकार। यदि कोई मेथड 20-30 लाइनों से लंबा है - तो संभवतः वह बहुत अधिक काम कर रहा है। इसे कई प्राइवेट मेथड में विभाजित करने का सुझाव दें।
  • \n
  • डिपेंडेंसी इनवर्जन। क्लासेस को new के माध्यम से अपनी डिपेंडेंसी नहीं बनानी चाहिए। इसके बजाय, डिपेंडेंसी इंजेक्शन (DI) का उपयोग करें। खराब कोड का उदाहरण:
  • \n
\n\n
// खराब: क्लास स्वयं डिपेंडेंसी बना रहा है\npublic class OrderService\n{\n    private readonly EmailSender _sender = new EmailSender();\n\n    public void ProcessOrder(Order order)\n    {\n        // लॉजिक...\n        _sender.SendEmail(order.CustomerEmail);\n    }\n}
\n\n

सही तरीका - इंटरफ़ेस और DI के माध्यम से:

\n\n
// अच्छा: डिपेंडेंसी इंजेक्ट की गई है\npublic class OrderService\n{\n    private readonly IEmailSender _sender;\n\n    public OrderService(IEmailSender sender)\n    {\n        _sender = sender;\n    }\n\n    public void ProcessOrder(Order order)\n    {\n        // लॉजिक...\n        _sender.SendEmail(order.CustomerEmail);\n    }\n}
\n\n
    \n
  • बारबरा लिस्कोव प्रतिस्थापन सिद्धांत (LSP)। वंशजों को बेस क्लास के व्यवहार को नहीं तोड़ना चाहिए। उदाहरण के लिए, यदि आपके पास Fly() मेथड वाला Bird क्लास है, और आप Penguin : Bird बनाते हैं - यह LSP का उल्लंघन है, क्योंकि पेंगुइन उड़ते नहीं हैं। बेहतर होगा कि IFlyable इंटरफ़ेस बनाया जाए।
  • \n
\n\n

2. .NET में त्रुटि प्रबंधन और अपवाद

\n\n

C# में एक शक्तिशाली अपवाद प्रणाली है, लेकिन शुरुआती अक्सर इसका गलत उपयोग करते हैं। कोड रिव्यू के दौरान निम्नलिखित बिंदुओं पर ध्यान दें:

\n\n
    \n
  • खाली catch ब्लॉक। catch (Exception) { } जैसा कोड एक टाइम बम है। त्रुटि को निगल लिया जाता है, और आपको समस्या के बारे में कभी पता नहीं चलेगा। हमेशा अपवाद को लॉग करें या इसे आगे भेजें।
  • \n
  • बहुत सामान्य अपवाद। Exception को पकड़ना एक बुरी प्रथा है। विशिष्ट प्रकार पकड़ने का प्रयास करें: SqlException, InvalidOperationException आदि।
  • \n
  • प्रवाह नियंत्रण के लिए अपवादों का उपयोग। if-else के बजाय try-catch का उपयोग न करें। खराब कोड का उदाहरण:
  • \n
\n\n
// खराब: अपवाद को लॉजिक के हिस्से के रूप में उपयोग करना\ntry\n{\n    int.Parse(userInput);\n}\ncatch (FormatException)\n{\n    Console.WriteLine("गलत फॉर्मेट");\n}
\n\n

सही तरीका - int.TryParse():

\n\n
// अच्छा: बिना अपवाद के जाँच\nif (int.TryParse(userInput, out int result))\n{\n    // result के साथ काम करें\n}\nelse\n{\n    Console.WriteLine("गलत फॉर्मेट");\n}
\n\n

3. प्रदर्शन और मेमोरी प्रबंधन

\n\n

C# में शुरुआती डेवलपर्स के लिए, प्रदर्शन का विषय अक्सर पीछे रह जाता है। हालांकि, कोड रिव्यू अक्षम निर्माणों को इंगित करने का एक शानदार अवसर है।

\n\n

सामान्य समस्याएं:

\n
    \n
  • अत्यधिक
  • \n

ब्लॉग

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