JavaScript:
कोड की सफाई
कैसे:
आइए एक सरल उदाहरण पर ध्यान दें जहां रिफैक्टरिंग आपके कोड को अधिक संक्षिप्त और पठनीय बना सकती है। यहाँ, हम एक फ़ंक्शन को रिफैक्टर करते हैं जो संख्याओं की एक श्रेणी का योग की गणना करता है।
पहले:
function calculateSum(arr) {
let sum = 0;
for (let i = 0; i < arr.length; i++) {
sum += arr[i];
}
return sum;
}
console.log(calculateSum([1, 2, 3, 4])); // आउटपुट: 10
बाद में:
function calculateSum(arr) {
return arr.reduce((sum, num) => sum + num, 0);
}
console.log(calculateSum([1, 2, 3, 4])); // आउटपुट: 10
देखें कैसे reduce
मेथड फंक्शन के आकार को कम करते हुए भी कार्यक्षमता को अक्षुण्ण रखता है? यही रिफैक्टरिंग है आपके लिए।
गहन गोता
रिफैक्टरिंग एक औपचारिक प्रथा के रूप में उभरी नहीं थी जब तक कि 1999 में मार्टिन फाउलर की पुस्तक “Refactoring: Improving the Design of Existing Code” का प्रकाशन नहीं हुआ था। यह पुस्तक, साथ ही ऐजाइल सॉफ्टवेयर विकास के उदय ने रिफैक्टरिंग को मुख्यधारा में धकेलने में मदद की।
रिफैक्टरिंग का वर्णन सॉफ्टवेयर विकास के एक पहलू के रूप में करना जैसे किसी कारखाने को साफ करने की व्याख्या करने जैसा है: आप इसे इसलिए करते हैं ताकि अगली बार जब आपको कुछ ठीक करना पड़े (इस मामले में, कोड), तो आप गड़बड़ से निपटने में कम समय लगाएंगे और असली समस्या पर अधिक।
जब हम रिफैक्टरिंग के विकल्पों की चर्चा करते हैं, हम एक व्यापक चर्चा में प्रवेश करते हैं जो सॉफ्टवेयर रखरखाव की रणनीतियों के बारे में है। कोई पूर्ण पुनर्लेखन के लिए चुन सकता है, उदाहरण के लिए, लेकिन वह अक्सर अधिक महंगा और जोखिम भरा होता है। क्रमिक रूप से रिफैक्टर करें, और आप बिना अचानक ओवरहॉल से जहाज को डुबोए चल रहे लाभ को प्राप्त करते हैं।
रिफैक्टरिंग को इंटिग्रेटेड डेवलपमेंट एनवायरनमेंट्स (IDEs) और जावास्क्रिप्ट ईकोसिस्टम में JSHint, ESLint, और Prettier जैसे उपकरणों के विकास द्वारा सहायता प्राप्त हुई है, जो कोड की गुणवत्ता जांच को स्वचालित करते हैं और रिफैक्टरिंग के अवसरों को हाइलाइट करते हैं।
यह सब साफ, अभिव्यक्त, और रखरखाव योग्य कोड के बारे में है। जटिल एल्गोरिदम, डेटा संरचना अनुकूलन, या यहाँ तक कि प्रक्रियात्मक से कार्यात्मक प्रोग्रामिंग शैलियों में स्विच करने जैसे वास्तुशिल्प परिवर्तन भी एक रिफैक्टरिंग प्रक्रिया का हिस्सा हो सकते हैं।
रिफैक्टरिंग को सावधानीपूर्वक किया जाना चाहिए; यह आवश्यक है कि अपने परिवर्तनों ने सॉफ्टवेयर के व्यवहार को अनपेक्षित रूप से नहीं बदला है इसे सुनिश्चित करने के लिए एक मजबूत परीक्षण समूह हो - एक और कारण क्यों टेस्ट-ड्रिवन डेवलपमेंट (TDD) रिफैक्टरिंग के साथ अच्छी तरह से मेल खाता है, क्योंकि यह डिफ़ॉल्ट रूप से वह सुरक्षा जाल प्रदान करता है।
अधिक देखें
मार्टिन फाउलर की रिफैक्टरिंग पुस्तक: रिफैक्टरिंग - मौजूदा कोड के डिजाइन में सुधार
जावास्क्रिप्ट टेस्टिंग फ्रेमवर्क (�रिफैक्टरिंग से फंक्शनलिटी टूटने की सुनिश्चितता के लिए):
कोड क्वालिटी और रिफैक्टरिंग सपोर्ट के लिए उपकरण:
- ESLint: ESLint - प्लगएबल जावास्क्रिप्ट लिंटर
- Prettier: प्रिटियर - ओपिनियनेटेड कोड फॉर्मेटर