2 pontos por GN⁺ 2023-06-29 | 1 comentários | Compartilhar no WhatsApp
  • TypeIDs: uma extensão segura em relação a tipos, inspirada na API da Stripe e baseada em UUIDv7.
  • Os TypeIDs são compostos por um prefixo de tipo, um separador de sublinhado e um UUIDv7 de 128 bits codificado em base32 com 26 caracteres.
  • Os TypeIDs oferecem vantagens como segurança de tipos, compatibilidade com UUID, ordenação por K e codificação cuidadosamente projetada.
  • Os TypeIDs são compatíveis com o futuro padrão UUIDv7 e podem ser usados como chave primária em bancos de dados com boa localidade.
  • Os TypeIDs foram implementados em Go e SQL, e implementações em Python, Rust e TypeScript estarão disponíveis em breve.
  • Este artigo menciona uma ferramenta de linha de comando para gerar, decodificar e codificar TypeIDs.
  • Este artigo também menciona trabalhos relacionados ao UUIDv7 e a alternativas ao UUIDv7, como xid, ulid e ksuid.

1 comentários

 
GN⁺ 2023-06-29
Comentário do Hacker News
  • Foi sugerido bloquear e documentar as strings de prefixo, permitindo um único delimitador para tipos compostos.
  • A implementação do identificador em Go carece de testes, e testes unitários são necessários.
  • Outra proposta é alinhá-lo, em Go, à implementação de UUID do Google, usando uma função de parsing e um array interno de bytes em vez de strings.
  • As decisões de design do identificador foram elogiadas por atingirem um bom equilíbrio entre os trade-offs.
  • Outro comentarista compartilha sua própria abordagem para gerar identificadores únicos, usando base 32 sem vogais e adicionando um checksum.
  • Eles criticam a codificação de Crockford e sugerem base 58 como uma codificação mais eficaz e concisa.
  • Foi compartilhado um link para o sistema base-32 de Crockford, com confusão pelo fato de a letra "U" ter sido excluída por causa de "obscenidade acidental".
  • Um comentarista compartilha o uso de "IDs com tag" em ORM e lamenta não ter usado sublinhado como delimitador para facilitar copiar e colar.
  • A importância dos detalhes em implementações de identificadores foi enfatizada.
  • Foi mencionada a vontade de que o UUIDv7 se torne padrão e que bibliotecas e bancos de dados o suportem por padrão.
  • Os prós e contras do UUIDv4 para bancos de dados foram discutidos, e UUIDv4 é preferido em aplicações de bancos de dados distribuídos.
  • Foi destacada a utilidade de conseguir selecionar o ID inteiro com um clique duplo.
  • Foi recomendado o ksuid, um gerador de IDs alternativo que oferece um espaço de chaves maior e timestamps ordenáveis.
  • O ksuid foi elogiado como o melhor gerador de IDs de uso geral, com bibliotecas na maioria das linguagens, enquanto UUID v1-7 é considerado desperdício.