पृष्ठभूमि / परिदृश्य
मैंने सी में एक सीएलआई एप्लिकेशन को शुद्ध रूप से लिखना शुरू कर दिया (मेरा पहला उचित सी या सी ++ प्रोग्राम जो "हैलो वर्ल्ड" या उसके रूपांतर नहीं था)। उपयोगकर्ता इनपुट (char arrays) के "तार" के साथ काम कर रहा था और मैंने C ++ स्ट्रिंग स्ट्रीमर ऑब्जेक्ट की खोज की थी। मैंने देखा कि मैं इनका उपयोग करके कोड को बचा सकता हूं, इसलिए मैंने उन्हें एप्लिकेशन के माध्यम से उपयोग किया। इसका मतलब है कि मैंने फ़ाइल एक्सटेंशन को .cpp में बदल दिया है और अब g++
इसके बजाय एप्लिकेशन को संकलित करता हूं gcc
। तो इसके आधार पर, मैं कहूंगा कि आवेदन अब तकनीकी रूप से एक C ++ एप्लिकेशन है (हालाँकि 90% + कोड में लिखा है कि मैं C को क्या कहूंगा, क्योंकि दो भाषाओं के बीच बहुत से क्रॉस-ओवर हैं, मेरे सीमित अनुभव को देखते हुए दो)। यह एक एकल .cpp फ़ाइल है जो लगभग 900 रेखाएँ लंबी है।
महत्वपूर्ण कारक
मैं चाहता हूं कि कार्यक्रम मुफ्त (धन के रूप में) हो और सभी के लिए स्वतंत्र रूप से वितरण योग्य और उपयोगी हो। मेरी चिंता यह है कि कोई व्यक्ति कोड को देखेगा और उसके प्रभाव के बारे में कुछ सोचेगा:
ओह कोडिंग को देखो, यह भयानक है, यह कार्यक्रम मेरी मदद नहीं कर सकता है
जब यह संभव है! एक अन्य मामला कोड कुशल है (यह ईथरनेट कनेक्टिविटी के परीक्षण के लिए एक कार्यक्रम है)। कोड का कोई भी भाग ऐसा नहीं होना चाहिए जो इतना अक्षम हो कि वे अनुप्रयोग या इसके आउटपुट के प्रदर्शन में गंभीर बाधा उत्पन्न कर सके। हालांकि, मुझे लगता है कि विशिष्ट कार्यों, विधियों, ऑब्जेक्ट कॉल, आदि के साथ मदद मांगने पर स्टैक ओवरफ्लो का सवाल है।
मेरा प्रश्न
मेरी राय में) C और C ++ को मिलाया जहाँ शायद मुझे नहीं करना चाहिए था। क्या मुझे इसे C ++ में फिर से लिखना चाहिए (इसका मतलब है कि मैं और अधिक C ++ ऑब्जेक्ट्स और विधियों को लागू करता हूं जहां शायद मैंने C शैली में कुछ कोडित किया है जिसे नए C ++ तकनीकों का उपयोग करके संघनित किया जा सकता है), या स्ट्रिंग स्ट्रीप ऑब्जेक्ट्स का उपयोग हटा दें यह सब "वापस" सी कोड के लिए ले आओ? क्या यहां सही दृष्टिकोण है? मैं खो गया हूं और इस आवेदन को जनता की नजर में "अच्छा" रखने के लिए कुछ मार्गदर्शन की आवश्यकता है, इसलिए वे इसका उपयोग करेंगे और इसके लिए लाभान्वित होंगे।
कोड - अद्यतन
यहाँ कोड के लिए एक लिंक है। यह लगभग 40% टिप्पणियां हैं, मैं लगभग हर पंक्ति पर टिप्पणी करता हूं जब तक कि मैं अधिक धाराप्रवाह महसूस नहीं करता। हालांकि मैंने जो कॉपी की है, उसमें मैंने सभी टिप्पणियों को हटा दिया है। मुझे आशा है कि यह पढ़ने में बहुत कठिन नहीं है। मैं उम्मीद कर रहा हूं कि हालांकि किसी को भी इसे पूरी तरह समझने की जरूरत नहीं है। यदि मैंने हालांकि घातक डिजाइन दोष बनाए हैं, तो मुझे उम्मीद है कि उन्हें आसानी से पहचाना जा सकता है। मुझे यह भी उल्लेख करना चाहिए, मैं उबंटू डेस्कटॉप और लैपटॉप की एक जोड़ी लिख रहा हूं। मैं अन्य ऑपरेटिंग सिस्टम के लिए कोड पोर्ट करने का इरादा नहीं कर रहा हूं।
LICENSE
फ़ाइल की कमी है । आपको दिलचस्प प्रतिक्रिया मिल सकती है।