Fish Shell:
कोड की सफाई
कैसे करें:
कल्पना करें कि आपके पास एक स्क्रिप्ट है जो समय के साथ काफी बढ़ गई है। यह साधारण शुरू होती है, लेकिन अब यह तर्कों की टेंटकुल्स के साथ फैल रहा है। यहाँ एक छोटे उदाहरण के साथ रिफैक्टरिंग का एक फ़ंक्शन अधिक पठनीय और कुशल बनाने का है:
रिफैक्टरिंग से पहले:
function old_and_clunky
set color (cat ~/.config/fish/color_theme)
if test "$color" = 'blue'
echo 'Blue theme set!'
else if test "$color" = 'red'
echo 'Red theme set!'
else
echo 'Default theme set!'
end
end
रिफैक्टरिंग के बाद:
function set_theme_color
set theme_color (cat ~/.config/fish/color_theme)
switch $theme_color
case blue
echo 'Blue theme set!'
case red
echo 'Red theme set!'
default
echo 'Default theme set!'
end
end
रिफैक्टरिंग ने फ़ंक्शन का नाम सुधार कर उसके उद्देश्य का बेहतर वर्णन किया और इसे एक अधिक शुद्ध switch
स्टेटमेंट के साथ प्रतिस्थापित किया।
नमूना आउटपुट:
ब्लू थीम सेट!
गहराई में जाना
रिफैक्टरिंग का पहली बार विस्तार से वर्णन मार्टिन फौलर की प्रमुख पुस्तक “Refactoring: Improving the Design of Existing Code” में किया गया था। पुस्तक ने नई कार्यक्षमता लिखे बिना कोड में सुधार करने के लिए एक संरचित दृष्टिकोण उतारा। तब से कई रिफैक्टरिंग तकनीकें पेश की गई हैं, और यह अवधारणा आधुनिक सॉफ्टवेयर विकास का एक मौलिक हिस्सा बन गई है।
फिश शेल वातावरण में, रिफैक्टरिंग अन्य प्रोग्रामिंग संदर्भों की तुलना में थोड़ी अलग दिख सकती है, इसकी विशेषज्ञ सिंटैक्स और कमांड-लाइन प्रकृति के कारण। फिश में स्क्रिप्ट्स की रिफैक्टरिंग के विकल्प किसी अन्य शैल भाषा में पोर्टिंग या अधिक उन्नत स्क्रिप्ट प्रबंधन के लिए बाहरी उपकरणों का उपयोग करना शामिल हो सकते हैं। हालांकि, मूल फिश सिंटैक्स को बनाए रखना अक्सर शेल की विशेषताओं के साथ बेहतर एकीकरण का मतलब होता है और कुल मिलाकर एक अधिक सहज अनुभव होता है।
फिश शेल में रिफैक्टरिंग करते समय, आप मुख्य रूप से अन्य भाषाओं में आम व्यापक-स्कोप कक्षाओं या मॉड्यूल्स के विपरीत कार्यों और आदेशों से निपट रहे होते हैं। यह ठीकता रिफैक्टरिंग के कार्य को अधिक तत्काल और सीधा प्रक्रिया बना सकती है, लेकिन यह साफ, संक्षिप्त, और बनाए रखने योग्य कोड के महत्व पर भी जोर देती है।
देखें भी
- मार्टिन फौलर की रिफैक्टरिंग वेबसाइट: https://refactoring.com/
- आधिकारिक फिश शेल दस्तावेज़ीकरण: https://fishshell.com/docs/current/index.html