𝗖𝗼𝗱𝗲 𝗗𝘂𝗽𝗹𝗶𝗰𝗮𝘁𝗶𝗼𝗻 𝘃𝘀. 𝗪𝗿𝗼𝗻𝗴 𝗔𝗯𝘀𝘁𝗿𝗮𝗰𝘁𝗶𝗼𝗻𝘀

डेव्हलपर्सना अनेकदा एका निवडीबाबत संघर्ष करावा लागतो.

तुम्हाला 'Don't Repeat Yourself' तत्त्व किंवा काही प्रमाणात कोड डुप्लिकेशन (code duplication) करण्याची परवानगी यापैकी एकाची निवड करावी लागते.

DRY हे सॉफ्टवेअर डिझाइनमधील एक मुख्य नियम आहे. परंतु, त्याचा अतिरेक केल्यास एक नवीन समस्या निर्माण होते. तुम्ही एक चुकीचे ॲब्स्ट्रॅक्शन (wrong abstraction) तयार करता.

चुकीच्या ॲब्स्ट्रॅक्शनमुळे होणारे नुकसान कोड डुप्लिकेशनपेक्षा जास्त असते.

आपल्याला दर्जेदार (elegant) कोड लिहायचा असतो. आपल्याला पुन्हा वापरण्यायोग्य (reusable) लॉजिक तयार करायचे असते. आपल्याला एका ठिकाणी बग फिक्स करून तो सर्वत्र फिक्स झालेला पाहायचा असतो. हे ध्येय योग्य वाटते.

परंतु, अकाली केलेले ॲब्स्ट्रॅक्शन (premature abstraction) प्रकल्पाचा वेग कमी करते. यामुळे कोड मेंटेन करणे कठीण होते.

जेव्हा तुम्ही खूप लवकर ॲब्स्ट्रॅक्शन करण्याचा प्रयत्न करता, तेव्हा तुम्हाला या समस्यांचा सामना करावा लागतो:

  • वाढलेली गुंतागुंत (Increased complexity). चुकीच्या ॲब्स्ट्रॅक्शनमुळे गोंधळाचे स्तर वाढतात.
  • ताठर कोड (Rigid code). इतर भाग खराब न करता कोडचा एक भाग बदलणे कठीण होते.
  • लपलेले लॉजिक (Hidden logic). कोड लिहिण्यापेक्षा तो शोधण्यात (tracing) तुमचा जास्त वेळ जातो.

कधीकधी, डुप्लिकेशन करणे हा एक व्यावहारिक (pragmatic) निर्णय असतो. यामुळे तुमचा कोड साधा आणि स्पष्ट राहतो. यामुळे तुम्हाला तुमच्या सिस्टमचे भाग स्वतंत्रपणे बदलता येतात.

ज्या समस्येचे तुम्हाला पूर्णपणे आकलन झालेले नाही, त्यासाठी लगेच एखादे सामान्य (generic) समाधान तयार करू नका. जोपर्यंत पॅटर्न स्पष्ट होत नाही, तोपर्यंत प्रतीक्षा करा.

स्रोत: https://dev.to/kelvin_kariuki_20f4bec616/developer-take-on-code-duplication-is-far-cheaper-than-the-wrong-abstraction-2016-2k3n