मेरी टीम में, हम कुछ सॉफ्टवेयर आर्किटेक्ट्स के साथ मिलकर काम करते हैं। वे हमारी परियोजनाओं के सभी डिजाइन निर्णयों को अनुमोदित करते हैं, कुछ कोड समीक्षा आदि करते हैं।
हमारी परियोजनाओं में मुख्य रूप से PHP में कार्यान्वित बैकएंड कार्यक्षमता है जिसमें सिम्फनी 2 फ्रेमवर्क का उपयोग किया गया है। तो वाक्यात्मक रूप से, कोड, नामकरण परंपराएं और परियोजना संरचना लगभग उसी तरह दिखती है जो जावा की तरह दिखती है (सिम्फनी 2 ऐसी संरचना को प्रोत्साहित करती है)। मैं इसका उल्लेख कर रहा हूं क्योंकि जावा-विशिष्ट कन्वेंशन हमारे मामले में भी लागू होते हैं (यदि संभव हो तो)।
हाल ही में, वे कुछ सुझाव दिया है कि मैं बहुत ही अजीब लगता है: सभी तरीकों उनके नाम जैसे में संयोजक होना चाहिए getEntityOrNull
, setValueOrException
आदि
इस तरह के नामकरण सम्मेलन मेरे लिए बहुत गलत लगता है, लेकिन मैं किसी भी ठोस तर्क या ऑनलाइन लेख / पृष्ठों के साथ नहीं आ सकता हूं जो विशेष रूप से इसे चुनौती देते हैं।
केवल एक चीज जो मैं लेकर आया हूं वह है:
- इस तरह की जानकारी विधि के एनोटेशन में मौजूद होनी चाहिए, जैसे
@return
या@throws
- विधि नाम में संयुग्मों ("और", "या" आदि) का उपयोग आमतौर पर सुझाव देता है कि एकल उत्तरदायित्व सिद्धांत का समुचित मूल्यांकन नहीं किया गया है
इस नामकरण सम्मेलन के खिलाफ कुछ अन्य ठोस तर्क क्या हैं?
the use of conjunctions ("and", "or" etc.) in method names usually suggest that the Single Responsibility Principle is not properly respected
यह आपके द्वारा सूचीबद्ध उदाहरणों के लिए मामला नहीं है, जहां विफलता को संभालने के लिए उपयोग किए जाने वाले तंत्र को स्पष्ट करने के लिए संयुग्मन का उपयोग किया जाता है, यह इंगित करने के लिए नहीं कि यह एक काम कर सकता है या कोई अन्य। यहां तक कि सबसे संकीर्ण रूप से परिभाषित फ़ंक्शन में वैध विफलता की स्थिति हो सकती है, जैसे कि खाली स्टैक को पॉप करना।
Int32.TryParse
और Int32.Parse
- दोनों एक पूर्णांक में एक स्ट्रिंग को पार्स करते हैं, लेकिन पूर्व एक बूलियन को सफलता का संकेत देता है और बाद में विफलता के साथ फेंकता है।
Try...
, ...OrNull
, ...OrDefault
। @EricLippert .net में यह एकमात्र सम्मेलन नहीं है। पर विचार करें Single
बनाम SingleOrDefault
, जो बहुत करीब है OrNull
ओ पी का सुझाव दिया।