2010-10-05 10 views
7

अगर मैं एक वर्ग है कि दिनांक समय संग्रहीत करता है:मुझे डेटटाइम संपत्ति का नाम क्या देना चाहिए?

class LogEntry 
{ 
    readonly DateTime dateTime; 

    public LogEntry(DateTime dateTime) 
    { 
     this.dateTime = dateTime; 
    } 

    public DateTime ????? 
    { 
     get 
     { 
      return dateTime; 
     } 
    } 
} 

क्या मैं दिनांक समय संपत्ति नाम रखना चाहिए? या मुझे संपत्ति को 2 गुणों में विभाजित करना चाहिए: 1) दिनांक 2) समय?

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

+0

सहमत Kwebble। पूर्व-निरीक्षण में, मेरी इच्छा है कि मैंने उदाहरण वर्ग शामिल नहीं किया है, क्योंकि सवाल वर्ग-विशिष्ट नहीं था। –

+0

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

उत्तर

9

TimeStamp शायद?

+0

मुझे यह पसंद है; विकिपीडिया प्रविष्टि के अनुसार, यह पहले से ही आम सहमति है कि यह एक तिथि और एक समय और केवल एक या दूसरे दोनों का प्रतिनिधित्व कर सकता है। –

+0

जो "-नॉट-जरूरी नहीं है केवल एक या दूसरे" –

+2

यहां छोटी समस्या यह हो सकती है कि टाइमस्टैम्प का उपयोग घड़ी-गणना (टिक) गुणों के लिए भी किया जाता है। तो दीवार की घड़ी पूरी तरह से स्पष्ट नहीं है। –

7

When लॉग में एक अच्छा नाम है।

संपादित करें: और सरकारी नामकरण के दिशा-निर्देश से: "। Do एक संपत्ति अपने प्रकार के रूप में ही नाम के लिए विचार करें" कि में

public DateTime DateTime { get { ... } } 
+0

नामकरण दिशानिर्देशों का संदर्भ: http://msdn.microsoft.com/en-us/library/fzcth91k%28v=vs.71%29.aspx – dotarj

2

कुछ भी इतना आसान है यह परिणाम है, जो अपने आप में इस तरह के रूप में DateTime अन्य नामों से विरोध नहीं करता, और वर्णनात्मक है। चूंकि यह एक लॉग एंट्री है, इसलिए आप इसे EntryTime पर कॉल कर सकते हैं।

6
LogDate 
CreatedDate 
EntryDate 
StarDate // ** 

एक ऐसा नाम चुनें जिसे आप सबसे अच्छी संपत्ति का वर्णन करते हैं। और, नहीं, संपत्ति को विभाजित मत करो।

+7

@ माइकल, मैं वास्तव में * मतलब * स्टारडेट होने के लिए था। Twas ए, उम, मजाक। –

+0

ओह। उसके लिए माफ़ करना। –

+0

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

0

जो भी आपको (और आपकी टीम) समझ में आता है। आप EntryDateTime का उपयोग कर सकते हैं क्योंकि यह समझ में आता है। यदि आपको कभी भी दिनांक और समय अलग करने की आवश्यकता होगी, तो अलग-अलग तरीकों को बनाने के लायक होंगे, लेकिन नामकरण के कारण दोनों को विभाजित करने की आवश्यकता नहीं है।

1

आपको अपने कोड बेस में टाइमस्टैम्प के लिए एक सम्मेलन चुनना चाहिए और फिर उस पर चिपके रहना चाहिए। उदाहरण के लिए, मैं अपने सभी टाइमस्टैम्प को "अपडेट_ट" या "बनाया_ट" कहता हूं। अन्य विकल्प बनाया गयाडेटा और अपडेटडेट होगा।

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

2

यहां अधिकतर सुझावों के विपरीत, मैं DateCreated का उपयोग करूंगा क्योंकि जब आप निर्माण की तारीख देखते हैं तो "दिनांक" टाइप करना प्रारंभ करना सहज होता है। मुझे यह भी नहीं लगता कि नाम में केवल "तारीख" दिखाई देने वाली समस्या है और "समय" नहीं। यह लगातार और स्वीकार्य है।

2

TimeStamp के बारे में क्या?

+1

कुछ सेकंड होने के लिए +1 सांत्वना पुरस्कार बहुत धीमा :-) –

0

आप क्या संपत्ति के रूप में करता है एक विवरणात्मक नाम लेने चाहिए ...

तो एक CreateDate फिर "CreateDate" .. सुंदर आत्म व्याख्यात्मक के लिए अपने।

प्रवेश के लिए, आप "LoggedTimeStamp", "LoggedDateTime" आदि

0

एक तारीख समय का सिर्फ एक मोटे अनाज उपाय है, कि एक ही इकाई में 24 घंटे ढेर सारी उपयोग कर सकते हैं। मुर्गियों और अंडों के मामले में रखो, समय पहले आता है: समय भौतिक इकाई है, तिथि केवल माप की एक इकाई है। डेटटाइम डेटाटाइप इस मुद्दे को भ्रमित करने में मदद करता है और कई लोगों को तिथि के अंश के रूप में समय के बारे में सोचने की ओर ले जाता है। यह पूरी तरह गलत है! आइंस्टीन ने स्पेस डेट की बात नहीं की, क्या वह?

आपके नामों को वास्तव में क्या होता है, इसके बारे में वर्णनात्मक होना चाहिए, डेटा प्रकार (लेज़िंस्की, या जो भी उसका नाम, स्पष्ट रूप से उनके निपटारे में इंटेलिजेंस नहीं था) का विवरण देने के विपरीत।

तो या तो लॉगटाइम या एंट्रीटाइम सबसे अच्छा नाम होगा।

डेटाटाइप को भ्रमित करने, माप की इकाई और भौतिक इकाई वैचारिक त्रुटियां हैं जो प्रोग्रामर को बगीचे के पथ तक ले जाती हैं।

और यह ईडन का बगीचा नहीं है।

4

मान लिया जाये कि LogEntry प्रवेश के लिए प्रयोग किया जाता है, तो यहां कुछ अन्य प्रवेश प्लेटफार्मों यह करना है:

log4net यह LoggingEventData struct में टाइमस्टैम्प कहता है।

एनएलओजी इसे LogEventInfo कक्षा में टिमस्टैम्प कहते हैं।

एंटरप्राइज़ लाइब्रेरी इसे LogEntry कक्षा में टाइमस्टैंप कहता है।

माइक्रोसॉफ्ट इसे TraceEventCache कक्षा में डेटटाइम कहते हैं (TraceEventCache TraceListener Trace * कॉल में पारित किया जाता है। डेटटाइम वह समय है जिस पर लॉगिंग संदेश उत्पन्न हुआ था)।

+0

+1: यह जांचना कि यह कितना विशाल वाणिज्यिक अनुप्रयोग करता है, समस्याओं को हल करने के लिए सर्वोत्तम रणनीतियों में से एक है (जब उपलब्ध हो)। –

0

प्रश्न पर टिप्पणी कहती है कि प्रश्न वर्ग विशिष्ट नहीं होना चाहिए।

सही उत्तर हालांकि क्लास विशिष्ट है, यह इस तथ्य से संबंधित नहीं है कि संपत्ति डेटटाइम है (हम पहले से ही जानते हैं कि यह एक तिथि और समय है, ठीक है, क्योंकि यह डेटा और समय है)। संपत्ति किसी विशेष कारण के लिए मौजूद होगी, और यही कारण है कि हमें नामकरण करते समय विचार करना चाहिए।

फिर भी, जबकि एक गैर वर्ग विशेष संपत्ति नाम के लिए एक अनुरोध किया जा रहा है, मैं प्रदान करते हैं:

public DateTime TheMomentOfTruth 

:)

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