सामान्य विवरण
353 पृष्ठों की यह किताब, जिसे पूर्ण किताब के रूप में बुलाना मुश्किल है, बल्कि यह रिफैक्टरिंग से संबंधित संबंधित कोर्स का एक अतिरिक्त है। पढ़ने का स्तर आसान है। प्रोग्रामिंग कोड कम है, सभी उदाहरण अधिकतर ब्लॉक-डायग्राम और चार्ट के रूप में अमूर्तन के रूप में बनाए गए हैं। पुस्तक के पहले भाग में थीमेटिक रूप से अच्छी तरह से चुने गए और सामग्री को पूरक करने वाली छवियां भी मौजूद हैं।
संक्षिप्त अवलोकन
पुस्तक का पहला भाग लेखक द्वारा इसे "कोड की बुरी गंध" के रूप में जाने जाते तत्वों को समर्पित है। और वास्तव में, यह यह संकेत हैं कि किसी भी कोड को रिफैक्टर करने का समय आ गया है। संकेत विभिन्न समूहों में वर्गीकृत किए गए हैं, उदाहरण के लिए, पहले को "फुलाने वाले" कहा जाता है और इसमें बड़े मेथड्स, बड़े क्लासेस, बड़े पैरामीटर लिस्ट और इसी तरह के उदाहरण शामिल हैं। कई अन्य समूह भी हैं, जैसे "ओओपी डिज़ाइन का उल्लंघन", "इनहेरिटेंस के साथ काम करना", "अस्थायी वेरिएबल" और कई अन्य।
दूसरा भाग पहले भाग में वर्णित समस्याओं को हल करने के अधिक व्यावहारिक तरीकों को समर्पित है। उदाहरण के लिए, जब क्लासेस या मेथड बड़े हों तो क्या दृष्टिकोण लागू करने चाहिए, उन्हें कैसे विभाजित करें, कोड कैसे निकालें और सभी पुराने कोड वॉल्यूम को नए से कैसे बदलें। इसके साथ-साथ, यहां सभी प्रैक्टिसेस भी विभिन्न समूहों में वर्गीकृत हैं, जिनमें काफी संख्या में हैं।
राय
किताब पढ़ने के समय मैं पहले से ही 10 से अधिक वर्षों से पेशेवर रूप से प्रोग्रामिंग कर रहा था, कॉलेज और विश्वविद्यालय में कई वर्षों को नहीं गिनते हुए, इसलिए ईमानदारी से कहूं तो मुझे याद नहीं है कि कोई सुझाव मिला होगा जो मेरे लिए नया हो। इसीलिए मैंने इस किताब के लिए कोई संकलन नहीं बनाया। फिर भी, शुरुआती प्रोग्रामरों के लिए इस किताब से परिचित होना लाभदायक होगा, इसके साथ-साथ इसे पढ़ना बहुत तेजी से होता है।
पूरी किताब मुख्य रूप से ओओपी के बारे में है, और फंक्शनल प्रोग्रामिंग के बारे में उसमें काफी कम जानकारी है। समग्र रूप से यह न तो अच्छा है और न ही बुरा, सिर्फ तथ्यों का उल्लेख है। निश्चित रूप से, ऐसे उदाहरण भी आए जिनके साथ मैं बिल्कुल भी सहमत नहीं होऊंगा, लेकिन यह सब व्यक्तिपरक चीज है। इसके अलावा, विभिन्न प्रोग्रामिंग भाषाओं में लिखने की शैली और डिज़ाइन पैटर्न थोड़े भिन्न हो सकते हैं, इसलिए लेखक कोई मध्यम-सार्वभौमिक स्थिति चुनने की कोशिश करता है और उसके पालन करने की कोशिश करता है। अक्सर ऐसे उदाहरण मिलते हैं जब एक रिफैक्टरिंग में हम पहले कोई कार्रवाई करते हैं (हम तार्किक रूप से आवश्यक जगह पर एक अलग क्लास निकालते हैं), लेकिन दूसरे उदाहरण में, बल्कि, हम क्लासेस को जोड़ते हैं और विशिष्टता को सरल बनाते हैं। इस तरह लेखक जोर देता है कि हर स्थिति अद्वितीय है और निश्चित पैटर्न को स्थिति के अनुसार लागू करना चाहिए, न कि टेम्पलेट के रूप में।