Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
No desenvolvimento com Spring Boot, muitas vezes encontramos cenários onde precisamos garantir que certas combinações de configurações não gerem estados inválidos. Como no caso de uma aplicação que pode chamar serviços legados ou novas APIs, e o controle de qual deles será ativado.
A solução mais prática é criar uma validação customizada na camada de configuração, onde podemos verificar se pelo menos uma das opções está habilitada e evitar chamadas simultâneas ou nenhuma delas. A decisão fica mais saudável quando o time consegue medir o impacto depois. Sem esse critério, a solução pode parecer simples no começo e cara no suporte.
Por exemplo, podemos criar uma classe que implemente a interface Validator, ou usar uma anotação de validação em uma classe de configuração. Assim, garantimos que, ao iniciar a aplicação, o estado das propriedades seja coerente. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco.
Esse tipo de controle evita problemas no runtime, onde chamadas indevidas podem gerar inconsistências ou custos extras. Você já usou alguma estratégia parecida pra garantir a consistência das configurações na sua aplicação? O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. A decisão fica mais saudável quando o time consegue medir o impacto depois.
Concordo com o esse comentário. Aqui no backend, eu prefiro sempre validar na hora do start, assim a gente evita chamadas erradas em runtime. Mas tem que tomar cuidado com a complexidade da validação.
ahahaha boa, mas cuidao pra não ficar muito acoplado na validação. Acho que uma validação na camada de negócio também ajuda a evitar esses erros na hora do deploy.
No meu time, a gente faz validações assim na inicialização, pra cuidar para que o sistema não vá pra um estado inválido. Acho que é uma medida que ajuda na estabilidade geral.
Interessante, mas qual o impacto na performance?