JavaScript में कोड रिव्यू: क्या जाँचें और व्यवहार में फीडबैक कैसे दें

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

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

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

परिचय: code review "बग ढूँढना" क्यों नहीं है

\n

Code review (कोड रिव्यू) केवल एक औपचारिकता या टाइपो ढूँढने का तरीका नहीं है। JavaScript और Node.js पर आधुनिक डेवलपमेंट में, यह कोड की गुणवत्ता बनाए रखने, टीम में ज्ञान साझा करने और तकनीकी ऋण को रोकने का मुख्य उपकरण है। हालाँकि, कई डेवलपर रिव्यू को केवल सिंटैक्स जाँच तक सीमित कर देते हैं, जिससे आर्किटेक्चरल समस्याएँ, प्रदर्शन और पठनीयता छूट जाती है।

\n

इस लेख में, हम विस्तार से देखेंगे कि JavaScript कोड में वास्तव में क्या जाँचना चाहिए (Node.js के उदाहरण के साथ), और फीडबैक कैसे दें ताकि सहकर्मी को ठेस न पहुँचे, बल्कि उसे बढ़ने में मदद मिले। कोड के व्यावहारिक उदाहरण सामग्री को मजबूत करने में मदद करेंगे।

\n\n

1. JavaScript कोड में क्या जाँचें: व्यावहारिक चेकलिस्ट

\n

आइए जाँच के विशिष्ट बिंदुओं से शुरू करें। उन्हें तीन स्तरों में विभाजित करें: सिंटैक्स/शैली, तर्क/सुरक्षा और आर्किटेक्चर।

\n\n

1.1. कोड शैली और फ़ॉर्मेटिंग

\n

यहाँ सब कुछ सरल है: लिंटर (ESLint) और फ़ॉर्मेटर (Prettier) का उपयोग करें। रिव्यू में स्पेस को लेकर बहस नहीं होनी चाहिए। प्रोजेक्ट में एक बार कॉन्फ़िग सेट करें। जाँचें कि:

\n
    \n
  • कोड eslint-config-airbnb या आपकी कस्टम सेटिंग्स के नियमों का पालन करता है।
  • \n
  • कोई अनावश्यक console.log नहीं है (यदि यह dev मोड नहीं है)।
  • \n
  • वेरिएबल के नाम सार्थक हैं: const userData, न कि const x।
  • \n
\n\n

1.2. एसिंक्रोनसिटी (Promise, async/await) के साथ काम करने का तर्क

\n

Node.js में यह त्रुटियों का एक सामान्य क्षेत्र है। जाँचें:

\n
    \n
  • एसिंक्रोनस फ़ंक्शन में त्रुटि प्रबंधन। try/catch की अनुपस्थिति प्रक्रिया को क्रैश कर सकती है।
  • \n
  • लूप के अंदर await का सही उपयोग। यदि कार्य एक-दूसरे पर निर्भर नहीं हैं, तो Promise.all का उपयोग करें।
  • \n
\n

खराब:

\n
// अनुक्रमिक निष्पादन, जबकि समानांतर किया जा सकता था\nconst results = [];\nfor (const id of ids) {\n  const data = await fetchData(id); // प्रत्येक अनुरोध की प्रतीक्षा करें\n  results.push(data);\n}\n
\n

अच्छा:

\n
// समानांतर निष्पादन\nconst promises = ids.map(id => fetchData(id));\nconst results = await Promise.all(promises);\n
\n\n

1.3. सुरक्षा और मेमोरी लीक

\n

Node.js के लिए महत्वपूर्ण:

\n
    \n
  • इंजेक्शन का अभाव: अत्यंत आवश्यकता के बिना eval या new Function का उपयोग न करें।
  • \n
  • स्ट्रीम, DB कनेक्शन और फ़ाइल डिस्क्रिप्टर को बंद करना।
  • \n
  • इनपुट डेटा का सत्यापन। अनुरोध बॉडी (req.body) पर कभी भरोसा न करें।
  • \n
\n\n

2. फीडबैक कैसे दें: मनोविज्ञान और रणनीति

\n

एक आदर्श जाँच सूची भी काम नहीं करेगी यदि फीडबैक कोड लेखक में PR बंद करने और नौकरी छोड़ने की इच्छा जगाए। यहाँ कुछ नियम हैं।

\n\n

2.1. "सैंडविच" नियम (वैकल्पिक लेकिन प्रभावी)

\n

सकारात्मक टिप्पणी से शुरू करें, फिर समस्या बताएँ, और समर्थन के साथ समाप्त करें। उदाहरण के लिए:

\n
    \n
  • "कैशिंग के लिए Map का उपयोग करने का शानदार समाधान!"
  • \n
  • "हालाँकि, यहाँ मूल ऐरे के म्यूटेशन की संभावित समस्या है। आइए .forEach() के साथ push के बजाय .map() का उपयोग करें।"
  • \n
  • "बाकी कोड साफ है, त्वरित फिक्स के लिए धन्यवाद!"
  • \n
\n\n

2.2. कोड पर टिप्पणी करें, व्यक्ति पर नहीं

\n

"तुमने भयानक लूप लिखा है" कहने के बजाय कहें "इस लूप को पठनीयता में सुधार के लिए Array.reduce से बदला जा सकता है"। नकारात्मक संदर्भ में सर्वनाम "तुम" से बचें।

\n\n

2.3. संदर्भ और विकल्प दें

\n

सिर्फ "यह गलत है" लिखना खराब है। क्यों समझाएँ और एक विकल्प सुझाएँ। खराब टिप्पणी का उदाहरण:

\n
"var का उपयोग न करें।"
\n

अच्छी टिप्पणी:

\n
"यहाँ var वेरिएबल को ग्लोबल स्कोप में बनाता है, जिससे बग हो सकते हैं। आइए इसे const से बदलें, क्योंकि मान पुनः असाइन नहीं हो रहा है।"

ब्लॉग

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