जब आप एक अच्छे नाम के बारे में नहीं सोच सकते हैं तो आप फ़ंक्शन / चर / आदि को क्या नाम देते हैं? [बन्द है]


13

जब आप किसी फ़ंक्शन / चर / आदि को परिभाषित कर रहे हैं और यह सुनिश्चित नहीं कर रहे हैं कि इसे क्या नाम दिया जाए, तो आप इसे क्या नाम देते हैं? आप एक नाम के साथ कैसे आए?

यदि आप एक अस्थायी नाम का उपयोग स्थान-कार्ड के रूप में करते हैं जब तक कि आप इसे वास्तविक नाम नहीं देते हैं, तो आप किस अस्थायी नाम का उपयोग करते हैं?


अपडेट करें

मैं जैसी चीजों का उपयोग किया गया WILL_NAME_LATER, NEEDS_NAME, या TO_BE_NAMED। मैं उम्मीद कर रहा था कि कोई गोद लिया गया सम्मेलन होगा, मैं वास्तव में उम्मीद कर रहा था कि अगर मैं इस अपनाया गया सम्मेलन का उपयोग करता हूं तो मेरा आईडीई नाम को तब तक उजागर करेगा जब तक कि इसे बदल नहीं दिया जाता।


चर नामों के लिए सभी कैप का उपयोग करने के बारे में सावधान रहें। लोकप्रिय सम्मेलन द्वारा, इसका मतलब एक वैश्विक चर है।
Spong

@sunpech, मुझे पता है, मैं स्थिरांक के लिए उस नामकरण सम्मेलन का उपयोग करता हूं। लेकिन मुझे लगता है कि पूंजीकरण इसे बाहर खड़ा करता है इसलिए मैं इसका नाम बदलना नहीं भूलता। मैं इसे इस तरह लंबे समय तक नाम नहीं छोड़ता।
जद इसाक्स

3
आप सभी लोगों के लिए, जो कह रहे हैं, आपको कभी भी एक नाम के साथ आने में कोई समस्या नहीं होनी चाहिए ... यहां तक ​​कि जॉन स्कीट कभी-कभी नहीं कर सकते हैं: stackoverflow.com/questions/521893/…
JD Isaacks

@ जॉननीक्स मुझे लगता है कि आपको बोल्ड अस्थायी होना चाहिए । बहुत से लोग इस प्रश्न को पढ़ रहे हैं और कुछ पवित्र में कोड बना रहे हैं। ईमानदारी से, हाँ, आप मैला कोड ESPECIALLY लिख सकते हैं जब आप कुछ और महत्वपूर्ण चीज़ों के माध्यम से पुश करने की कोशिश कर रहे हैं। हम यहां पत्थर में कूट नहीं रहे हैं।
Spong

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

जवाबों:


29

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

मान लीजिए कि आपके पास कुछ है जो आपको ऑब्जेक्ट्स बनाने में मदद करता है, लेकिन आप नहीं जानते कि इसे आमतौर पर एक फैक्ट्री कहा जाता है। बस इसे ObjectCreator कहें। यह सुनने में अटपटा लगता है, लेकिन कम से कम यह स्पष्ट है।

मान लीजिए कि आपके पास एक शब्दकोश है जो होस्टनामों को आईपी पतों में परिवर्तित करता है। बस आगे बढ़ो और इसे HostnamesToIpAddresses कहें। यकीन है कि यह लंबा है, लेकिन यह ठीक कहता है कि यह क्या करता है।

कुछ के लिए एक नाम के साथ आने में असमर्थता का मतलब है कि आप नहीं जानते कि यह क्या कर रहा है, जिसका अर्थ यह भी है कि आपके सामने एक बड़ी समस्या है।


8
मैं हमेशा ऐसे लोगों को थप्पड़ मारना चाहता हूं जो पहचानने वालों के बारे में बहुत लंबे समय तक शिकायत करते हैं (जब वे केवल तीन या चार शब्द हैं)। हमें अपनी टाइपिंग की गति तक सीमित नहीं होना चाहिए, और यदि हम हैं, तो हमें एबीसीडी को देखना चाहिए और टाइप करना सीखना चाहिए !
डैश-टॉम-बैंग

1
की वजह से +1 "The inability to come up with a name for something means you don't know what it is doing"। मुझे लगता है कि यह वास्तव में एक महत्वपूर्ण बिंदु है। इसे साकार करने से आपको कोड में अस्पष्टता और अस्पष्टता खोजने में मदद मिलती है।
BiAiB

34

मैं हमेशा अपने चर और कार्यों को महान नाम देने की कोशिश करता हूं ।

यदि मैं एक महान नाम के बारे में नहीं सोच सकता, तो मैं एक अच्छे नाम के लिए समझौता करूंगा ।

अगर मैं एक अच्छा नाम के साथ नहीं आ सकता, मैं एक का उपयोग करेंगे ठीक नाम

मैंने कभी भी 15 साल की पेशेवर प्रोग्रामिंग में एक सभ्य नाम के साथ आने में असमर्थ रहा।


6
+1, जैसे, काव्यात्मक होने के लिए।
Spong

1
... हालाँकि, 15 साल और 6 महीने पहले, Microsoft बॉब का जन्म हुआ था।
पुण्योसोमीडिया

12

यदि आप एक चर या फ़ंक्शन पर अच्छे नाम के बारे में नहीं सोच सकते हैं, तो आप समझ नहीं पाते हैं कि आप क्या कर रहे हैं या आपको एक खराब डिज़ाइन मिला है। किसी भी तरह से, "एक्स" (जब तक आप निर्देशांक के साथ काम कर रहे हैं) जैसे कुछ मनमाने नाम पर थप्पड़ मारने से आपकी दुविधा हल नहीं होगी; यह केवल इसे बदतर बना देगा और दर्द को अधिक बनाए रखना होगा।


8
मैं असहमत हूं। डेवलपर्स को हमेशा व्यापार की शब्दावली की पूरी समझ नहीं होगी। हेक, यहां तक ​​कि ग्राहक आवश्यकताओं को इकट्ठा करने के दौरान शब्दावली को व्यक्त करने में सक्षम नहीं हो सकते हैं - कभी-कभी अकेले भी अपने स्वयं के व्यवसाय को समझें! लेकिन यह सॉफ्टवेयर को उत्पादित होने से नहीं रोकता है। यह प्रोटोटाइप को बनने से नहीं रोकता है। या यहां तक ​​कि कोड को सही समझ के अभाव के कारण बाहर फेंक दिया गया। लेकिन इन स्थितियों में कोड का अभी भी उत्पादन और वितरण किया जाना चाहिए।
स्पंज

3
@sunpech मुझे माफ करना, लेकिन यह थोड़ा डरावना है। क्या आप हमें यह बताने की कोशिश कर रहे हैं कि रैंडम कोड लिखना आम बात नहीं है कि यह वास्तव में क्या करता है? यदि आप कुछ नहीं जानते हैं, तो यह जानने के लिए कुछ प्रयास करें और आप भविष्य में समस्याओं से बचेंगे।
एडम बर्टेक

@AdamByrtek नहीं, मेरा यह मतलब नहीं है। मैं जो कह रहा हूं वह यह है कि यह हमेशा डेवलपर और टीम के लिए नहीं है कि ग्राहक क्या चाहता है इसकी सबसे अच्छी समझ है। कुछ ग्राहकों को यह समझाने में मुश्किल होती है कि वे क्या चाहते हैं, या यह नहीं जानते कि वे क्या चाहते हैं। खराब कोड होता है। परियोजनाओं में खराब आवश्यकताओं से लेकर अवास्तविक समय सीमा तक समस्याएं होती हैं। यही वास्तविकता है। कोई सही दुनिया नहीं है जहां एक डेवलपर के पास सभी अज्ञात हल होंगे, जहां ग्राहक परिपूर्ण हैं, और समय सीमा सटीक है। प्रोटोटाइप के लिए उत्पन्न कोड को बाहर फेंक दिया जाता है। लेकिन कोडिंग अभी भी होने की जरूरत है।
22

जारी ... हम चेक-इन से ठीक पहले उत्पादन कोड या अंतिम कोड बनाने के बारे में बात नहीं कर रहे हैं। हम इस बारे में बात कर रहे हैं कि किसी ऐसी चीज़ का नाम कैसे रखा जाए, जिसकी हमें अभी तक पूरी समझ नहीं है- शुरू में किसी ऐसी चीज़ पर शुरू करना जो संभवतः किसी अच्छे कारण के लिए अस्पष्ट हो (उदाहरण: टीम में कोई भी इसे अभी तक नहीं समझता है, शायद नहीं ग्राहक भी)। लेकिन चीजों को अभी भी आगे बढ़ने की जरूरत है जो कि ज्ञात है।
स्पंज

1
@sunpech: एक ही स्थान जो मैंने वास्तव में देखा है fooऔर barकोड में उपयोग किया जाता है वह एक अवधारणा दिखाने के लिए उपयोग किए जाने वाले कोड के छोटे स्निपेट में है। ज़रूर, मैं नाम सोचकर भी लड़खड़ाता हूं, लेकिन मैं कभी भी ऐसी बुरी स्थिति में नहीं आया हूं, जहां fooएकमात्र उचित विकल्प रहा हो। अगर ऐसा होता, तो मैं वास्तव में नहीं जानता कि मैं क्या कर रहा हूं और जब तक मुझे पता नहीं है कि इसके बजाय ड्राइंग बोर्ड और छद्म कोड पर वापस जाने की जरूरत है।
गैबलिन

5

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

आपको एक चर मिल गया है। बात है। यह किसी भी चीज का प्रतिनिधित्व करता है। और चीजों के नाम हैं। आप कैसे जानते हैं कि वे चीजें हैं! क्या आप वास्तव में मुझसे कह रहे हैं कि आपको किसी चीज़ का नाम एक और चीज़ के नाम पर रखना होगा क्योंकि आप वास्तविक चीज़ के नाम के साथ नहीं आ सकते हैं?

Iterators मुझे बुलाया जाना चाहिए। नेस्टेड iterators एक गलती की संभावना है, लेकिन अगर आपको उनकी आवश्यकता है, तो क्रम में (ए, ई, ओ, यू, और भगवान मेरी मदद करें, हाँ, कभी-कभी वाई), बाकी स्वरों के माध्यम से अपना रास्ता बनाते हैं।

इसके अलावा, बस उस चीज़ को कॉल करें जो यह है और इसके साथ किया जाए!


9
मुझे विरोध करना चाहिए! स्पष्ट रूप से आंतरिक पुनरावृत्ति को j और उस k के अंदर एक को कहा जाना चाहिए । लंबे समय से चली आ रही गणितीय परंपरा आपके कंधे पर दिख रही है!
फ्रैंक शियरार

हुह। मैंने कभी जम्मू और कश्मीर नहीं किया। मैं देखता हूं कि यह समझदार है, हालांकि।
डैन रे

8
कंप्यूटर विज्ञान के लिए डायजेक्ट्रा एक ऐसा स्वाभाविक कारण था कि उनके नाम में सही क्रम में तीन सबसे सामान्य पुनरावृत्त चर शामिल थे।
ग्लेनट्रॉन

3
@glenatron: अंत में, उस नाम को याद करने का तरीका याद रखने का एक तरीका!
विन्यासकर्ता

4

अगर मैं तुरंत एक महान नाम नहीं ले सकता, तो मैं अस्थायी रूप से एक "ठीक" नाम का उपयोग करता हूं, फिर कोडिंग रखें। कम से कम यह कुछ ऐसा होगा जो आइटम का पर्याप्त वर्णन करता है, यहां तक ​​कि यह सही नहीं है । लगभग हमेशा, जब तक मैं उस विशेष कोड के पहले ड्राफ्ट को लिख रहा होता हूं, तब तक मेरे लिए एक और सही नाम हो गया होता है। कोडिंग की प्रक्रिया के माध्यम से, उस विशेष चर के साथ मेरे इरादे अधिक स्पष्ट हो जाते हैं। (दूसरी ओर, कभी-कभी मेरे साथ ऐसा होता है कि चर को शुरू करने के लिए गलत कल्पना की गई थी और मैं इसे किसी और चीज़ के पक्ष में हटाता हूं।)


3

मैं इसे नाम देता हूं कि मुझे लगता है कि फ़ंक्शन को क्या करना चाहिए - ऐसा कुछ जो कम या ज्यादा इरादे को व्यक्त करता है। एक बार जब फ़ंक्शन का शरीर लिखा जाता है, तो मुझे यह स्पष्ट लगता है कि इसे क्या कॉल करना है और वापस जाना है और यदि आवश्यक हो तो इसका नाम बदलें।


1
यह हमेशा काम नहीं करता है, खासकर जब डेवलपर शब्दावली से परिचित नहीं हो सकता है या यहां तक ​​कि व्यवसाय / उद्योग के इरादे से भी हो सकता है। कुछ अधिक सामान्य और स्पष्ट का उपयोग यह बताने के लिए किया जाना चाहिए कि इसे बाद में परिभाषित करने और बदलने की आवश्यकता है। ओपी पूछ रहा है कि जब इरादा अज्ञात है, और शुरू में क्या इस्तेमाल किया जाना चाहिए । यदि नामकरण कुछ ऐसा है जो अधिक या कम इरादे बताता है, तो एक अच्छा नाम पहले से ही दूर नहीं है।
Spong

1
@sunpech गंभीरता से, यहां तक ​​कि जब पहली बार काफी विशिष्ट डोमेन के साथ नौकरी शुरू की, तो मुझे फ़ंक्शन नाम के साथ आने में कोई परेशानी नहीं हुई। शायद मुझे और अधिक कार्य लिखने की आवश्यकता है। :)
एडम लेअर

1
@sunpech: आप एक फ़ंक्शन को बिना यह जाने कि वह क्या करता है, कैसे लिख सकता है?
विन्यासकर्ता

4
@ सुनपेच: मैंने ऐसा नहीं कहा। मैंने सिर्फ इतना कहा कि आप संभवतः यह जानते हुए कि यह क्या कर रहे हैं बिना एक फ़ंक्शन नहीं लिख सकते। यह मुमकिन नहीं है। मैंने ऐसा कभी नहीं देखा है, और मैं नहीं देखता कि यह कैसे हो सकता है। शायद मैं बेईमान हो रहा हूं, लेकिन जब आप एक फ़ंक्शन DoFoo () का नाम देते हैं, तो आप उसके अंदर क्या नरक डालते हैं ??
विन्यासकर्ता

2
@sunpech: मैंने कभी नहीं कहा कि नामों को शुरू से 'अच्छा' होना चाहिए। मैं सिर्फ यह देखने में विफल रहता हूं कि आप एक ऐसी स्थिति में कैसे आएंगे, जहां आप एक समारोह बनाना चाहते हैं, लेकिन आप नहीं जानते कि यह क्या करने जा रहा है।
विन्यासकर्ता

2

फू और बार । चूंकि अभी तक फ़ंक्शन / चर नामकरण के पीछे कोई अर्थ नहीं है, इसलिए मैं जो कुछ भी परिभाषित करने की कोशिश कर रहा हूं उसके साथ फू और / या बार के कुछ संयोजन का उपयोग करता हूं।

बाद में जब मैं इसका नाम क्या होना चाहिए इसकी बेहतर समझ है, तो इसे खोजना / खोजना आसान बनाता है।

विकिपीडिया पर फ़ॉबर भी देखें ।

कंप्यूटर प्रोग्रामिंग या कंप्यूटर से संबंधित प्रलेखन में शब्द फ़ोबोबर, फू, बार, और बाज को कभी-कभी प्लेसहोल्डर नामों (जिसे मेटासिनटैक्टिक चर के रूप में भी संदर्भित किया जाता है) के रूप में उपयोग किया जाता है। उनका उपयोग चर, कार्यों और आदेशों जैसी संस्थाओं के नाम के लिए किया गया है, जिनका उद्देश्य महत्वहीन है और केवल एक अवधारणा को प्रदर्शित करने के लिए सेवा प्रदान करता है। इस उपयोग में स्वयं शब्दों का कोई अर्थ नहीं है। फोबार का उपयोग कभी-कभी अकेले किया जाता है; foo, bar, और baz का उपयोग कभी-कभी उस क्रम में किया जाता है, जब कई संस्थाओं की आवश्यकता होती है।


1

अपने फंक्शन को किसी चीज़ से प्रीफ़िक्स करें और इसे अभी के लिए बेस्ट-शॉट नाम दें। उदाहरण के लिए, एक फ़ंक्शन जो सभी-उत्पादों-के-लिए-चयनित-उपयोगकर्ता-से-डेटाबेस के लिए बचाता है RENAME_SaveAllProductsForTheSelectedUserToTheDatabase() हो सकता है


बेशक, इस मामले में, आपको बस फ़ंक्शन का नाम देना चाहिएSaveAllProductsForTheSelectedUserToTheDatabase()
विन्यासकर्ता

1

जो भी मैं इन हार्ड वेरिएबल्स को नाम देने के लिए कहता हूं मैं एक //TODO find a better nameटिप्पणी करता हूं ताकि मैं बाद में इसका नाम बदल सकूं

आमतौर पर, जब मैं चर / फ़ंक्शन / वर्ग का उपयोग करना शुरू करता हूं तो मुझे उनके लिए एक बेहतर नाम मिलता है।


0

आपके पास कोड को ध्यान में रखते हुए जल्द ही एक अच्छा नाम रखना सबसे अच्छा है, जब तक आप बाद में इंतजार करना चाहते हैं जब तक आप इसे अच्छी तरह से नाम नहीं देंगे!


0

मुझे लगभग कभी भी अच्छा, वर्णनात्मक नाम खोजने में कोई समस्या नहीं होती है .. लेकिन कभी-कभी नामकरण काफी हद तक बेमानी हो जाता है, जिसमें वर्ग और चर नाम बहुत समान होते हैं। WebClient webclient = new Webclient (uri); ...और जैसे।


0

कभी-कभी मैं ज़ज़्ज़ अस्थायी रूप से उपयोग करता हूं।

आपकी मदद करने के लिए एक अच्छा नियम है:

  • क्या यह एक बूलियन लौटाता है और इसका कोई साइड इफेक्ट नहीं है: फिर एक विशेषण का उपयोग करें (शुरुआत है, था) लेकिन भविष्य में तनाव कभी नहीं।
  • क्या यह एक अलग प्रकार लौटाता है और इसका कोई दुष्प्रभाव नहीं है: फिर एक संज्ञा का उपयोग करें।
  • क्या यह कुछ भी नहीं बल्कि कुछ वापस करता है: फिर एक क्रिया का उपयोग करें।
  • क्या यह एक वर्ग है: फिर एक संज्ञा का उपयोग करें।

-1

अतीत में मैंने बॉब का बहुत उपयोग किया था , लेकिन यह फ़ंक्शन / स्क्रिप्ट में एकमात्र-ठीक से नामित चर नहीं होगा क्योंकि अन्यथा कोड जल्दी से अपठनीय हो जाता है।

(बॉब यूनी दिनों से एक हैंगओवर है - कॉलिंग वैरिएबल बॉब और फ्रेड के साथ दूर हो रहा है)

मैं उपयोग करने के लिए खुश हूँ मैं एक काउंटर के लिए।

सार्थक नामों का उपयोग करने के लिए बेहतर, भले ही वे छोटे और तड़क-भड़क वाले न हों।


मैंने एक ऐसे व्यक्ति के साथ काम किया है, जिसने अपने अनुप्रयोगों और कक्षाओं में अपने अनुप्रयोगों के लिए नामों का उपयोग किया है। शायद यह कहने की जरूरत नहीं है कि उनका कोड आमतौर पर बहुत खराब था।
डैश-टॉम-बैंग

2
@ डैश-टॉम-बैंड: मुझे लगता है कि उसका कोड आमतौर पर बहुत बॉब था।
विन्यासकर्ता

अगर मैं एक संकलित करने के लिए कुछ नाम संकेतन में अपना नाम काम कर सकता हूं, तो मैं इसे आमतौर पर करता हूं, भले ही यह थोड़ा खिंचाव हो। TPropertyEnhancmentTypeEditor = (PETEObtuse, PETEAwful, PETEDispicable);
पीटर टर्नर

-1

अगर मुझे पूरी तरह से पता नहीं है कि चर का नाम क्या है, जो बीस वर्षों में नहीं हुआ है ... पुरानी गर्लफ्रेंड के नाम, या महिलाओं की इच्छा थी कि मेरी गर्लफ्रेंड थी। उन पहचानकर्ताओं के साथ अंतिम कोड कुछ साल पहले उत्पादन से हटा दिया गया था।



-2

ब्लाह , लेकिन केवल अस्थायी रूप से। मैं हमेशा पीछे जाता हूं और उनका नाम बदलकर अच्छे चर नामों पर रख देता हूं।


1
इसका कभी उपयोग करें। काफी अच्छा।
डायनामिक


-3

मैं अपने डेस्क पर सामान का उपयोग करता हूं।

  • कप
  • ऑल्ट
  • फू
  • बी / ए / सी (एकल पत्र कबाड़)
  • एल्क (उच्चारण करने योग्य बहु-पत्र कबाड़)

मैं जेनेरिक नामों की ओर भी झुकाव करता हूं (कम से कम कार्यों के लिए):

  • विनिमय
  • प्रक्रिया
  • reviseVar
  • टिन से मढ़नेवाला

यह अस्थायी सामान के लिए है। मैं कसम खाता हूँ कि यह भंडार में बहुत कम उत्पादन करता है।

...


मैं हमेशा गंदा महसूस करता हूं, लेकिन कभी-कभी एक विधि के लिए सबसे स्पष्ट नाम "गो" या "डू इट" है। जब भी मैं एक बेहतर नाम के साथ आ सकता हूं, लेकिन कभी-कभी यह वास्तव में "वह कार्य करता है जिसका अर्थ है कि कार्यक्रम का नाम होने वाला है।" हालाँकि, फ़ंक्शन नाम के लिए उपयोग करने के लिए बहुत लंबा है। :)
डैश-टॉम-बैंग

@ डैश-टॉम-बैंग: किसी कारण से, runकी तुलना में बहुत बेहतर दिखता है go। शायद यह इसलिए है क्योंकि हम सभी अपने कार्यक्रमों को तेज करना चाहते हैं।
विन्यासकर्ता
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.