9
votes

Que devrais-je nommer une propriété DateTime?

Si j'ai une classe qui stocke une date d'heure: xxx

Que dois-je nommer la propriété DateTime? Ou devrais-je diviser la propriété en 2 propriétés: 1) Date 2) TIME?

EDIT: Je cherchais un nom de propriété qui fournit une inférence sur laquelle sa valeur est à la fois une date et une heure, pas une propriété. Spécifique aux entrées de journal (par exemple, DateCreated ne fournit aucune inférence qu'il partage également le délai de création et inversement).


2 commentaires

Convenu kwebble. En rétrospective, j'aimerais que je n'ai pas inclus l'exemple de classe, car la question n'était pas censée être spécifique à la classe.


Ceci est un peu en arrière. C'est un peu un hack d'utiliser DateTime quand on ne signifie qu'une date, bien que ce soit un assez raisonnable, et je pouvais voir pourquoi vous voudriez préciser que vous le faisiez quand vous l'avez fait, mais je ne vois pas La nécessité de signaler "Cela ne me fait pas pirater quelque chose dans un type plus large que nécessaire".


12 Réponses :


8
votes

quand est un bon nom dans un journal.

EDIT: et des lignes directrices de nommage officielles: " do considérons pour nommer une propriété identique à son type." Qui se traduit par xxx


1 commentaires

2
votes

Tout ce qui est simple, ne conflit pas d'autres noms tels que DateTime et est descriptif. Comme il s'agit d'une entrée de journal, vous pouvez appeler cela entrée .


0 commentaires

7
votes
LogDate
CreatedDate
EntryDate
StarDate // **
Pick a name that you feel describes the property best. And, no, do not split the property.

2 commentaires

@Michael, je signifiait que pour être rattrapé. Twas a, euh, blague.


Je suis complètement d'accord. Toutes les propriétés doivent être encore qualifiées que le nom de type, même lorsque le but semble aveuglément évident (comme le serait le cas d'une logentiry).



0
votes

Quel que soit le sens pour vous (et votre équipe). Vous pouvez utiliser entréeDateTetime comme cela aurait un sens. Si vous aurez besoin de la date et du temps séparément, cela vaut la peine de créer des méthodes distinctes, mais il n'est pas nécessaire de diviser les deux simplement pour des raisons de nommage.


0 commentaires

1
votes

Vous devez choisir une convention pour des horodatages dans votre base de code, puis en vous tenez à cela. Par exemple, j'appelle tous mes horodatages "mis à jour" ou "créé_at". D'autres options seraient créées et mis à jour.

Ne divisez pas la date et l'heure dans des propriétés séparées. La seule raison pour laquelle vous feriez ce qui serait pour une sorte d'optimisation pour un traitement à fort volume où vous identifiez explicitement la date d'analyse de la date comme un goulot d'étranglement.


0 commentaires

2
votes

Contrairement à la plupart des suggestions ici, j'utiliserais daecreated car il est intuitif de commencer à taper "date" lorsque vous recherchez la date de création. Je ne pense pas non plus qu'il y ait un problème seulement "date" apparaît dans le nom et non "Time". C'est fréquent et acceptable.


0 commentaires

10
votes

horodatage peut-être?


3 commentaires

J'aime celui la; Selon l'entrée Wikipedia, elle a déjà un consensus général qu'il peut représenter à la fois une date et une heure et nécessairement une ou l'autre.


cela devrait être "- pas nécessairement juste un ou l'autre"


Un petit problème ici pourrait être que l'horodatage est également utilisé pour les propriétés du nombre d'horloges (ticks). Donc, la nature murale n'est pas totalement évidente.



2
votes

Qu'en est-il de horodatage ?


0 commentaires

0
votes

Vous devez choisir un nom descriptif comme quelle est la propriété ...

Si c'est pour créer une créationnose, "créé" .. assez explicatif.

Pour la journalisation, vous pouvez utiliser "LoggedTimeStamp", "LoggedateTime", etc.


0 commentaires

0
votes

Une date n'est qu'une mesure de grain grossière, qui tombe sur 24 heures dans la même unité. Mise en termes de poulets et d'œufs, le temps vient avant la date: le temps est l'entité physique, la date n'est qu'une unité de mesure. Le type de données DateTime aide à confondre le problème et à diriger de nombreuses personnes à penser au temps comme une fraction de date. C'est complètement faux! Einstein n'a pas parlé de la date de l'espace, n'est-ce pas?

Vos noms doivent être descriptifs de ce qui se passe effectivement, par opposition à détailler le type de données (Lezinski, ou quel que soit son nom, n'avait clairement pas d'intellisense à sa disposition).

Donc, soit le temps de connexion ou l'entrée serait les meilleurs noms.

Confusion du type de données, l'unité de mesure et l'entité physique sont des erreurs conceptuelles qui conduisent les programmeurs du parcours de jardin.

Et ce n'est pas le jardin d'Eden.


0 commentaires

4
votes

Assumer la logicitrice est utilisé pour la journalisation, voici la manière dont les autres plates-formes de journalisation le font:

Log4net appelle TIMESTAMP dans le LoggouseData struct .

Nlog appelle Timstamp dans le LOGEVENTInfo classe.

bibliothèque d'entreprise appelle l'horodatage informatique dans le Logentry classe.

Microsoft appelle Microsoft IT DateTime dans la TraceeventCache La classe (traceeventCache est transmise à des appels de trace de Tracelistener *. DateTime est l'heure à laquelle le message de journalisation a été généré).


1 commentaires

+1: Vérification de la manière dont l'application commerciale est énorme, est l'une des meilleures stratégies de résolution de problèmes (lorsque disponible).



0
votes

Le commentaire sur la question indique que la question ne devrait pas être spécifique à la classe.

La bonne réponse est si spécifique à la classe, elle ne concerne pas le fait que la propriété est une date d'heure (nous savons déjà que c'est une date et une heure car, bien, parce que c'est une donnée et une heure). La propriété existera pour une raison particulière, et c'est cette raison que nous devrions considérer lors de la nommage.

Néanmène, tandis qu'une demande de nom de propriété spécifique non de classe est faite, j'offre: xxx

:)


0 commentaires