2009-03-03 10 views
6

दूसरे दिन मैं अपने कोड को देख रहा था और मैं कक्षा के नाम पर आया IdempotentObject मुझे नहीं पता था कि उस समय इसका क्या अर्थ था, इसलिए मैंने सवाल किया कि यह एक खराब चुना गया नाम था या नहीं। मैंने पाया कि किसने इसे लिखा और डेवलपर से पूछा कि उसने इसे इतना भ्रमित क्यों नाम दिया था। वह हैरान था कि मुझे नहीं पता था कि इसका क्या मतलब था और मुझे बताया कि यह एक अच्छी तरह से चुना गया नाम था क्योंकि वस्तु बेवकूफ है।नामकरण करते समय हम शब्दावली के साथ रेखा कहां खींचते हैं?

एक ओर मैं इसे सरल रखने के लिए एक तर्क देखता हूं और हर कोई समझता हूं कि सबकुछ पहले पढ़ने पर क्या है। दूसरी तरफ हमारे पास यह विचार है कि हमें चीजों को ठीक से नाम देना चाहिए और अगर आपको यह नहीं पता कि इसका अर्थ क्या है।

कौन सा एक नज़र में बेहतर, सटीक या समझने में आसान है?

+0

आप IdempotentObject पसंद नहीं आया, तो क्या नाम आप के साथ बदलने का प्रस्ताव किया था? –

+0

मैंने एक बदलाव का प्रस्ताव नहीं दिया, मैंने इसे देखा और पूछा कि उसने इसका इस्तेमाल क्यों किया। अन्य डेवलपर ने सुझाव दिया कि * AlwaysTrueObject * एक प्रतिस्थापन होगा, हमने इसे वर्तमान में * IdempotentObject * के रूप में छोड़ा है। –

+1

लॉजिकल कॉन्स्ट्रक्ट कंसिस्टिंगऑफ बॉथकोड एंडडाटाफॉर व्हाइचऑलऑपरेशंसअरे डिफिफाइड एंड इम्प्लीमेंटेडशॉटहॉटनोमैटर हाउमनी टाइम्सथीएर इनवॉक्ड द एंड रेसल्ट विल्लबी दैटएम्सटैटिंगफॉर्मिंग फ्रॉमसिंगले इनवोकेशन – Shog9

उत्तर

14

कोई अपराध नहीं, लेकिन सीएस डिग्री वाले किसी भी व्यक्ति या जो क्षेत्र में अभ्यास करने की उम्मीद करता है उसे "इम्पेम्पोटेंट" शब्द को कंप्यूटर विज्ञान में एक विशिष्ट अर्थ के रूप में पहचानना चाहिए, भले ही आपको यह शब्द नहीं पता और उसे देखना है अप।

दूसरी ओर, मुझे नहीं लगता कि वस्तुओं के नाम पर "ऑब्जेक्ट" शब्द होना चाहिए - यह अनावश्यक है।

अब, अगर इसे "IdempotentDataAccessor" या कुछ सटीक और वर्णनात्मक कहा जाता है, तो यह अच्छा होगा।

+0

मुझे लगता है कि "ऑब्जेक्ट" भाग सिर्फ कुछ अनामिक था। यह शायद IdempotentMap या IdempotentBook की तरह कुछ था। मेरी सबसे बड़ी समस्या यह है कि idempotence कार्यों पर लागू होता है, वस्तुओं नहीं। –

+0

नहीं यह ऑब्जेक्ट –

+0

कक्षा "ऑब्जेक्ट" नामकरण बदसूरत है। आपको * उस * भाग के हिस्से के लिए उसे मारना चाहिए! – Shog9

8

सटीकता अधिक महत्वपूर्ण है। शुरुआती डेवलपर या आप नामकरण की व्याख्या करने के लिए बाद में एक टिप्पणी छोड़ सकते थे अगर यह एक शब्द नहीं है जिसे आसानी से एक शब्दकोश में पाया जा सकता है या आम तौर पर दर्शकों के लिए जाना जाता है।

+0

दृढ़ता से असहमत - लेखक को दूसरे अनुमान लगाने के लिए मजबूर नहीं किया जाना चाहिए कि क्या भविष्य के पाठक अन्यथा सीएस में मानक शर्तों को समझेंगे, ओपी घुटने-झटके प्रतिक्रिया गलत है – annakata

+0

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

+0

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

4

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

टिप्पणियां कुछ मामलों में सहायक हो सकती हैं, लेकिन मैं नाम बदलना पसंद करता हूं।

+0

idempotent सीएस में व्यापक रूप से उपयोग किया जाने वाला शब्द है। यहां तक ​​कि लेखांकन आवेदन प्रोग्रामर को अपने साहित्य को जानना चाहिए – Javier

1

अच्छा, यह बहुत ही व्यक्तिपरक है। शायद उस व्यक्ति के लिए जिसने कक्षा को लिखा था, नाम समझना बहुत आसान था। यह निर्धारित करना बहुत कठिन है कि शब्दावली कितनी आसान या समझने में मुश्किल है क्योंकि कोड पढ़ने वाले लोग कई अलग-अलग पृष्ठभूमि में हो सकते हैं।

5

"मुझे नहीं पता था कि उस समय इसका क्या अर्थ था इसलिए मैंने का फैसला किया कि यह एक खराब चुना गया नाम था।"

आपकी समस्या है। यदि आपको नहीं पता कि क्या कुछ मतलब है कि सही प्रतिक्रिया पता लगाना है।

+0

मैंने किया, मेरा मतलब था कि मुझे यह नहीं पता था कि मैंने इसे कब पढ़ा था। –

+0

मुझे पता है, और "..so मैंने फैसला किया" पर अनुसरण करें, जहां यह एक समस्या है। जब आप तथ्यों के कब्जे में नहीं होते हैं तो आप निर्णय नहीं ले सकते हैं। – annakata

+0

यह सही नहीं हुआ, अनौपचारिक निर्णय लेने के आपके अधिकार। –

2

मैं बेवकूफी का वर्णन करने के लिए किसी भी अन्य संक्षिप्त तरीके से नहीं सोच सकता। मुझे नहीं लगता कि यह एक समस्या है, क्योंकि बेवकूफ इंटरफेस में बेवकूफता का प्रयोग अक्सर किया जाता है, और Google खोज में स्पष्ट विवरण ढूंढना आसान होता है।

3

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

यह कोई अलग नहीं है।

आप दूसरों को सी # की कम ज्ञात विशेषताओं से बचने के लिए मजबूर नहीं करते हैं, आप अंग्रेजी, या किसी अन्य भाषा के लिए ऐसा क्यों करेंगे?

इसे देखो, इसे जानें। चाहे आप इसका इस्तेमाल करते हैं, आप पर निर्भर है, लेकिन कृपया दूसरे के उपयोग को सीमित न करें। आपके पास एक संदर्भ है।

-Adam

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