Regra de negócio ≠ invariante do mundo | guia prático
Ticket price positivo é regra de negócio? Não: preço negativo não existe no mundo. Como separar invariantes universais de regras do seu domínio de
Resposta direta
Chamar tudo de regra de negócio esconde o que é só sanidade do universo — modelege os dois de forma diferente. Eu não posso criar um evento no mesmo dia, vou colocar aqui na mesma data, tá? Por exemplo, eu tenho um evento no, sei lá, no estádio Maracanã, latitude e longitude e tal, às 18 horas de hoje.
O exemplo do preço do ticket
Porque como que um preço vai ser negativo? Não tem como o preço de alguma coisa ser negativo. Não é algo específico do meu negócio, entende?
Outra regra de negócio, que talvez fique mais claro pra vocês. Não posso criar um evento no mesmo dia latitude e longitude. Porque é algo específico da minha aplicação, ó.
Eu não posso criar um evento no mesmo dia, vou colocar aqui na mesma data, tá? Por exemplo, eu tenho um evento no, sei lá, no estádio Maracanã, latitude e longitude e tal, às 18 horas de hoje. Eu não posso criar um evento no Maracanã às 18 horas de hoje.
O que é regra de negócio de verdade
Se vocês pegarem essa ideia, turma, diferença de regra de negócio, business rules validations e inputs validations, isso é muito importante, turma, Porque a gente. Vai dividir essas varidações entre diferentes camadas daqui a pouquinho. Então, turma, é muito importante você ter essa noção, tá?
Porque como que um preço vai ser negativo? Não tem como o preço de alguma coisa ser negativo. Não é algo específico do meu negócio, entende? Outra regra de negócio, que talvez fique mais claro pra vocês.
Não posso criar um evento no mesmo dia latitude e longitude. Porque é algo específico da minha aplicação, ó. Eu não posso criar um evento no mesmo dia, vou colocar aqui na mesma data, tá? Por exemplo, eu tenho um evento no, sei lá, no estádio Maracanã, latitude e longitude e tal, às 18 horas de hoje.
Leitura útil
Chamar tudo de regra de negócio esconde o que é só sanidade do universo — modelege os dois de forma diferente. Use o trecho acima como restrição, não como citação ornamental.
Por que a distinção importa no código
Porque como que um preço vai ser negativo? Não tem como o preço de alguma coisa ser negativo. Não é algo específico do meu negócio, entende? Outra regra de negócio, que talvez fique mais claro pra vocês.
Não posso criar um evento no mesmo dia latitude e longitude. Porque é algo específico da minha aplicação, ó. Eu não posso criar um evento no mesmo dia, vou colocar aqui na mesma data, tá? Por exemplo, eu tenho um evento no, sei lá, no estádio Maracanã, latitude e longitude e tal, às 18 horas de hoje.
Eu não posso criar um evento no Maracanã às 18 horas de hoje. Se vocês pegarem essa ideia, turma, diferença de regra de negócio, business rules validations e inputs validations, isso é muito importante, turma, Porque a gente. Vai dividir essas varidações entre diferentes camadas daqui a pouquinho. Então, turma, é muito importante você ter essa noção, tá?
Onde validar cada tipo de restrição
Porque como que um preço vai ser negativo? Não tem como o preço de alguma coisa ser negativo. Não é algo específico do meu negócio, entende? Outra regra de negócio, que talvez fique mais claro pra vocês.
Não posso criar um evento no mesmo dia latitude e longitude. Porque é algo específico da minha aplicação, ó. Eu não posso criar um evento no mesmo dia, vou colocar aqui na mesma data, tá? Por exemplo, eu tenho um evento no, sei lá, no estádio Maracanã, latitude e longitude e tal, às 18 horas de hoje.
Eu não posso criar um evento no Maracanã às 18 horas de hoje. Se vocês pegarem essa ideia, turma, diferença de regra de negócio, business rules validations e inputs validations, isso é muito importante, turma, Porque a gente. Vai dividir essas varidações entre diferentes camadas daqui a pouquinho. Então, turma, é muito importante você ter essa noção, tá?
Exercício com outros campos de evento
Porque como que um preço vai ser negativo? Não tem como o preço de alguma coisa ser negativo. Não é algo específico do meu negócio, entende? Outra regra de negócio, que talvez fique mais claro pra vocês.
Não posso criar um evento no mesmo dia latitude e longitude. Porque é algo específico da minha aplicação, ó. Eu não posso criar um evento no mesmo dia, vou colocar aqui na mesma data, tá? Por exemplo, eu tenho um evento no, sei lá, no estádio Maracanã, latitude e longitude e tal, às 18 horas de hoje.
Eu não posso criar um evento no Maracanã às 18 horas de hoje. Se vocês pegarem essa ideia, turma, diferença de regra de negócio, business rules validations e inputs validations, isso é muito importante, turma, Porque a gente. Vai dividir essas varidações entre diferentes camadas daqui a pouquinho. Então, turma, é muito importante você ter essa noção, tá?
Próximo passo
Escolha uma métrica (tempo, retries, conversão ou qualidade aceita) e rode 7 dias antes de escalar o padrão.