Closed rwietter closed 3 months ago
Name | Link |
---|---|
Latest commit | 0ca9c336ff692ea067b1c7195dc26cb110fcf6c1 |
Latest deploy log | https://app.netlify.com/sites/diciotech/deploys/654d201131f5db0009cdce16 |
Deploy Preview | https://deploy-preview-136--diciotech.netlify.app |
Preview on mobile | Toggle QR Code...Use your smartphone camera to open QR code link. |
To edit notification comments on pull requests, go to your Netlify site configuration.
Descrição
Fixes #100
Esse PR resolve o problema de colisão de IDs, onde se utiliza o título do card como ID, e quando há dois cards com o mesmo título, o ID é duplicado, causando problemas para favoritar cards.
Esse PR adiciona o algoritmo djb2 (http://www.cse.yorku.ca/~oz/hash.html) para calcular o hash de uma string, e assim, evitar que IDs sejam duplicados. Embora colisões de hash sejam possíveis, a probabilidade de colisão é baixa.
Ele recebe a descrição e título do card como parâmetro, limita a string a 32 caracteres, para não criar um loop O(n) caso a descrição seja muito grande. Então itera sobre cada caractere da string, e faz uma operação utilizando o operador left-shift somado com o código ASCII do caractere. No final, converte o número para base 36, e retorna o ID. Esse ID é sempre o mesmo para a mesma string, e diferente para strings diferentes.
Também já trabalha com o uso de UUID gerado quando usado a CLI, proposto no pr #112.
Tipo de mudança
Checklist:
Screenshots
Referências: