2 Punkte von GN⁺ 2023-06-29 | 1 Kommentare | Auf WhatsApp teilen
  • TypeIDs: eine von Stripes API inspirierte typsichere Erweiterung auf Basis von UUIDv7.
  • TypeIDs bestehen aus einem Typ-Präfix, einem Unterstrich als Trenner und einer 26-stelligen, base32-kodierten 128-Bit-UUIDv7.
  • TypeIDs bieten Vorteile wie Typsicherheit, Kompatibilität mit UUIDs, K-Sortierbarkeit und eine sorgfältig durchdachte Kodierung.
  • TypeIDs sind mit dem kommenden UUIDv7-Standard kompatibel und können als Primärschlüssel in Datenbanken mit guter Lokalität verwendet werden.
  • TypeIDs sind in Go und SQL implementiert; Implementierungen für Python, Rust und TypeScript sollen in Kürze folgen.
  • Der Artikel erwähnt ein Kommandozeilenwerkzeug zum Erzeugen, Dekodieren und Kodieren von TypeIDs.
  • Der Artikel erwähnt außerdem Arbeiten zu UUIDv7 und zu Alternativen zu UUIDv7 wie xid, ulid und ksuid.

1 Kommentare

 
GN⁺ 2023-06-29
Hacker-News-Kommentare
  • Es wurde vorgeschlagen, Präfix-Strings zu fixieren und zu dokumentieren und für zusammengesetzte Typen ein einzelnes Trennzeichen zuzulassen.
  • Der Go-Implementierung des Identifikators fehlen Tests; es werden Unit-Tests benötigt.
  • Ein weiterer Vorschlag ist, sich in Go an Googles UUID-Implementierung anzulehnen und statt Strings eine Parse-Funktion sowie ein internes Byte-Array zu verwenden.
  • Die Designentscheidungen des Identifikators wurden dafür gelobt, einen guten Ausgleich zwischen verschiedenen Trade-offs zu schaffen.
  • Ein anderer Kommentator teilte seinen eigenen Ansatz zur Erzeugung eindeutiger Identifikatoren: Base32 ohne Vokale, ergänzt um eine Prüfsumme.
  • Crockford-Encoding wurde kritisiert; als effektiveres und kompakteres Encoding wurde Base58 vorgeschlagen.
  • Ein Link zu Crockfords Base-32-System wurde geteilt; dabei wurde Verwirrung darüber geäußert, dass der Buchstabe U wegen „versehentlicher Obszönität“ ausgeschlossen wurde.
  • Ein Kommentator schilderte die Verwendung von „tagged IDs“ in einem ORM und bedauerte, keinen Unterstrich als Trennzeichen für Copy-and-Paste verwendet zu haben.
  • Die Bedeutung von Details bei der Implementierung von Identifikatoren wurde hervorgehoben.
  • Es wurde der Wunsch geäußert, dass UUIDv7 zum Standard wird und von Bibliotheken und Datenbanken standardmäßig unterstützt wird.
  • Die Vor- und Nachteile von UUIDv4 für Datenbanken wurden diskutiert; in Anwendungen mit verteilten Datenbanken wird UUIDv4 bevorzugt.
  • Die Nützlichkeit, die gesamte ID per Doppelklick auswählen zu können, wurde betont.
  • ksuid wurde als alternativer ID-Generator empfohlen, der einen größeren Schlüsselraum und sortierbare Zeitstempel bietet.
  • ksuid wurde als bester universeller ID-Generator gelobt, da es für die meisten Sprachen Bibliotheken gibt; UUID v1-7 wurden dagegen als verschwenderisch angesehen.