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