Стендап Сьогодні 📢 Канал в Telegram @stendap_sogodni
🤖🚫 AI-free content. This post is 100% written by a human, as is everything on my blog. Enjoy!25.11.2023
Нові стандарти UUID: v6, v7, v8
Дізнався, що з UUID, про які я кілька разів писав, є нові розробки, а саме, чернетка RFC, яка додає ще три стандарти, які виправляють, в тому числі й ті проблеми, про які я згадував.
-
UUIDv6 залишає розташування полів з UUIDv1, але виправляє дві головні проблеми: UUIDv6 можливо сортувати за датою та замість використання MAC адреси, ідентифікатор вузла обирається випадково.
-
UUIDv7 позбувається решти незручних та застарілих домовленостей. В якості таймстемпу береться звичайний час Unix (бо в UUIDv1 був свій, особливий стандарт кодування часу.) А решта бітів заповнюється випадковими бітами.
-
UUIDv8 - це абстракція, яка дозволяє нам вигадати будь-який метод побудови ідентифікатора — він тільки мусить мати правильні біти версії.
Хоч стандарт ще не затверджено, але генератори вже існують для Ruby, Golang, та й взагалі, побудувати та прочитати UUIDv7 набагато легше. Їх можна почати використовувати вже зараз, та якщо вже потрібно мати UUID, то я б радив саме цю версію.
Додатково: чому UUIDv1 не можна сортувати хронологічно, хоч вони й містять дату? А тому, що дата в UUIDv1 має порядок “менший біт на початку”.