2009-11-30 22 views
5

मेरे अनुभव से, सॉफ्टवेयर इंजीनियरिंग उद्योग के gilded cage पर पिछड़ा/आगे संगतता की प्रतिबद्धताएं हैं। मैंने विशेष रूप से दस्तावेज़ फ़ाइल स्वरूपों और प्रोग्रामिंग भाषाओं/एपीआई के मामले के लिए यह देखा है। ग्राहक और सहयोगी इससे नफरत करते हैं जब उनके मौजूदा डेटा या कोड टूट जाते हैं; हालांकि, अगर आप कभी भी संगतता तोड़ते नहीं हैं, तो आप लंबे समय तक नवाचार करने की अपनी क्षमता को गंभीरता से रोक सकते हैं।विरासत संगतता

क्या पुरानी सुविधाओं के क्रमिक बहिष्करण के अलावा, इस समस्या के समाधान हैं? ऐसा लगता है कि वर्चुअलाइजेशन की तरह, विंडोज 7 के एक्सपी मोड में, एक रोमांचक संभावना है। क्या वहां कुछ हैं?

इसके अलावा, हम में से उन लोगों के लिए जो नए सिस्टम तैयार करना चाहते हैं जो यथासंभव भविष्य के सबूत हैं, हम उद्योग में किए गए पिछली गलतियों से क्या सबक सीख सकते हैं?

उत्तर

5

सार्वजनिक एपीआई को फिर से लिखकर नहीं, विस्तार से नवप्रवर्तन। बैक-एंड कार्यक्षमता के लिए लगातार सामान्य सार्वजनिक इंटरफेस रखें। जब तक आप उन उम्मीदों के साथ सार्वजनिक एपीआई मॉड्यूल की आपूर्ति करते हैं, तब तक आप निजी मॉड्यूल को किसी भी समय फिर से लिख सकते हैं।

बैक एंड में अपने सुधार करें और यथासंभव यथासंभव एपीआई छोड़ दें। नए मॉड्यूल बनाएं और अपने एपीआई के सार्वजनिक हिस्सों को विस्तारित करते समय उन्हें स्पष्ट रूप से दस्तावेज करें, पुराने तरीके से बहिष्कार स्वाभाविक रूप से आ जाएगा यदि आप पुराने तरीकों के अतिरिक्त आने वाली चीजों को करने के नए और बेहतर तरीके प्रदान करते हैं।

दस्तावेज़ प्रारूपों के लिए, हमेशा संस्करण संख्याएं शामिल करें और सुनिश्चित करें कि आपके पास सभी मौजूदा संस्करणों का समर्थन करने के तरीके हैं। एपीआई के साथ, पुनः लिखकर नहीं, विस्तार करके नई कार्यक्षमता जोड़ें।

जब आप अपने सॉफ़्टवेयर के समग्र आर्किटेक्चर में मौलिक परिवर्तन लाने के लिए चाहते हैं, तो नए संस्करण में मॉड्यूल के रूप में पुराना एक शामिल होगा - इससे बड़े आकार और पुराने डेटा और प्रोग्राम के लिए बेहतर समर्थन होगा।

0

एक्सएमएल का उपयोग अपने फ़ाइल प्रारूप के आधार के रूप में करें, और केवल विनिर्देश डीटीडी में जोड़ें, हटाएं नहीं। इस तरह आपकी फाइलें पीछे की ओर होनी चाहिए- पिछले संस्करणों के अनुकूल, जो एक प्लस है।

0

यहां एक अच्छा उदाहरण है: जावा में एक लॉगिंग मॉड्यूल से दूसरे में आसान माइग्रेशन की अनुमति देने के लिए SLF4J Bridges का उपयोग करना।

संबंधित मुद्दे