जावा SE 8 तारीख, शुरू करने के लिए एक नया तंत्र के साथ आता है LocalDate
, LocalTime
और LocalDateTime
कक्षाओं के लिए समय की instants प्रतिनिधित्व करने के लिए। इस तरह के instants में हेरफेर करने के लिए, तरीकों का एक सेट दिए गए हैं: LocalDate.plusDays(...)
, LocalDate.minusDays(...)
और इतने पर।
मैं हमेशा सोचा है कि अच्छा अभ्यास अपने उद्देश्य का वर्णन क्रियाओं के बाद तरीकों नामकरण किया गया था, के रूप में तरीके हैं, वास्तव में, संचालन निष्पादित किया जाना है, कुछ है कि होगा प्रदर्शन एक कार्रवाई। बस, का उल्लेख करता है, तो आप की तरह वर्गों पर विचार StringBuilder
, उदाहरण के लिए, विधियों के नाम हैं append
, insert
, delete
...
यही कारण है कि मेरे लिए यह सही नहीं लग रहा एक विधि नामकरण है plusDays
के बजाय sumDays
, minusDays
की बजाय subtractDays
। यह सिर्फ मुझे बहुत कष्टप्रद लग रहा है? तुम क्या सोचते हो?
इसका एकमात्र कारण मैं सोच सकता हूं कि तिथियां अपरिवर्तनीय वस्तुएं हैं, इसलिए कॉल करके plusDays
आप मूल वस्तु में दिन नहीं जोड़ रहे हैं बल्कि नए गुणों के साथ एक नया निर्माण कर रहे हैं, लेकिन यह बहुत सूक्ष्म है।
sqrt
केवल एक शब्द है जिसे प्रोग्रामर को पहचानने और जानने की उम्मीद है। अंग्रेजी शब्द "स्क्वायर रूट" है। लेकिन अंग्रेजी में जो स्वाभाविक है उसके अनुसार चीजों का नामकरण करना अच्छा नहीं है। उदाहरण के लिए, "अवैध" शब्द लें, जो पूरी तरह से ठीक अंग्रेजी शब्द है। हालांकि, अगर किसी ने अपनी विधि का नाम दिया है, तो isIllicit
मुझे लगता है कि मैं हर बार इस पद्धति के कॉल को देखने के लिए अपनी आंखें फाड़ना चाहता हूं। यह सिर्फ भयानक लग रहा है और विचार व्यक्त करने का एक बेहतर तरीका होना चाहिए।
sum
इस संदर्भ में गलत लगता है। मैं .net के पसंद करते हैं AddDays
।
Math.addExact(1, 2)
क्योंकि आप कहते हैं कि "1 और 2 जोड़ें"। tomorrow.plusDays(2)
क्योंकि आप कहते हैं "कल प्लस 2 दिन"। अगर किसी तरह से addExact
सदस्य होते Integer
तो ऐसा होता 1.plusExact(2)
।
plusDays
भविष्य में एक नई तारीख x संख्या को वापस करने की , जबकि addDays
मैं मूल वस्तु को म्यूट करने की उम्मीद कर सकता हूं। हालांकि यह सिर्फ मुझे है, मैं जावा से परिचित नहीं हूं।
sqrt
स्क्वायर रूट कहा जाता है । इस विधि का नामकरणtakeSqrt
आपके नियम के अनुसार हो सकता है, लेकिन इसका नामकरण करने से यह विधि अधिक पठनीय नहीं होगी और न ही यह स्पष्ट हो पाएगी।