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