2 ポイント 投稿者 GN⁺ 2023-06-29 | 1件のコメント | WhatsAppで共有
  • TypeIDs: UUIDv7をベースにした、StripeのAPIに着想を得た型安全な拡張です。
  • TypeIDsは、型プレフィックス、アンダースコア区切り、およびbase32でエンコードされた26文字の128ビットUUIDv7で構成されます。
  • TypeIDsは、型安全性、UUIDとの互換性、Kソート可能性、慎重に設計されたエンコーディングといった利点を提供します。
  • TypeIDsは今後のUUIDv7標準と互換性があり、良好なローカリティを持つデータベースの主キーとして使用できます。
  • TypeIDsはGoとSQLで実装されており、Python、Rust、TypeScriptでの実装も近日提供予定です。
  • この記事では、TypeIDsを生成、デコード、エンコードするコマンドラインツールについて触れています。
  • この記事では、UUIDv7や、xid、ulid、ksuidのようなUUIDv7の代替案に関する取り組みにも触れています。

1件のコメント

 
GN⁺ 2023-06-29
Hacker Newsのコメント
  • 接頭辞文字列を固定して文書化する提案が示されており、複合型に対して単一の区切り文字を許可しています。
  • 識別子のGo実装はテストが不足しており、ユニットテストが必要です。
  • 別の提案では、GoでGoogleのUUID実装に合わせ、文字列の代わりにパース関数と内部バイト配列を使うべきだとされています。
  • 識別子の設計判断は、トレードオフの間で良いバランスを取っていると称賛されました。
  • 別のコメント投稿者は、一意な識別子生成に関する自身のアプローチを共有し、母音なしの32進法を使い、チェックサムを追加する方法を用いています。
  • 彼らはCrockfordエンコーディングを批判し、より効果的で簡潔なエンコーディングとしてbase 58を提案しています。
  • Crockfordのbase-32システムへのリンクが共有され、「偶発的な卑語」を理由に文字Uが除外されていることに混乱が示されました。
  • コメント投稿者はORMでの「タグ付きID」の使用例を共有し、コピー&ペーストの区切り記号としてアンダースコアを使わなかったことを後悔しています。
  • 識別子実装では細部の重要性が強調されました。
  • UUIDv7が標準となり、ライブラリやデータベースでデフォルトサポートされることへの期待が言及されました。
  • データベースに対するUUIDv4の長所と短所が議論され、分散データベースアプリケーションではUUIDv4が好まれています。
  • ID全体をダブルクリックして選択できる機能の有用性が強調されました。
  • より大きなキー空間とソート可能なタイムスタンプを提供する代替IDジェネレーターとして、ksuidが推奨されています。
  • ksuidは、ほとんどの言語でライブラリを提供する最高の汎用IDジェネレーターとして称賛される一方、UUID v1-7は無駄が多いと見なされています。