Tipos de Dados
Tipo de dado não é detalhe. Tipo de dado é significado.
Se você escolhe o tipo errado, o software até roda. Mas roda torto.
É aqui que começam vários bugs clássicos:
- preço salvo com precisão ruim
- idade tratada como texto
- status confuso
- comparação quebrada
- validação inconsistente
O que é tipo de dado, na prática
Seção intitulada “O que é tipo de dado, na prática”Um tipo de dado define:
- quais valores fazem sentido
- quais operações são válidas
- como o dado é interpretado
- que tipo de erro pode aparecer
Exemplo direto:
42pode ser inteiro"42"é texto42.0pode ser decimaltrueé estado lógico
Parece simples. Mas muita regra de negócio quebra justamente porque o sistema mistura essas coisas.
O que você deve dominar primeiro
Seção intitulada “O que você deve dominar primeiro”Inteiro
Seção intitulada “Inteiro”Use quando não existe fração.
Exemplos:
- quantidade de usuários
- número de tentativas
- idade
- posição no ranking
Decimal
Seção intitulada “Decimal”Use quando existe fração.
Exemplos:
- peso
- temperatura
- distância
Mas cuidado: nem todo decimal serve para dinheiro.
Use para informação textual.
Exemplos:
- nome
- CPF mascarado
- identificador alfanumérico
Booleano
Seção intitulada “Booleano”Use para estados binários.
Exemplos:
- ativo ou inativo
- pago ou não pago
- válido ou inválido
Null / ausência de valor
Seção intitulada “Null / ausência de valor”Você também precisa entender quando o sistema está dizendo:
- “não sei ainda”
- “não foi informado”
- “não existe”
Muita gente trata ausência de valor como string vazia, zero ou false. Aí começa o caos.
Erro clássico: achar que “parece número” já basta
Seção intitulada “Erro clássico: achar que “parece número” já basta”Olha isso:
"10"não é10"true"não étrue"3.14"não é3.14
Se você recebe dado de formulário, API ou banco, quase sempre vai precisar validar e converter.
Regra prática:
valida primeiro, converte depois
Dinheiro merece atenção especial
Seção intitulada “Dinheiro merece atenção especial”Se você guardar preço como tipo decimal qualquer e sair fazendo conta sem cuidado, pode criar erro de precisão.
Em sistema real, o comum é usar:
- tipo decimal apropriado da linguagem
- inteiro em centavos
Exemplo mental:
R$ 10,99pode virar1099centavos
Isso evita várias surpresas em cálculo financeiro.
Data e hora também são armadilha
Seção intitulada “Data e hora também são armadilha”Data não é string “bonitinha”.
Se você salva tudo como texto sem padrão, depois sofre para:
- ordenar
- filtrar
- comparar
- lidar com timezone
Use tipo de data quando existir. Se precisar serializar, use formato consistente.
ID não é número só porque tem dígito
Seção intitulada “ID não é número só porque tem dígito”Isso aqui é importante:
- telefone não é número de cálculo
- CPF não é número matemático
- CEP não é número matemático
- código de pedido pode parecer número, mas é identificador
Se você não vai somar, dividir ou comparar como quantidade, talvez aquilo nem devesse ser tratado como número.
Como escolher o tipo certo
Seção intitulada “Como escolher o tipo certo”Antes de criar variável, campo ou coluna, responde:
- Esse dado representa quantidade, estado, texto, data ou identidade?
- Eu vou calcular com ele ou só armazenar e exibir?
- Existe possibilidade de ausência?
- Precisão importa?
- Comparação exata importa?
Se você responde isso, a escolha melhora muito.
Exemplos práticos de modelagem
Seção intitulada “Exemplos práticos de modelagem”Usuário
Seção intitulada “Usuário”nome: stringidade: inteiroemail: stringativo: booleano
idPedido: string ou inteiro, dependendo do domíniovalorTotal: decimal apropriado ou centavospago: booleanocriadoEm: data/hora
Produto
Seção intitulada “Produto”sku: stringestoque: inteiropreco: decimal apropriado
Erros comuns de iniciante
Seção intitulada “Erros comuns de iniciante”- usar string para tudo
- comparar número com texto
- converter sem validar
- usar
0para significar “não informado” - usar
falsepara esconder ausência de valor - ignorar precisão em dinheiro
Sinais de que sua modelagem está ruim
Seção intitulada “Sinais de que sua modelagem está ruim”- você precisa converter o mesmo campo toda hora
- a regra de negócio está cheia de
ifestranho - o mesmo dado muda de formato em partes diferentes do sistema
- bugs aparecem em cadastro, filtro e ordenação
Exercícios que valem de verdade
Seção intitulada “Exercícios que valem de verdade”- Modele um cadastro de usuário com nome, idade, e-mail e ativo.
- Modele um pedido com valor, data e status de pagamento.
- Receba dados como texto e converta corretamente.
- Valide entradas inválidas sem quebrar a aplicação.
Checklist rápido
Seção intitulada “Checklist rápido”- Você sabe quando usar inteiro vs decimal?
- Você entende que ID nem sempre é número?
- Você trata ausência de valor com cuidado?
- Você sabe que dinheiro merece modelagem séria?
- Você valida antes de converter?
Se você fechar esses pontos, já sai muito na frente de quem programa “no improviso”.
Próximas ações
Seção intitulada “Próximas ações”- Vá para Estruturas de Dados
- Depois consolide com Lógica de Programação