2009-07-22 16 views
5

में सभी सी/सी ++ पहचानकर्ता नामों को अपडेट करने के लिए कैसे करें सी/सी ++ पहचानकर्ताओं में अग्रणी और डबल अंडरस्कोर का उपयोग न करने की सिफारिश में अक्सर आने के बाद मैंने एक बार और सभी के लिए हमारे सभी स्रोतों को ठीक करने का निर्णय लिया। मुझे अब क्या करना है _Identifier से Identifier_ में कनवर्ट करना है।प्रोजेक्ट

क्या मुझे इस नौकरी के लिए नियमित अभिव्यक्तियों के इस कार्य के लिए एक विशेष उपकरण का उपयोग करना चाहिए? बाद के मामले में सी/सी ++ पहचानकर्ता से मिलान करने के लिए पैटर्न क्या है?

उत्तर

13

हालांकि मैं उन लोगों में से एक हूं जो अक्सर बताते हैं कि प्रमुख अंडरस्कोर वाले नाम आरक्षित हो सकते हैं, मैं दृढ़ता से अनुशंसा करता हूं कि आप ऐसा न करें जब तक आप नामों के कारण समस्याओं का सामना नहीं कर रहे हों। इस वैश्विक परिवर्तन को बनाने से आपके संस्करण नियंत्रण प्रणाली को कम उपयोगी बना दिया जा सकता है, अन्यथा यह सभी प्रकार के नकली अंतरों के कारण हो सकता है। साथ ही, डुप्लिकेट नाम बनाने का मौका भी है।

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

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

+0

मैं वास्तव में इसके साथ सहमत हूं। जहां अंडरस्कोर महत्वपूर्ण नहीं है। –

+4

यदि आपके पास समस्या ट्रैकिंग है, हालांकि, नामकरण के बारे में एक (कम प्राथमिकता) गलती उठाएं, और जब आप फ़ाइल अपडेट करते हैं तो दो चेकइन बनाते हैं: एक नामों को ठीक करने के लिए और एक अन्य परिवर्तन करने के लिए। चेकइन जैसे "एक लाइन परिवर्तन किया गया है, और नामकरण को ठीक करने के लिए 200 लाइनों को भी संशोधित किया गया है" वास्तव में बेकार diffs है। –

+0

मैं भी सहमत हूं। टूटा हुआ कुछ ठीक करने की कोशिश मत करो। मुझे पता है कि कोड कभी-कभी भयानक लग सकता है। मेरी परियोजनाएं ऐसी चीजों से भरे हुए हैं। लेकिन आप इसका इस्तेमाल करेंगे। – TalkingCode

0

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

7

यदि आप विजुअल स्टूडियो का उपयोग करते हैं, तो इसके साथ आपकी सहायता के लिए विजुअल असिस्ट एक्स जैसे रीफैक्टरिंग प्लगइन्स हैं।

7

पर्ल को नौकरी करना चाहिए, लेकिन Coccinelle है जब यह मुश्किल हो जाता है।

1

रेफैक्टर-> मेनू कमांड का उपयोग करके नेटबीन पूरी परियोजना के लिए ऐसा कर सकते हैं। लेकिन यह केवल एक ही पहचानकर्ता के लिए काम करता है, इसलिए आपको बदलने के लिए आवश्यक प्रत्येक पहचानकर्ता के लिए आपको दोहराना होगा।

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