Почему reddit использует base36 для идентификатора статьи? - PullRequest
3 голосов
/ 11 ноября 2009

Почему reddit использует base36 для идентификатора статьи?

Например:

a2xki

Ответы [ 4 ]

16 голосов
/ 11 ноября 2009

Возможно, потому что:

База 36 - это ... самая компактная буквенно-цифровая цифра без учета регистра система с использованием символов ASCII

При использовании только буквенно-цифровых символов и без учета регистра, исключаются два типа ошибок: ввод в неправильном регистре (или проблемы с файловой системой и путаница из-за чувствительности к регистру) и специальные символы в URL. Если в URL-адресе есть символы, которые зарезервированы в соответствии с RFC 2396 , эти символы должны быть экранированы (что приведет к удлинению и уменьшению URL-адреса). Но в различных ошибках уровня приложения также используются нежелательные символы , такие как ' и !, нежелательные (некоторые примеры: 1 2 3 ). * * тысяча двадцать-одна

Даже с учетом буквенно-цифровых и регистрозависимых ограничений база 36, очевидно, обеспечивает гораздо более компактное представление, чем десятичное, что позволяет использовать короткие и (возможно) чистые идентификаторы. Идентификатор этой статьи будет 36351705 в десятичном виде; в базе 36 символов на 3 меньше.

5 голосов
/ 11 ноября 2009

Второй просто какой-то парень (вы можете представить с [a-z0-9]), также,

  1. Эта схема должна давать очень короткие идентификаторы.
  2. Легко использовать эти идентификаторы для создания на структуре диска.
  3. Легко конвертировать в числовые идентификаторы для поиска в базе данных и т. Д.
2 голосов
/ 11 ноября 2009

Легко передать другим по электронной почте, в устной форме, в окнах чата и т. Д. URL, безусловно, будет содержать больше символов, но это не так сложно, особенно если вам нужно прочитать ссылку по телефону, в видео, на Телевизор или даже печатать его из печатной статьи или газеты.

Это очень дружелюбный человек.

1 голос
/ 11 ноября 2009

Поскольку вы можете представить его с помощью [a-z0-9], скорее всего.

...