Front End

18 jun, 2018

Dados randômicos com o Chance.js

Publicidade

Se há uma tarefa que todo programador e programadora já passou — seja ele/ela de qualquer nível de conhecimento técnico —, foi escrever um programa (ou função) que gera dados aleatórios. O caso mais comum é gerar números randômicos, mas às vezes precisamos lidar com strings e outros tipos de dados também.

Isso fica ainda mais evidente quando precisamos escrever testes. Como bolar falsos para testar nossas aplicações? Se não utilizamos nenhuma biblioteca que nos auxilie, ficamos naquela árdua tarefa de criar funções que gerem esses valores pra nós.

Pensando nisso, o engenheiro de software Victor Quinn desenvolveu a biblioteca ChanceJS, projeto de código aberto que está disponível no GitHub sob a licença MIT e já possui mais de 3.400 estrelas e 266 forks no repositório. Em resumo, o ChanceJS é um gerador minimalista de strings, números, etc, aleatórios para ajudar a reduzir a monotonia, principalmente ao escrever testes automatizados ou em qualquer outro lugar em que a gente precise de algo aleatório.

Vamos ver como ela funciona.

Hora de randomizar tudo!

Como citado anteriormente, o objetivo da biblioteca é nos ajudar a diminuir a monotonia de escrever códigos que gerem dados aleatórios para as nossas aplicações. Sua utilização é extremamente simples e pode ser usado em diversas situações para uma infinidade de tipos de dados.

Há várias maneiras de utilizá-la nos nossos projetos. A opção mais fácil é trabalhar com ele diretamente no navegador, apenas inserindo sua dependência no header através do link oficial:

<script src="http://chancejs.com/chance.min.js"></script>

Caso queira utilizar através de outros meios, deixarei os links correspondentes à documentação para: Node, cli, bower e requirejs.

Feito isso, já conseguiremos brincar com a biblioteca. O ChanceJS é bem completo e oferece vários tipos de dados, como mostra a figura a seguir:

Podemos gerar vários tipos de dados com o ChanceJS

Notem que não consegui descrever todas as possibilidades porque se não ocuparia a página inteira, mas reparem na absurda quantidade de opções: desde o básico, como números e strings, até localizações e dados de pessoas completo.

Cada um deles aceitam propriedades de configurações diferentes, mas seu funcionamento básico é simplesmente o nome da propriedade que você quer gerar. Por exemplo:

chance.age() => 45 // idade
chance.word() => ‘bappada’ // palavra
chance.cpf() => ‘607.116.889-62’ // cpf
chance.animal() => ‘Cobra’ // animal
chance.name() => ‘Dafi Vatemi’ // nome completo
chance.color() => ‘#d67118’ // cor
chance.ip() => ‘153.208.102.234’ // ip

Bem bacana, não é mesmo? Notem que não há nenhum segredo; basta chamar a variável chance com o nome do atributo que você quer randomizar, mas como eu comentei: cada um deles aceita um tipo de configurações diferente, por isso é importantíssimo ver a documentação oficial.

Mas só para sanar a curiosidade, vamos dar uma olhada em alguns casos usando configurações.

Configurando a randomização

Cada função aceita um objeto de configuração que limita os valores que serão gerados. Por exemplo, para gerar um número aleatório dentro de um intervalo de valores, utilizamos as propriedades max e min (inclusive):

chance.integer({ min: -20, max: 20 })
=> -7

Agora, se quisermos limitar o sorteio de um animal, por exemplo, podemos utilizar a propriedade type com os valores: ocean, desert, grassland, forest, farm, pet e zoo. Vejam só:

chance.animal({type: 'zoo'});
=> 'Lion'

Para um último exemplo, conseguimos gerar vários tipos de strings aleatórias configurando o seu tamanho e as letras que poderão ser usadas nelas com as propriedades length e pool, respectivamente.

 chance.string({ length: 5, pool: 'abcde' });
  => 'cbbdc'

Se achou curioso, não esqueça de dar uma olhada na documentação. O próprio site te permite testar os valores no console do navegador, o que facilita bastante a nossa vida.

Basta acessar o Developer tools do seu navegador!

Conclusão

Criar funções no nosso código que gera valores aleatórios não é nenhum bicho de sete cabeças, mas sem dúvidas é um processo bem chato. Há vários utilitários e APIs por aí que nos ajudam a fazer isso, mas sem dúvidas o Chance.js é o mais fácil que encontrei nos últimos tempos. Se você precisa de dados aleatórios na sua aplicação, dê uma CHANCE(js).

Referências