Учитывая тот факт, что я использую ранее существующее решение для комментариев / обсуждений, которое использует уникальную строку в качестве идентификатора потока, мне нужно создать слаг для пользователя из произвольного объекта для идентификатора потока, который соответствует следующим ограничениям :
- Short
- "Довольно"
- удобочитаемый
- Не раскрывает внутренние органы
- Уникальный для экземпляра объекта
Я думал об использовании {FQCN}-{id}
, но это нарушает # 4 и, когда кодируется в сети, # 2. Я также рассматривал хэш md5 того же самого, но это нарушает # 3 (и потенциально # 1, в зависимости от определения «short»).
Так как у объектов нет стандартизированного API (например, нет гарантии, что у них у всех будет метод getTitle()
, например), я в недоумении, как придумать слаг, который соответствует этим ограничениям. Как бы вы пошли на его создание, и если это невозможно, какой формат вы бы использовали, который нарушает как можно меньше ограничений?