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