Существует ли стандарт или альтернатива для более коротких UUID? - PullRequest
0 голосов
/ 06 апреля 2020

Стандарт UUID имеет несколько версий. Например, версия 4 основана на совершенно случайном вводе. Но он по-прежнему кодирует информацию о версии и использует только 125 бит из возможных 128 бит.

Но для их передачи по HTTP более эффективно кодировать их в BASE64. Для этого есть библиотеки (https://github.com/skorokithakis/shortuuid).

Но что мне интересно: существует ли альтернативный стандарт для более коротких ID-строк? Конечно, я мог бы сложить вместе случайные байты версии + n и закодировать их в BASE64, имея мою собственную работающую «схему коротких случайных идентификаторов», но мне интересно, есть ли какая-либо альтернатива, которую кто-то уже указал, прежде чем я сделаю свой собственный.

1 Ответ

1 голос
/ 16 апреля 2020

Не существует стандарта для чего-либо более короткого.

Многие люди задали один и тот же вопрос и все пришли к одному и тому же выводу: UUID излишни для своих специфических c требований. И они разработали свои собственные альтернативы, которые по сути сводятся к случайной строке некоторой длины (в зависимости от ожидаемого размера их набора данных) в более эффективной кодировке, такой как base64. Многие из них опубликовали библиотеки для работы с этими строками. Тем не менее, все они страдают от одних и тех же двух проблем:

  1. Они не могут обрабатывать произвольно большие наборы данных (причина того, что UUID такие большие)
  2. Они не стандартизированы, что означает, что существует нет реального взаимодействия.

Если ни одна из этих проблем не затрагивает вас, то не стесняйтесь выбирать любую из доступных схем или использовать свою собственную. Но подумайте о будущих расходах, если вы обнаружите, что ошибаетесь в своих требованиях, и оправдывает ли стоимость необходимости изменения какое-либо незначительное преимущество в пространстве или сложности, которое вы получаете, не используя проверенную универсальную систему с самого начала.

...