मैं एक प्रोग्राम में निम्नलिखित शर्त पर आया था जिसे मैंने दूसरे डेवलपर से लिया था:
if (obj.Performance <= LOW_PERFORMANCE)
{
obj.NeedsChange = true;
}
else
{
obj.NeedsChange = false;
}
मेरा मानना है कि यह कोड बेमानी और बदसूरत है, इसलिए मैंने इसे बदल दिया जो मैंने सोचा था कि एक तुलना के आधार पर एक साधारण बूलियन असाइनमेंट था:
obj.NeedsChange = obj.Performance <= LOW_PERFORMANCE;
इसे देखकर, मेरे कोड की समीक्षा करने वाले किसी व्यक्ति ने टिप्पणी की कि यद्यपि मेरा परिवर्तन कार्यात्मक रूप से सही है, यह किसी और को देखकर भ्रमित हो सकता है। उनका मानना है कि एक टर्नरी ऑपरेटर के उपयोग से यह कार्य अधिक स्पष्ट हो जाता है, जबकि मुझे अधिक निरर्थक कोड पसंद नहीं है:
obj.NeedsChange = (obj.Performance <= LOW_PERFORMANCE) ? true : false;
उनका तर्क यह है कि सबसे संक्षिप्त तरीके से कुछ करना इसके लायक नहीं है, अगर यह किसी अन्य डेवलपर को रोकने और पहेली बनाने के लिए है कि आपने क्या किया है।
यहाँ असली सवाल यह है कि बूलियन को मान देने के इन तीन तरीकों में से कौन सा तरीका obj.NeedsChangeसबसे स्पष्ट और सबसे अधिक सुगम है?