Você resolve dar carona para um colega do trabalho, no caminho a conversa começa a fluir
e você não percebe o caminho que está fazendo. Como você está acostumado
a dirigir, você consegue dirigir e segue conversando, porém, nesse momento você entrará num estado chamado de piloto automático.
Seu cérebro irá induzi-lo a fazer um caminho que você já conhece e que está acostumado, um caminho que você conhece muito bem.
Mas qual o problema de entrar nesse modo piloto automático ?
- Você não vai fazer o melhor caminho até a casa dele, provável que terá que dar várias voltas.
- Muito provável que erre o caminho e tenha que voltar algumas ruas.
- Pegue alguns semáforos à mais, pare em lugares que não precisaria se tivesse feito o melhor caminho
E por que entramos nesse modo ?
Porque você não PAROU, não PENSOU no que ia fazer, não pensou ONDE queria chegar, COMO faria pra chegar e nem QUAL rota seria a mais ideal para chegar no destino.
Tá, mas o que isso tem a ver com a maneira que eu desenvolvo meus programas ou na maneira que executo meu trabalho no dia à dia ? Tudo!!
Somos tentados ao longo do dia a ligar esse modo "piloto automático", afinal de contas, assim como quando dirigimos, estamos acostumados a fazer nosso trabalho, muitas tarefas já são velhas conhecidas pelo nosso cérebro.
Mas qual o problema disso ?
O problema está na evolução do nosso conhecimento, na assimilação de novas habilidades, no aprendizado de algo novo, na concentração e na qualidade do nosso trabalho.
Onde trabalho usamos o Banco de Dados SQL Server se você é desenvolvedor já deve ter feito um select na vida.
Imagine que você se depare com a seguinte situação:
Preciso desativar os clientes que não fizeram nenhuma compra nos últimos seis meses.
No modo piloto automático faríamos de cara :
update Cliente set status = 'Inativo' where DataUltimaCompra < '2017-09-02'
Há uma grande chance de ligar o modo piloto automático para executar essa tarefa, pois se trata de uma tarefa simples e corriqueira. Sem pensar muito vamos lá e escrevemos o código.
Mas o que há de errado em sair escrevendo o código ?
- Você não tem certeza se a cláusula
where
que você usou noupdate
irá realmente alterar os registros que você espera, fazendo com que você talvez altere campos que não gostaria; - Você pode estar alterando um campo errado ou o campo de uma tabela errada.
- Você pode alterar um registro de em um banco errado. Imagina se essa alteração é de um cliente X e vai para o cliente Y...Ferrou! Espero que tenha os backups em dia!
Mas então, como devemos encarar essa tarefa? Como desligar o modo piloto automático e por o cérebro para funcionar ?
Tenha em mente O QUE deseja fazer.
- PENSE ANTES de começar a digitar, exercite o seu cérebro a imaginar a operação.
- PENSE no resultado esperado. Qual o melhor caminho para chegar nele ?
- IMAGINE o comando na sua mente.
Depois que você souber o que você quer:
- Certifique-se que está no ambiente correto;
- No servidor correto;
- Banco do cliente correto;
- Os campos são esses mesmos ?
Faça a leitura na sua mente do comando que irá executar:
ALTERAR a TABELA de cliente ATUALIZANDO o campo STATUS com valor de 'INATIVO' QUANDO o Campo Data de última compra for anterior a 02-09-2017
Rode um select antes para confirmar se irá alterar os clientes esperados.
SELECT * from cliente Where DataUltimaCompra < '2017-09-02'
Tem certeza que são esses registros que quer alterar? Então comece a escrever o UPDATE.
UPDATE cliente SET status = 'Inativo' where DataUltimaCompra < '2017-09-02'
Legal, mas qual a vantagem de seguir essa linha de raciocínio ?
- Com isso você evita alterar registros que você não queria, pois rodou um select antes para ter certeza se o where estava correto.
- Diminui a chance de erro na escrita do comando, pois você pensou o que queria e só depois começou a escrever.
- Reduz o estresse de ter que ficar apagando, movendo o cursor pra cá, pra lá... Faz uma vez só e pronto.
Percebo que os que estão começando as vezes sentem medo de executar certas tarefas.
Não é preciso ter medo, é preciso PENSAR!
Para casos mais complexos ainda poderia adicionar uma camada extra de segurança, abrir uma transação para garantir o resultado esperado.
begin tran cliente
UPDATE cliente SET status = 'Inativo' where DataUltimaCompra < '2017-09-02'
se estiver ok:
commit tran cliente
senão:
rollback tran cliente
As vezes para tarefas mais simples ligamos o piloto automático, assim como o caminho que fazemos pra casa.
Mas tenha isso em mente quando for fazer qualquer tarefa, antes de mais nada:
- PLANEJE!
- PENSE!
- AVALIE O MELHOR CAMINHO!
Bom, Espero que de alguma forma isso possa ajudar a você no seu dia à dia, ou no trabalho.
Não tenha preguiça de pensar, tenha o controle do seu Cérebro! Pense antes de agir!
Meu nome é Renato Silvestre, sou Desenvolvedor Front-end e Back-end na Novalis Tecnologia, Freelancer nas horas vagas e Biker nos deslocamentos diários.
Valeu! Bem vindo ao Steemit! Mando um salve aqui de São Paulo/SP. Uma dica, para posts em português o pessoal do @camoes e @lusofonia recomenda usar a tag #pt. Sucesso e boa sorte mais uma vez!!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Obrigado amigo! um salve ai para SP.
Valeu pela dica!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations @silvestrer! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Do not miss the last post from @steemitboard:
Vote for @Steemitboard as a witness to get one more award and increased upvotes!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations @silvestrer! You received a personal award!
Click here to view your Board
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit