7

Thrift IDL には Date 型はありません。日付オブジェクトを表現するための最良の言語間メカニズムは何ですか? 理想的な候補は 2 つあると思いますが、他のアイデアもぜひ聞きたいです。

  1. 文字列 - 各言語では、strftime などを使用して日付を逆に変換できます。
  2. i32 - 元に戻すことができるエポックからの時間。

変換以外にも考慮すべきことがあると確信しています。そこにいる人々が良いフィードバックをしてくれることを願っています。

4

2 に答える 2

10

tldr; 特に理由がない限り、適切にエンコードされた文字列を使用してください。

それは何が必要かによります。ここにいくつかの違いがあります。最新のコンピューターは高速であり、変換はアプリケーション全体の時間のほんの一部にすぎない可能性が高いため、「より多くの処理」は一般的に適用可能に測定することさえできないことに注意してください!

文字列 ( ISO 8601またはより厳密なXML dateTimeを使用):

  • 「より多くのスペース」/「より多くの処理」(上記を参照)/固定サイズまたは可変サイズ
  • 標準化されたカルチャー ニュートラルな形式
  • 人間が判読可能で、容易に識別可能
  • タイムゾーンをサポート
  • より広い範囲 (-9999 ~ 9999)
  • より多く/任意の精度 (最大 1us)
  • 辞書順(同じタイムゾーンおよび互換性のある形式内)

エポック (UNIX バリアント):

  • 「省スペース」「省加工」「固定サイズ」
  • 標準化されたカルチャーニュートラルなフォーマット
  • 人間が判読できない(勤勉なコーダーは「今頃」を識別できるはずです)
  • タイムゾーンなし(「ローカル」と UTC を区別することさえできません)
  • 少ない範囲 (1970 年から 2034 年までの符号付き 32 ビット数値)
  • 少ない/固定精度 (1 秒)
  • 番号順

(ユリウス日は、エポック時間と多くの類似点を持つ別のエンコードです。)

結論:

スペース/パフォーマンス実証済みの問題でない限り (これにはパフォーマンス分析と機能要件が必要です)、私は前者を選びます。今日のコンピューターは、ほんの数年前のコンピューターよりもかなり高速であり、数十年前のコンピューターよりもはるかに高速です。

于 2013-01-11T01:42:43.080 に答える