Desligue o piloto automático

in #produtividade7 years ago (edited)

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 ?

  1. Você não vai fazer o melhor caminho até a casa dele, provável que terá que dar várias voltas.
  2. Muito provável que erre o caminho e tenha que voltar algumas ruas.
  3. 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 ?

  1. Você não tem certeza se a cláusula where que você usou no update irá realmente alterar os registros que você espera, fazendo com que você talvez altere campos que não gostaria;
  2. Você pode estar alterando um campo errado ou o campo de uma tabela errada.
  3. 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 ?

  1. Com isso você evita alterar registros que você não queria, pois rodou um select antes para ter certeza se o where estava correto.
  2. Diminui a chance de erro na escrita do comando, pois você pensou o que queria e só depois começou a escrever.
  3. 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.

A gente se vê! forte Abraço!

Sort:  

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!!

Obrigado amigo! um salve ai para SP.
Valeu pela dica!

Congratulations @silvestrer! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

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:

SteemitBoard Ranking update - A better rich list comparator
Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Congratulations @silvestrer! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 1 year!

Click here to view your Board

Support SteemitBoard's project! Vote for its witness and get one more award!