日付変数またはプロパティの適切な命名規則とは、C#などのオブジェクトベースの強く型付けされた言語(および日付データベース列の拡張)のことですか? 「日付」という言葉を使っていますか?
正規の「作成」または「更新」日付/時刻プロパティの例を避け、代わりに別の一般的な例を選択します。これらの名前のいずれかを回避する技術的、ドメイン固有、またはユーザーの理由がないと仮定して、間隔(カレンダー時間の期間)が開始した、または開始する日付を含むプロパティには、どのような名前を付けますか?
StartDate
StartedDate
DateStarted
DateStart
DateOfStart
Started
Starts
Start
(この質問は、おそらく「日付」の代わりに「時間」を使用して、日付と時刻のプロパティについても尋ねられる可能性があります。)
これらすべての長所と短所を見ることができます。私が考えた懸念:
私の最初の判断は次のように答えることですが、私はまだ経験からもっと意見を求めています。
Name
のようなプロパティは文字列である可能性が高いことがわかりますが、Start
のようなプロパティは、「開始...何ですか?」これらの判断により、与えられた例ではStartDate
を最良の選択肢として選択するようになりました。
Startは実際には名詞ではありませんが、他の例では、混乱がない場合は、単純にするために「... Date」のない名詞だけを検討する場合があります(たとえば、Expiration
ではなくExpirationDate
など)。さらに単純化するために、動詞形式も検討する場合があります。たとえば、Expires
ではなくExpiration
を使用します。しかし、今では、一貫した基準を持つのではなく、「気分が良いもの」に向かっているように感じています。
明確にするのを助けるために誰かから連絡をもらいたいです。
Intellisenseスタイルのオートコンプリートがより適切に機能するように、Word Dateをプレフィックスとして使用することについてのコメントが好きです。
その際に注意しなければならないのは、DateStartとDateStartedは、英語では意味的に同等ではないということです。前者の1つは、日付が到着していないことを意味しますが、ポイントは将来に近づいています。後者のDateStartedは、事が実際に開始され、その特定の時間に開始されたことを意味します。システムが何を達成しようとしているかに応じて、両方のフィールドが必要になる場合があります。
日付フィールドを2つのカテゴリに分割しました
a)単一の時点を表すものは常にxxxDateです。 OrderDate、InvoiceDate、BirthDate、EnrolmentDate ...
b)時間範囲の開始点または終了点を表すものは、範囲の一方の端のみを保持するクラスまたはレコードであっても、常にxxxFromまたはxxxUntilです。 PriceApplicableFrom、DiscountValidUntil ...
私がいつもそれをしようとする方法は、日付(および時間)を問題のドメインでのコンテキストに基づいて、タイムスパンから区別することです。
たとえば、Date
の値は、問題のドメインで関心のある特定の時点(OrderDate
、従業員のStartDate
など)を表します。これらの特定の時点の前後の期間は、問題のドメインでは関係ありません。 期間として。これらの種類の値は、常にsomethingDate
と呼びます。
ある問題のドメインに関連する時間スパンについて-時間スパンとして-次に、時間スパンのエンドポイントにsomethingStart
/somethingStop
、またはsomethingBegin
/somethingEnd
という名前を付けますここで、「何か」は、問題のドメイン内の期間であり、期間を表します。たとえば、FallTermBegin
/FallTermEnd
、またはFlightTimeStart
/FlightTimeStop
。
ドメインターム自体は期間を意味するため、変数名にDate
またはTime
を含める必要はありません。その性質はすでにわかっているためです。また、ドメインタイムスパンの名前に十分な注意を払うと、単位は通常、FlightTime
の時間やFallTerm
の日数など、直感的にもわかります。