Dart:
रीफैक्टरिंग

कैसे करें:

उदाहरण 1: नाम बदलना और मेथड्स निकालना

रीफैक्टरिंग से पहले, आपके पास एक कोड खंड हो सकता है जो विभिन्न स्तरों के अमूर्तीकरण या जिम्मेदारियों को मिश्रित करता है, जैसे कि छूट की गणना करना और फिर उसे लागू करना:

void main() {
  var price = 100.0;
  var discount = 0.2;
  var finalPrice = price - (price * discount);
  print("अंतिम मूल्य: $finalPrice");
}

आउटपुट:

अंतिम मूल्य: 80.0

रीफैक्टरिंग के बाद, आप छूट की गणना को अपने स्वयं के मेथड में निकाल सकते हैं और इसे एक सार्थक नाम दे सकते हैं:

void main() {
  var price = 100.0;
  var discount = 0.2;
  var finalPrice = calculateFinalPrice(price, discount);
  print("अंतिम मूल्य: $finalPrice");
}

double calculateFinalPrice(double price, double discount) {
  return price - (price * discount);
}

आउटपुट:

अंतिम मूल्य: 80.0

गणना को एक मेथड में निकालकर, अब आपके पास एक स्पष्ट रूप से परिभाषित ऑपरेशन है जिसे पुनः उपयोग, स्वतंत्र रूप से परीक्षण और आसानी से संशोधित किया जा सकता है।

उदाहरण 2: शर्तीय अभिव्यक्तियों को सरल बनाना

रीफैक्टरिंग से पहले, शर्तीय वक्तव्य बहुत जटिल या पढ़ने के लिए कठिन हो सकते हैं:

void main() {
  var customerType = "सामान्य";
  double discount;
  
  if (customerType == "सामान्य") {
    discount = 0.05;
  } else if (customerType == "सदस्य") {
    discount = 0.1;
  } else {
    discount = 0.0;
  }

  print("छूट: $discount");
}

आउटपुट:

छूट: 0.05

रीफैक्टरिंग के बाद, ग्राहक प्रकारों और छूटों के अद्यतनों या विस्तारों के लिए स्पष्ट संरचना और आसान अपडेट के लिए एक मैप का उपयोग करने पर विचार करें:

void main() {
  var customerType = "सामान्य";
  var discounts = {
    "सामान्य": 0.05,
    "सदस्य": 0.1,
    "कोई नहीं": 0.0,
  };

  var discount = discounts[customerType] ?? 0.0;
  print("छूट: $discount");
}

आउटपुट:

छूट: 0.05

यह रीफैक्टर कोड को केवल अधिक संश्लेषित नहीं बनाता है, बल्कि छूटों का निर्धारण करने वाले तर्क को एक तरीके से समेटता है जो समझने और बनाए रखने में आसान है।

रीफैक्टरिंग के लिए तृतीय-पक्ष पुस्तकालय

Dart में रीफैक्टरिंग के संदर्भ में, खासकर Flutter ऐप्स के भीतर, Dart DevTools सूट अमूल्य है। इसमें प्रदर्शन उपकरण, एक विजेट निरीक्षक, और एक स्रोत-स्तरीय डिबगर शामिल हैं। हालांकि यह एक तृतीय-पक्ष पुस्तकालय नहीं है, Dart DevTools अक्सर flutter_bloc जैसे पुस्तकालयों के साथ इस्तेमाल किया जाता है जो एक तरीके से राज्य का प्रबंधन करने में मदद करता है जो रीफैक्टरिंग के लिए उपयुक्त है जिससे बेहतर मॉड्यूलरिटी और पठनीयता में सुधार हो। दुर्भाग्यवश, इस प्रविष्टि की गुंजाइश के कारण, तृतीय-पक्ष पुस्तकालयों का उपयोग करते हुए विशिष्ट कोड उदाहरण यहां प्रदान नहीं किए जाएंगे, लेकिन डेवलपर्स को अपने Dart/Flutter अनुप्रयोगों में रीफैक्टरिंग प्रक्रिया को बेहतर बनाने के लिए इन उपकरणों का पता लगाने का अनुरोध किया जाता है।