अब मैं एक दो साल से जिस बड़े प्रोजेक्ट पर काम कर रहा हूं, वह एक एडवांस डिवाइस का कंट्रोल (और सब कुछ) है, इसके फर्मवेयर का दिल।
डिवाइस काफी उन्नत है, जिसमें मैं मेमोरी से कह सकता हूं कि विभिन्न प्रकार की कार्यक्षमताएं हैं, और उनमें से 98% को इस एक विशाल निष्पादन योग्य द्वारा नियंत्रित किया जाता है। एक हाथ में, कार्यक्रम काफी रखरखाव योग्य है, अच्छी तरह से अंदर modularized है, ठीक से प्रलेखित है, निर्देशिका और फ़ाइलों और इसी तरह कार्यात्मकताओं का एक उचित पृथक्करण है।
लेकिन अंत में यह एक अनुप्रयोग में सभी क्लस्टर हो जाता है जो दूरस्थ डेटाबेस संचार, टचस्क्रीन हैंडलिंग, एक दर्जन से अधिक विभिन्न संचार प्रोटोकॉल, माप, कई नियंत्रण एल्गोरिदम, वीडियो कैप्चर, सूर्योदय के समय और ईस्टर की तारीख (गंभीरता से, और वे सब कुछ करते हैं) से करते हैं। बहुत गंभीर उद्देश्यों के लिए आवश्यक!) ... सामान्य तौर पर, सामान जो बहुत पतले रूप से संबंधित होता है, अक्सर केवल कुछ डेटा के माध्यम से संबंधित होता है जो कुछ दूर के मॉड्यूल के बीच ट्रिकल होता है।
यह कई अलग-अलग निष्पादन योग्य के रूप में किया जा सकता है, जो एक दूसरे के साथ संवाद करते हैं, कहते हैं, सॉकेट्स पर, अधिक विशिष्ट उद्देश्य के साथ, शायद लोड किए गए / अनलोड किए गए आवश्यकतानुसार, और इसी तरह। कोई खास वजह नहीं कि इसे इस तरह से बनाया जाए।
एक हाथ में, यह काम करता है, और यह ठीक काम करता है। एकाधिक बायनेरिज़ के निर्माण को बनाए रखने के बिना प्रोजेक्ट अधिक सरल है। आंतरिक संरचना भी आसान है, जब आप बस एक विधि को कॉल कर सकते हैं या सॉकेट्स या साझा की गई मेमोरी पर बात करने के बजाय एक चर पढ़ सकते हैं।
लेकिन दूसरे हाथ में, आकार, इस चीज़ का पैमाना मुझे बाहर निकाल देता है, ऐसा लगता है जैसे कि टाइटैनिक को चलाना है। मुझे हमेशा मॉडरेट करना सिखाया जाता था, और हर चीज को एक से बढ़कर एक गार्जियन फ़ाइल में रखना गलत लगता है। एक समस्या मुझे पता है कि एक (यहां तक कि नगण्य) मॉड्यूल की भारी दुर्घटना सभी दुर्घटनाग्रस्त होती है - लेकिन कोड गुणवत्ता का आश्वासन यह वास्तव में रिलीज संस्करणों में नहीं होता है। अन्यथा, आंतरिक पृथक्करण और रक्षात्मक प्रोग्रामिंग यह आश्वासन देता है कि यह अभी भी ज्यादातर सही ढंग से चलेगा, भले ही आधे आंतरिक मॉड्यूल सामान्य रूप से किसी कारण से विफल हो जाएं।
मैंने किन अन्य खतरों की अनदेखी की? यह मुझे क्यों रेंगता है? क्या यह अज्ञात का सिर्फ तर्कहीन डर है? क्या गंभीर बड़ी परियोजनाओं को इस तरह से एक स्वीकृत अभ्यास बनाया जा रहा है? या तो मेरे डर को शांत करो या मुझे एक छोटे से द्विपदीय में संस्करण 2.0 को रीफैक्टर करने का अच्छा कारण दो।