2 points par GN⁺ 2023-06-29 | 1 commentaires | Partager sur WhatsApp
  • TypeIDs : une extension typée, inspirée de l'API de Stripe, basée sur UUIDv7.
  • Les TypeIDs se composent d'un préfixe de type, d'un séparateur souligné et d'un UUIDv7 de 128 bits encodé en base32 sur 26 caractères.
  • Les TypeIDs offrent des avantages comme la sûreté de type, la compatibilité avec les UUID, la possibilité de tri en K et un encodage soigneusement conçu.
  • Les TypeIDs sont compatibles avec la future norme UUIDv7 et peuvent être utilisés comme clés primaires de base de données avec une bonne localité.
  • Les TypeIDs sont implémentés en Go et SQL, et des implémentations en Python, Rust et TypeScript seront bientôt disponibles.
  • Cet article mentionne un outil en ligne de commande permettant de générer, décoder et encoder des TypeIDs.
  • Cet article mentionne également des travaux liés à UUIDv7 et à des alternatives à UUIDv7 comme xid, ulid et ksuid.

1 commentaires

 
GN⁺ 2023-06-29
Commentaires sur Hacker News
  • Une proposition a été avancée pour verrouiller et documenter les chaînes de préfixe, tout en autorisant un seul délimiteur pour les types composites.
  • L’implémentation Go de l’identifiant manque de tests et nécessite des tests unitaires.
  • Une autre proposition consiste à s’aligner, en Go, sur l’implémentation UUID de Google en utilisant une fonction de parsing et un tableau d’octets interne plutôt qu’une chaîne.
  • Les choix de conception de l’identifiant ont été salués pour leur bon équilibre entre différents compromis.
  • Un autre commentateur a partagé sa propre approche de génération d’identifiants uniques, basée sur du base32 sans voyelles et l’ajout d’une somme de contrôle.
  • Il critique l’encodage Crockford et propose le base58 comme encodage plus efficace et plus concis.
  • Un lien vers le système base-32 de Crockford a été partagé, avec une remarque sur le fait que la lettre U en est exclue à cause d’une « obscénité accidentelle », ce qui a suscité de la confusion.
  • Un commentateur a partagé son usage des « tagged IDs » dans un ORM et a regretté de ne pas avoir utilisé le caractère souligné comme délimiteur pour le copier-coller.
  • L’importance des détails dans l’implémentation des identifiants a été soulignée.
  • Le souhait a été exprimé que UUIDv7 devienne le standard et soit pris en charge par défaut par les bibliothèques et les bases de données.
  • Les avantages et inconvénients de UUIDv4 pour les bases de données ont été discutés, avec une préférence pour UUIDv4 dans les applications de bases de données distribuées.
  • L’utilité de pouvoir sélectionner tout l’identifiant par un double-clic a été mise en avant.
  • ksuid a été recommandé comme générateur d’identifiants alternatif offrant un espace de clés plus grand et des horodatages triables.
  • ksuid a été salué comme le meilleur générateur d’identifiants polyvalent, avec des bibliothèques dans la plupart des langages, tandis que UUID v1-7 est jugé gaspilleur.