UUID é um dos identificadores universais mais comumente usados no desenvolvimento de software.
No entanto, nos últimos anos, outros padrões desafiaram a sua existência. Entre eles, o NanoID é um dos principais concorrentes do UUID.
Hoje irei lhe apresentar os recursos do NanoID, seus destaques e limitações para nos dar uma ideia melhor de porque e quando usá-lo.
Gerar um UUID ou NanoID é muito simples, ambos têm pacotes em praticamente todas as linguagens e frameworks.
A principal diferença entre os dois é simples, tudo se resume ao alfabeto usado para as calcular o resultado.
Ao contrário dos 36 caracteres do alfabeto UUID, o NanoID possui apenas 21 caracteres, o NanoID permite que os desenvolvedores usem alfabetos personalizados e possamos alterar o tamanho do texto/id.
Como o NanoID usa um alfabeto maior que o UUID, o resultado obtido é mais curto e pode ser usado para a mesma finalidade que o UUID mais longo.
O NanoID tem apenas 108 bytes de tamanho, 4,5 vezes menor em comparação com o UUID, em tamanho e não possui dependências de terceiros.
Esse tamanho afeta diretamente o tamanho dos dados. Por exemplo, objetos que usam NanoID são pequenos e compactos, obtendo assim mais performance ao ser usados para transmissão e armazenamento de dados. À medida que a aplicação cresce, esses números se tornam cada vez mais relevantes.
NanoID é 60% mais rápido que UUID.
O fato de o NanoID não ser facilmente legível por humanos é visto como uma desvantagem por muitos desenvolvedores, pois dificulta a depuração. No entanto, em comparação com os UUIDs, os NanoIDs são mais curtos e um pouco mais legíveis.
Além disso, o NanoID também pode ser chave primária de uma tabela, porem haverá problemas ao usar a mesma coluna como um índice clusterizado. Isso ocorre porque o NanoID não é contínuo.
NanoID está gradualmente se tornando um de ID exclusivo que possivelmente sucederá o UUID, com a maioria dos desenvolvedores preferindo-o como alternativa aos UUIDs.
O Nano ID é utilizado em várias tipos de aplicações como:
- Aplicações de Banco de Dados: Criação de IDs únicos para registros.
- Autenticação e Segurança: Geração de tokens aleatórios para autenticação de usuários.
- Encurtamento de URLs: Criação de URLs curtas e únicas para recursos.
- Gerenciamento de Arquivos: Geração de nomes únicos para arquivos ou diretórios.
- Gerenciamento de Identidades: Atribuição de IDs únicos para usuários, dispositivos ou entidades.
Esses são apenas alguns exemplos, mas a flexibilidade do Nano ID permite muitas outras possibilidades dependendo das necessidades específicas.
Caso queira controlar ou otimizar a contagem de caracteres dos seus IDs para seu projeto, recomendo verificar a ferramenta Nano ID Collision Calculator. Usando essa ferramenta, você pode facilmente determinar a probabilidade de pelo menos uma colisão.
Para gerar alguns Nano IDs rapidamente, você pode usar o https://devgyver.tech/nanoid
Seja o primeiro a comentar