Desligue o piloto automático

in #produtividade6 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!

Coin Marketplace

STEEM 0.27
TRX 0.11
JST 0.031
BTC 67320.55
ETH 3709.85
USDT 1.00
SBD 3.78