Vous avez surement déjà entendu l'acronyme UUID, mais savez-vous vraiment ce que c'est et quand vous en servir ?
UUID veut dire Universally unique identifier dans la langue de Shakespeare. On pourra dire Identifiant unique universel si l’on veut rester franco-français 🤫
Un UUID est une chaine de caractère de cette forme
xxxxxxxx-xxxx-Yxxx-Zxxx-xxxxxxxxxxxx
Les 16 octets d'un UUID sont représentés comme 32 chiffres hexadécimaux en minuscules séparés par 4 tirets. Sa version est indiqué par le caractère X et sa variante par le caractère Z dans l’exemple ci-dessus.
On s’en sert pour avoir un identifiant unique, non prédictible (à la différence d’un id avec auto incrémentation d’une base de données par exemple)
Généralement, lorsque vous avez quelques chose qui est versionné, le numéro de version le plus élevé est le plus récent, et généralement le meilleur.
Et bien, vous savez quoi ? Pour les UUID, ce n’est pas (tout à fait) le cas 🤡
Il existe 8 versions d'UUID (de v1 à v8) qui sont différentes et toutes définies selon des normes.
Bon, vous avez 8 versions différentes à disposition, alors laquelle utiliser ?
Il existe quelques cas d'utilisation courants qui indiquent la version à utiliser.
Vous aurez généralement le choix entre deux d'entre elles : la v4 et la v7. Dans une moindre mesure, il pourra vous arriver de choisir la v5 ou la v8.
Utilisez la v4 lorsque vous souhaitez simplement un identifiant aléatoire. Valeur sure, qui comble une bonne partie des use cases.
Utilisez v7 si vous utilisez l'identifiant dans un contexte où vous souhaitez pouvoir le trier. Par exemple, envisagez d'utiliser v7 si vous utilisez des UUID comme clés de base de données.
Les options v5 ou v8 sont utilisées si vous souhaitez que l'UUID contienne vos propres données, mais en général, à moins de travailler pour une très grosse société ou que vous vouliez générer des UUID à votre sauce, peu de chance que vous vous en serviez un jour.
Selon le RFC, la v7 améliore la v1 et la v6 et devrait être utilisée à la place ces dernières dans la mesure du possible. Donc, en gros, à part pour du legacy, vous pouvez les oublier.
La v2 est réservée au cas défini dans la RFC. C'est un cas particulier, aucun problème pour l'effacer de votre mémoire.
La v3 est remplacée par la v5, qui utilise un hachage plus puissant et sans collision.
Voilà, vous en savez un peu plus sur les UUID à présent.
Vous savez à présent pourquoi vous copier-collez le code suivant dans vos projets 😇 :
import { v4 as uuidv4 } from 'uuid';
Pour les billets, c’est tout simplement que les efforts sont mis ailleurs en ce moment mais j’ai bien l’intention de continuer à alimenter ce blog 😊