मैं इस स्थिति को अच्छी तरह से जानता हूं। जब मैं इस तरह से अटक जाता हूं तो मैं इस परियोजना पर अलग-अलग दृष्टिकोण अपनाने की कोशिश करता हूं।
1.) उपयोगकर्ता / ग्राहक के दृष्टिकोण - प्रतिक्रिया का उपयोग करें
दुर्भाग्य से हम अपने कोड में इस तरह से पकड़े जाते हैं कि हम अपनी खामियों को नहीं देख पाते हैं क्योंकि हम अपने अनुप्रयोगों का उपयोग उस तरह से करते हैं जैसे हमने उन्हें कोडित किया है। देखो कि लोग इसका उपयोग कैसे करते हैं और यह पता लगाने की कोशिश करते हैं कि सबसे सहज उपयोगकर्ता मार्गदर्शन क्या होगा। UI प्रोटोटाइप के साथ चारों ओर चलाएं। यह मज़ेदार लगता है, लेकिन अगर आपको पता चलता है कि आपको अपने तर्क के बड़े हिस्से को फिर से उपयोग करने के लिए मजबूर करना होगा, तो उपयोग तर्क को बदलकर फिर से नया स्वरूप चक्र शुरू करने के लिए।
2.) अपने कोड का एक कार्यात्मक विश्लेषण करें और इसे कल्पना करें
कुछ IDE और चौखटे आपको UI और बैकएंड कोड को मिलाने के लिए धकेलते हैं। यदि आप ऐसा होने देते हैं, तो आप किसी दिन ऐसी स्थिति का सामना करेंगे कि आपके कोड आधार को शायद ही कभी बनाए रखा जा सकता है क्योंकि यह निर्भरता को तोड़ने के लिए अस्पष्ट और कठिन है। विशेष रूप से यूआई कोड को अन्य कोड के साथ मिलाने से स्पेगेटी कोड और निरर्थक कार्यक्षमता हो सकती है। अपने कोड को फंक्शनल ब्लॉक्स जैसे डेटाबेस क्लासेस, कम्यूनिकेशन क्लासेस, यूआई क्लासेस, कोर क्लासेस आदि में विभाजित करें और फंक्शन ब्लॉक्स को बोलने वाले नाम दें। फिर एक ग्राफिकल टूल (मैं माइंड मैपिंग टूल का उपयोग करता हूं) के साथ कार्यक्षमता की कल्पना करें ताकि यह पता लगाया जा सके कि क्या आपकी संरचना तार्किक और मॉड्यूलर पर्याप्त है कि आप विभिन्न परियोजनाओं के लिए विशाल कोड ब्लॉक का पुन: उपयोग कर सकते हैं और आप उन्हें बिना नए संस्करणों के साथ बदलने में सक्षम हैं बड़ा दर्द।
मेरे अनुभव में ऐसा करने का सबसे अच्छा तरीका एक दस्तावेज बनाना है जो आपके कोड से आपके वर्गों और उनके कॉल के बीच सभी निर्भरता की कल्पना करता है। परिणाम आपके इंटरफ़ेस डिज़ाइन का एक दृश्य है। यदि यह कोड मानचित्र पूर्ण क्लस्टरफ *** जैसा दिखता है तो यह कार्य करने का समय है। यदि अभी तक नहीं हुआ है, तो आपको एक उपयुक्त नामकरण सम्मेलन के बारे में सोचना चाहिए जो आपके कोड संरचना का प्रतिनिधित्व करता है एक तरह से आपको यह सोचने की ज़रूरत नहीं है कि इसे कैसे कॉल किया जाए और यह क्या करता है।
3.) गुणवत्ता आश्वासन के लिए आम दृष्टिकोण का उपयोग करें
मेरी पसंदीदा FMEA है। कोडिंग के संदर्भ में इसका मतलब न केवल यह विश्लेषण करना है कि अतीत में क्या गलत हुआ, बल्कि यह भी सोचें कि क्या गलत हो सकता है। एक बहुत ही सामान्य उदाहरण एक अचानक गिरा हुआ नेटवर्क कनेक्शन है। आपके द्वारा ऐसा करने के बाद, आप डेटा हानि, क्रैश, गलत गणना जैसे परिणामों से त्रुटि की स्थिति को वर्गीकृत कर सकते हैं और उपयोगकर्ता पर प्रभाव का न्याय कर सकते हैं। यदि अभी तक सुव्यवस्थित त्रुटि और अपवाद वर्गों और दिनचर्या को परिभाषित नहीं किया है, तो आप अपने कोड को साफ और सीधे रखने में मदद कर सकते हैं। सबसे अच्छा तरीका यह है कि कुछ और लिखना शुरू करने से पहले ही कोड की हर नई शांति में उन पर अमल करें। (खैर, मैं हमेशा इस सलाह का पालन करने के लिए दोषी नहीं हूं।)
इसके अलावा इसने मुझे अपने कोड के लिए "सुधार प्रस्ताव सूची" को उत्पन्न करने और अक्सर अद्यतन करने में मदद की। (सच कहूं तो मेरी परियोजनाओं में अभी भी बहुत सारे कोड हैं जिन पर मुझे निश्चित रूप से गर्व नहीं है।) मैं एपीआई दस्तावेज़ों, डेवलपर सम्मेलनों या डेवलपर पत्रिकाओं से सर्वश्रेष्ठ अभ्यास कोड को देखने और इकट्ठा करने के लिए समय निकालने की कोशिश करता हूं।
इस बिंदु तक आपके कोड को छूने की कोई आवश्यकता नहीं है। यह केवल इस बारे में जागरूक होना है कि क्या गलत हो रहा है और अपने कोड को बेहतर बनाने के तरीके को परिभाषित करने का एक तरीका खोज रहा है।
अंत में एक पुराने गोज़ से दैनिक काम के लिए कुछ सुझाव। जितना आप खा सकते हैं उससे अधिक काटने से बचने की कोशिश करें। इससे स्वच्छ कोडिंग के लिए बहुत अधिक दबाव होता है। आपको शायद ही कभी इसे सही करने का समय मिलता है, लेकिन आपको बाद में खामियों को ठीक करने के लिए समय निकालना होगा।
अनंतिम समाधान के रूप में कुछ भी लंबे समय तक चलने वाला नहीं है, लेकिन जब यह टूट जाता है तो इसे ठीक करने में अक्सर देर हो जाती है। उदाहरण हैक या अजीब अपवाद हैं जो मुझे काम करने के लिए मिलते थे, उदाहरण के लिए अंतर्निहित ढांचे या ओएस में दोष के बावजूद। और फिर दोष ठीक हो जाता है या नया संस्करण केवल API को छोड़ देता है ...
यदि आप फंस गए हैं और टिप्पणी करने की तुलना में वर्कअराउंड खोजने के लिए मजबूर हो गए हैं और नोट्स ले रहे हैं, जिनकी समय-समय पर समीक्षा की जानी चाहिए। आम तौर पर हम कुछ नया सीखने की वजह से बेहतर और बेहतर होते जाते हैं। यदि आप बेहतर तरीके से इसे लागू कर पाते हैं तो आप इसे जितना जल्दी कर सकते हैं। अन्यथा आप अपने आप को वर्कअराउंड और अपवाद के अपवाद के लिए एक दिन के लिए कोडिंग कोडिंग पा सकते हैं। (वह जो तुम्हारे बीच बिना पाप के है, उसे मुझ पर पहला बाइट फेंकने दो।)