2009-12-13 10 views
14

मेरा असाइनमेंट मुझे test.txt दस्तावेज़ तक पहुंचने के लिए कहता है, इसलिए फ़ाइल नाम को मेरे सी ड्राइव में हार्ड कोड करना होगा। मुझे नहीं पता कि हार्डकोडिंग का मतलब क्या है। क्या कोई इस से मेरी मदद कर सकता है?"हार्ड कोडेड" का क्या अर्थ है?

उत्तर

35

"हार्ड कोडिंग" का अर्थ है आपके स्रोत कोड में कुछ डालना। यदि आप हार्ड कोडिंग नहीं हैं, तो आप डेटा के लिए उपयोगकर्ता को संकेत देने की तरह कुछ करते हैं, या उपयोगकर्ता को कमांड लाइन पर डेटा डालने की अनुमति देते हैं, या ऐसा कुछ।

तो, सी: ड्राइव पर फ़ाइल के स्थान को हार्ड कोड करने के लिए, आप बस अपने स्रोत कोड में फाइल का पथनाम डाल देंगे।

यहां एक उदाहरण है।

int main() 
{ 
    const char *filename = "C:\\myfile.txt"; 

    printf("Filename is: %s\n", filename); 
} 

फ़ाइल नाम के रूप में "हार्ड कोडित" है: C:\myfile.txt

कारण बैकस्लैश दोगुनी रहा है क्योंकि बैकस्लैश सी तार में विशेष कर रहे हैं।

+3

बीटीडब्ल्यू, कई फाइल सिस्टम एक निर्देशिका विभाजक के रूप में आगे स्लैश, '/' भी स्वीकार करते हैं। प्राथमिक लाभ यह है कि आप एक बैकस्लैश का उपयोग नहीं करते हैं जिसे बचने वाले चरित्र के रूप में माना जा सकता है। उदाहरण: "सी: \ temp" बनाम "सी:/temp"; जहां टेबल वर्ण नहीं है। –

+3

विंडोज़ '/' का समर्थन करता है, लेकिन व्यापक रूप से अन्य फाइल सिस्टम '\' का समर्थन नहीं करते हैं। इस कारण से, मैं हमेशा अपने पथ विभाजक के रूप में '/' का उपयोग करता हूं। –

9

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

0

विपरीत, हार्ड कोडिंग के विलोम नरम कोडिंग, हार्ड कोडिंग बनाम नरम कोडिंग तो मैं यह दोनों अर्थ

सुविधा डिजाइन में पढ़ने के लिए बेहतर है की एक बेहतर समझ के लिए लगता है, softcoding है अन्य अर्थ

  • हार्डकोड: सुविधा सिस्टम विन्यास के लिए अनुमति नहीं करने के लिए कोडित है;
  • पैरामैट्रिक: सुविधा तालिका संचालित, या सीमित पैरामीट्रिक मान वाले गुण फ़ाइलों के माध्यम से कॉन्फ़िगर करने योग्य है;
  • सॉफ़्टकोडिंग: सुविधा "इंजन" का उपयोग करती है जो किसी भी पैरामीट्रिक मानों (यानी बीआरई में व्यवसाय नियम) के आधार पर परिणाम प्राप्त करती है; नियम कोडित लेकिन प्रणाली में पैरामीटर के रूप में मौजूद हैं, स्क्रिप्ट रूप हार्ड कोडिंग में लिखा

उदाहरण:

 // "hello world" is a hardcoded value   
     string firstName = "hello world"; 

https://softwareengineering.stackexchange.com/questions/67982/is-it-ever-a-good-idea-to-hardcode-values-into-our-applications

// बनाम हार्डकोडेड डेटा मान का उपयोग नहीं

  Console.WriteLine("first name :"); 
     string firstName = Console.ReadLine(); 

// एक और उदाहरण

float areaOfCircle(int radius) 
    { 
    float area = 0; 
    area = 3.14*radius*radius; //3.14 is a [hardcoded value][1] 
     return area; } 

https://www.quora.com/What-does-hard-coded-something-mean-in-computer-programming-context

1।"हार्ड कोडिंग" एक प्रसिद्ध एंटीपेटर्न है जिसके खिलाफ अधिकांश वेब विकास पुस्तकें हमें प्रस्तावना में सही चेतावनी देती हैं। हार्ड कोडिंग दुर्भाग्यपूर्ण अभ्यास है जिसमें हम कॉन्फ़िगरेशन फ़ाइल, डेटाबेस, उपयोगकर्ता इनपुट या किसी अन्य बाहरी स्रोत से प्राप्त करने के बजाय स्रोत कोड में कॉन्फ़िगरेशन या इनपुट डेटा, जैसे फ़ाइल पथ या रिमोट होस्ट नाम संग्रहीत करते हैं। ।

हार्ड कोड के साथ मुख्य समस्या यह है कि यह केवल एक निश्चित वातावरण में ठीक से काम करता है, और किसी भी समय स्थिति बदलती है, हमें आमतौर पर कई अलग-अलग स्थानों में स्रोत कोड को संशोधित करने की आवश्यकता होती है।

  1. शीतल कोडिंग अगर हम कठिन कोडिंग की चूक से बचने के अथक प्रयास करते हैं, हम आसानी से एक और antipattern "सॉफ्ट कोडिंग" कहा जाता है, जो अपने ठीक विपरीत है में चला सकते हैं।

मुलायम कोडिंग में, हम उन चीजों को डालते हैं जो स्रोत स्रोत में बाहरी स्रोतों में होना चाहिए, उदाहरण के लिए हम डेटाबेस में व्यवसाय तर्क संग्रहीत करते हैं। हम ऐसा करने का सबसे आम कारण यह है कि भविष्य में व्यापार नियम बदल जाएंगे, इसलिए हमें कोड को फिर से लिखना होगा।

चरम मामलों में, एक नरम कोडित प्रोग्राम इतना अमूर्त और गड़बड़ हो सकता है कि इसे समझना लगभग असंभव है (विशेष रूप से नई टीम के सदस्यों के लिए), और बनाए रखने और डीबग करने के लिए बेहद मुश्किल है।

मुझे कुछ दिलचस्प स्पष्टीकरण मिला है, आप विभिन्न वातावरण, आईडीई या प्रोग्रामिंग भाषाओं में हार्ड कोडिंग से मुलाकात कर सकते हैं। आप एक स्थिति का उल्लेख और मैं किसी और

1. Hard coding (also hard-coding or hardcoding) is the software development practice of embedding an input or configuration data directly into the source code of a program or other executable object, or fixed formatting of the data, instead of obtaining that data from external sources or generating data or formatting in the program itself with the given input. 

2. hardcoded string “row three”, should use @string resource 
It is a very common android studio error/warning . 

[Hard_coding][1] ; 

[how-to-solve-this-issue-of-hardcoded-string][2]; 

[hardcoded-string-row-three-should-use-string-resource][3]; 

    [1]: https://en.wikipedia.org/wiki/Hard_coding 

    [2]: https://stackoverflow.com/questions/34130513/how-to-solve-this-issue-of-hardcoded-string/34130992 

    [3]: https://stackoverflow.com/questions/8743349/hardcoded-string-row-three-should-use-string-resource 

https://www.hongkiat.com/blog/code-optimization-coding-antipatterns/ https://en.wikipedia.org/wiki/Softcoding

1

परिदृश्य

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

1. मैं जैसे कुछ कोड लिख सकते हैं गणना कर सकते हैं इस

if(totalMark <= 100 && totalMark > 90) { grade = "A+"; } 
    else if(totalMark <= 90 && totalMark > 80) { grade = "A"; } 
    else if(totalMark <= 80 && totalMark > 70) { grade = "B"; } 
    else if(totalMark <= 70 && totalMark > 60) { grade = "C"; } 

2. आप ग्रेड परिभाषा कुछ जहां में प्रवेश करने के लिए कहें और बचा सकता है कि डेटा

डेटाबेस तालिका में संग्रहीत करने की तरह कुछ enter image description here

पहले मामले में ग्रेड सभी सह के लिए आम है urses और यदि नियम बदलता है तो कोड को बदलने की जरूरत है। लेकिन दूसरे मामले के लिए हम उपयोगकर्ता को उनकी आवश्यकता के आधार पर ग्रेड दर्ज करने का प्रावधान दे रहे हैं। इसलिए जब ग्रेड नियम बदलते हैं तो कोड नहीं बदला जाएगा।

यह महत्वपूर्ण बात है जब आप व्यवसाय तर्क को परिभाषित करने के लिए उपयोगकर्ताओं के लिए अधिक प्रावधान देते हैं। पहला मामला कुछ भी नहीं है लेकिन हार्ड कोडिंग है।

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

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