Elm:
कोड की सफाई
कैसे करें:
यदि आपके पास एक Elm फ़ंक्शन है जो बहुत अधिक काम कर रहा है, जैसे कि यूआई लॉजिक को स्टेट अपडेट्स के साथ मिलाना, तो यह रिफैक्टरिंग के लिए एक परफेक्ट उम्मीदवार है। मूल रूप में:
updateAndFormat : String -> Model -> (Model, Cmd Msg)
updateAndFormat input model =
let
updatedModel = { model | userInput = input }
in
if String.length input > 5 then
( updatedModel, Cmd.none )
else
( model, Cmd.none )
रिफैक्टरिंग के बाद, हम अलग-अलग फ़ंक्शनों में लॉजिक निकालकर चिंताओं को अलग करते हैं:
-- अपडेट लॉजिक अलग है
updateUserInput : String -> Model -> Model
updateUserInput input model =
{ model | userInput = input }
-- इनपुट का फॉर्मेटिंग (व्यू) लॉजिक भी अलग है
formatUserInput : Model -> (Model, Cmd Msg)
formatUserInput model =
if String.length model.userInput > 5 then
( model, Cmd.none )
else
( { model | userInput = "" }, Cmd.none ) -- उदाहरण के लिए अगर इनपुट बहुत छोटा है तो इसे साफ़ करें।
-- अपडेट फंक्शन अब सहायक फंक्शनों का उपयोग करता है
updateAndFormat : String -> Model -> (Model, Cmd Msg)
updateAndFormat input model =
model
|> updateUserInput input
|> formatUserInput
इन परिवर्तनों के साथ, आपके पास स्पष्ट अलगाव है, और प्रत्येक फंक्शन को समझना और परीक्षण करना आसान है।
गहन विवेचन
रिफैक्टरिंग को एक औपचारिक अभ्यास के रूप में प्रोग्रामिंग के शुरुआती दिनों में वापस ले जाया जा सकता है, जब कोड को बदलने की लागत को पहले ही विकास प्रक्रिया के एक महत्वपूर्ण पहलू के रूप में पहचाना जा रहा था। विशेष रूप से, मार्टिन फाउलर की पुस्तक “रिफैक्टरिंग: इम्प्रूविंग द डिज़ाइन ऑफ़ एक्जिस्टिंग कोड,” जो 1990 के दशक के अंत में प्रकाशित हुई थी, वास्तव में एक संरचित दृष्टिकोण और “कोड स्मेल्स” के कैटलॉग के साथ रिफैक्टरिंग के लिए मंच तैयार किया।
Elm के संदर्भ में, रिफैक्टरिंग भाषा की ताकतों में टैप करती है, जैसे कि इसकी मजबूत प्रकार प्रणाली, जो प्रक्रिया के दौरान आत्मविश्वास को बढ़ावा देती है। मैनुअल रिफैक्टरिंग के विकल्प में स्वचालित कोड परिवर्तन उपकरण शामिल हो सकते हैं, लेकिन Elm के टूलिंग क्षेत्र में अभी भी कुछ पुरानी भाषाओं की तुलना में परिपक्व हो रहा है। क्रियान्वयन विवरण अक्सर सामान्य रिफैक्टरिंग्स जैसे फ़ंक्शन निष्कर्षण, नाम बदलने, और सरलीकरण शर्तों के इर्द-गिर्द घूमते हैं। Elm का कंपाइलर रिफैक्टरिंग में एक महत्वपूर्ण सहयोगी है, क्योंकि यह आपको बहुत अधिक भुलाव नहीं देता—जब भी कुछ गलत होता है तो यह चिल्लाता है, सुनिश्चित करता है कि आपका रिफैक्टर किया गया कोड अभी भी काम करता है।