के बारे में आसान कारण सांस्कृतिक रूप से विशिष्ट शब्द है, यही कारण है कि ठोस उदाहरणों के साथ आना बहुत मुश्किल है। यह एक शब्द है, जो लोगों को तर्क करने के लिए लंगर डाला जाता है।
"के बारे में कारण करने के लिए आसान" वास्तव में एक बहुत ही आत्म वर्णनात्मक वाक्यांश है। यदि कोई कोड को देख रहा है, और यह क्या करना चाहता है, तो यह आसान है =)
ठीक है, इसे तोड़कर। यदि आप कोड देख रहे हैं, तो आप आमतौर पर कुछ करना चाहते हैं। आप यह सुनिश्चित करना चाहते हैं कि यह वही करे जो आपको लगता है कि इसे करना चाहिए। तो आप इस सिद्धांत को विकसित करते हैं कि कोड क्या होना चाहिए, और फिर आप इसके बारे में तर्क करने की कोशिश करने का कारण बनाते हैं कि कोड वास्तव में क्यों काम करता है। आप एक मानव की तरह कोड के बारे में सोचने की कोशिश करते हैं (बल्कि कंप्यूटर की तरह) और कोड क्या कर सकते हैं इसके बारे में तर्क को तर्कसंगत बनाने का प्रयास करें।
"आसान से तर्क" के लिए सबसे खराब स्थिति यह है कि कोड के सभी तरीकों के लिए ट्यूरिंग मशीन की तरह कोड के माध्यम से लाइन-बाय-लाइन जाने के लिए कोई मतलब नहीं है। इस मामले में, कोड के बारे में कुछ भी करने का एकमात्र तरीका खुद को कंप्यूटर में बदलना और इसे अपने सिर में निष्पादित करना है। ये सबसे खराब स्थिति के उदाहरण अस्पष्ट प्रोग्रामिंग प्रतियोगिताओं में आसानी से देखे जाते हैं, जैसे कि पेरोल की ये 3 लाइनें जो आरएसए को डिक्रिप्ट करती हैं:
#!/bin/perl -sp0777i<X+d*lMLa^*lN%0]dsXx++lMlN/dsM0<j]dsj
$/=unpack('H*',$_);$_=`echo 16dio\U$k"SK$/SM$n\EsN0p[lN*1
lK[d2%Sa2/d0$^Ixp"|dc`;s/\W//g;$_=pack('H*',/((..)*)$/)
जैसा कि आसान कारण है, फिर से, यह शब्द अत्यधिक सांस्कृतिक है। आपको विचार करना होगा:
- तर्ककर्ता के पास क्या कौशल है? कितना अनुभव?
- कोड के बारे में तर्ककर्ता के पास किस प्रकार के प्रश्न हो सकते हैं?
- कैसे निश्चित करने के लिए तर्क की आवश्यकता है?
इनमें से प्रत्येक "अलग-अलग तरह से" आसान कारण को प्रभावित करता है। एक उदाहरण के रूप में तर्क के कौशल को लें। जब मैंने अपनी कंपनी शुरू की, तो यह सिफारिश की गई कि मैं MATLAB में अपनी स्क्रिप्ट विकसित करूं क्योंकि यह "इसके बारे में तर्क करना आसान है"। क्यों? वैसे, कंपनी में सभी लोग MATLAB को जानते थे। अगर मैं एक अलग भाषा चुनता, तो मुझे समझना किसी के लिए भी कठिन होता। कोई बात नहीं कि MATLAB की पठनीयता कुछ कार्यों के लिए अत्याचारी है, केवल इसलिए कि यह उनके लिए डिज़ाइन नहीं किया गया था। बाद में, जैसा कि मेरा करियर आगे बढ़ा, पायथन अधिक से अधिक लोकप्रिय हो गया। अचानक MATLAB कोड "के बारे में तर्क करने के लिए कठिन" हो गया और पायथन कोड लिखने के लिए वरीयता की भाषा थी जिसके बारे में तर्क करना आसान था।
यह भी विचार करें कि पाठक के पास क्या मुहावरे हो सकते हैं। यदि आप किसी विशेष सिंटैक्स में FFT को पहचानने के लिए अपने रीडर पर भरोसा कर सकते हैं, तो कोड के बारे में "आसान कारण" है यदि आप उस सिंटैक्स से चिपके रहते हैं। यह उन्हें टेक्स्ट फाइल को कैनवास के रूप में देखने देता है, जिसे आपने एफआईटी पर चित्रित किया है, न कि किटी ग्रिट्टी विवरण में लाने के बजाय। यदि आप C ++ का उपयोग कर रहे हैं, तो पता करें कि आपके पाठक std
पुस्तकालय के साथ कितने सहज हैं । वे कार्यात्मक प्रोग्रामिंग को कितना पसंद करते हैं? कुछ मुहावरे जो कंटेनरों के पुस्तकालयों से निकलते हैं, बहुत निर्भर करते हैं कि आप किस मनोहारी शैली को पसंद करते हैं।
यह समझने में भी महत्वपूर्ण है कि पाठक किस तरह के प्रश्नों का उत्तर देने में दिलचस्पी ले सकता है। क्या आपके पाठक ज्यादातर कोड की सतही समझ से चिंतित हैं, या वे आंतों में गहरे कीड़े की तलाश कर रहे हैं?
पाठक का कितना निश्चित होना वास्तव में एक दिलचस्प है। कई मामलों में, धुंधली तर्क वास्तव में उत्पाद को दरवाजे से बाहर निकालने के लिए पर्याप्त है। अन्य मामलों में, जैसे कि एफएए उड़ान सॉफ्टवेयर, पाठक को आयरनक्लाड तर्क देना चाहते हैं। मैं एक ऐसे मामले में भाग गया, जहां मैंने एक विशेष कार्य के लिए RAII का उपयोग करने के लिए तर्क दिया, क्योंकि "आप इसे बस सेट कर सकते हैं और इसके बारे में भूल सकते हैं ... यह सही काम करेगा।" मुझे बताया गया कि मैं उसके बारे में गलत था। जो लोग इस कोड पर तर्क करने जा रहे थे वे ऐसे लोग नहीं थे जो "केवल विवरणों के बारे में भूलना चाहते हैं।" उनके लिए, RAII एक लटकने वाले चाड की तरह था, जिससे आप उन सभी चीजों के बारे में सोचने के लिए मजबूर हो सकते हैं, जब आप गुंजाइश छोड़ सकते हैं।