-
Notifications
You must be signed in to change notification settings - Fork 395
028. Removendo "password" do sistema (e testes salvando a vida)
Nesse PR eu removo as validações e campos sobre a senha e gostaria de destacar duas coisas:
Ter testes automatizados acelera muito refatoração de código e dá muita segurança fazer movimentos bruscos com as features. Foi uma experiência muito gostosa colocar os testes sobre user
em modo watch
e ir removendo os códigos que implementavam os campos no banco de dados, as validações obrigatórias no model, inserções na base e ver a expectativa nos testes quebrando, para em seguida ajustar o que precisava ajustar primeiro no model, e depois ajustar as expectativas nos testes. Claro que nada disso dá segurança 100%, mas deu uma segurança infinitamente maior e fez o processo ser infinitamente mais rápido se não houvesse nenhuma cobertura.
Esse PR que citei acima, assim como outros, quebram algumas boas práticas que vão desde trabalho em conjunto até boas práticas técnicas, como por exemplo, alterar uma migration. Optei por quebrar isso, pois a parte do projeto que estamos mexendo agora não está em produção e eu prefiro apenas nesse estágio de projeto deixar a migration do User o mais limpa possível e sem criar novas migrations a cada alteração e que seria a boa prática, mas na minha visão com o saldo negativo para o atual contexto. No mundo real, do jeito que o projeto está, sinceramente não consigo ver nenhum saldo positivo se respeitar "a boa prática". Mas claro que tudo isso muda quando deploys reais acontecerem, pessoas dependerem dos serviços e pessoas estiverem desenvolvendo o projeto de forma distribuída.