- विधि या फ़ंक्शन कॉल जो मूल्य का कुछ भी नहीं करते हैं।
जरूरी नहीं कि बुरा ही हो। बेस क्लास के तरीके अक्सर खाली तरीकों को कहते हैं जो उपवर्गों के लिए ओवरराइड बिंदुओं के रूप में होते हैं। उदाहरण: कोको टच के यूआईवीवाईई में एक -didAddSubview:विधि है जिसे डिफ़ॉल्ट संस्करण में कुछ भी नहीं करने के रूप में प्रलेखित किया गया है। UIView की -addSubview:विधि को कॉल करना है -didAddSubview:भले ही यह कुछ भी नहीं करता है क्योंकि उप-वर्ग कुछ करने के लिए इसे लागू कर सकते हैं। ऐसे तरीके जो कुछ भी नहीं करते हैं और उनके लिए कारण निश्चित रूप से प्रलेखित होने चाहिए।
यदि कोई खाली या बेकार कार्य / विधि स्पष्ट रूप से ऐतिहासिक कारणों से है, तो इसे बढ़ाया जाना चाहिए। यदि आप सुनिश्चित नहीं हैं तो अपने स्रोत कोड रिपॉजिटरी में कोड के पुराने संस्करणों को देखें।
- निरर्थक जाँच एक अलग वर्ग फ़ाइल, वस्तु या विधि में की जाती है।
यह कहना मुश्किल है कि अगर कुछ संदर्भ के बिना ठीक है। यदि चेक स्पष्ट रूप से एक ही कारण से किए जाते हैं, तो इसका मतलब यह हो सकता है कि जिम्मेदारियों का स्पष्ट पृथक्करण नहीं है और कुछ रिफैक्टरिंग के लिए कहा जाता है, खासकर जब दोनों चेक एक ही कार्रवाई में परिणाम होते हैं। यदि दोनों चेक के परिणामस्वरूप होने वाली कार्रवाई समान नहीं है, तो दो चेक शायद अलग-अलग कारणों से किए जा रहे हैं, भले ही स्थिति समान हो, और यह ठीक है।
- यदि कथन जो हमेशा सत्य का मूल्यांकन करते हैं।
इसमें एक बड़ा अंतर है:
if (1) {
// ...
}
तथा:
if (foo() == true) {
// ...
}
जहां foo()हमेशा लौटता है true।
पहला मामला तब होता है जब लोग डिबेट कर रहे होते हैं। if (0) {...जब आप बग को अलग करने का प्रयास कर रहे हों, तब अस्थायी रूप से कोड का एक हिस्सा निकालने के लिए उपयोग करना आसान होता है , और फिर उस कोड को पुनर्स्थापित करने के 0लिए 1इसे बदल दें । आपके द्वारा ifकिए जाने के बाद, एक बार हटा दिया जाना चाहिए, लेकिन उस चरण को भूलना या एक या दो को याद करना आसान है यदि आपने इसे कई स्थानों पर किया है। (इस तरह की सशर्तियों को एक टिप्पणी के साथ पहचानना एक अच्छा विचार है जिसे आप बाद में खोज सकते हैं।) एकमात्र नुकसान यह भ्रम है जो भविष्य में हो सकता है; यदि कंपाइलर संकलन समय पर स्थिति का मूल्य निर्धारित कर सकता है, तो वह इसे पूरी तरह से हटा देगा।
दूसरा मामला स्वीकार्य हो सकता है। यदि foo()कोड में कई स्थानों से परीक्षण की जाने वाली आवश्यकताओं का प्रतिनिधित्व किया जाता है, तो इसे एक अलग फ़ंक्शन या विधि में विभाजित करना अक्सर सही काम foo()होता है, भले ही वह हमेशा सही हो। यदि यह बोधगम्य है जो foo()अंततः वापस आ सकता है false, तो उस स्थिति को किसी विधि या फ़ंक्शन में अलग करना उन सभी स्थानों की पहचान करने का एक तरीका है जहां कोड उस स्थिति पर निर्भर करता है। हालांकि , ऐसा करने से कुछ जोखिम पैदा होता है कि foo() == falseहालत बेकार हो जाएगी और बाद में समस्याएं हो सकती हैं; समाधान यह सुनिश्चित करने के लिए है कि आप इकाई परीक्षण जोड़ते हैं जो स्पष्ट रूप से falseमामले का परीक्षण करते हैं ।
- थ्रेड्स जो स्पिन करते हैं और नोट का कुछ भी नहीं करते हैं।
यह इतिहास की एक कलाकृति की तरह लगता है, और कुछ ऐसा जिसे कोड समीक्षा के दौरान या सॉफ्टवेयर की आवधिक रूपरेखा के माध्यम से पहचाना जा सकता है। मुझे लगता है कि इसे जानबूझकर बनाया जा सकता है, लेकिन मेरे पास एक कठिन समय है जो यह कल्पना करता है कि कोई वास्तव में ऐसा करेगा।
if (false) {...}ब्लॉक कोड टिप्पणी करने के लिए महान हैं! </ कटाक्ष>