Programador Sonolento

Apenas você tem 100% do contexto do código quando escreveu ele. O próximo desenvolvedor que tiver contato com ele, não terá.

Esse próximo desenvolvedor pode ser outro dev, ou você mesmo, em outro dia.

Quando você tem 100% do contexto do código que está escrevendo, você acaba criando exceções de boas práticas que você deveria seguir, porque sua memória de curto prazo diz que o próximo dev que ter contato com o código irá conseguir entender.

Digamos que existam 5 níveis de cognição na hora de codar/analisar e ler um código.

Sendo nível 1 um código muito explicado, muito verboso, que leva mais tempo, porém de fácil entendimento.

E nível 5 sendo um código conciso, as vezes mais bonito de se ver, mais rápido de se escrever, porém pouco explicativo, necessitando mais atenção, tempo e navegação pelo código para entender o contexto.

Escrevendo um código, vamos criando pedaços de códigos de variados níveis, desde 1 até o 5.

Você vai escrever código de nível 2, porque tal motivo, nível 3 por outro tal motivo, aí nível 1 porque a lógica é mais complexa, ai pula pra um nível 5 porque essa parte já é familiar para você...

Minha dica, padronize a sua escrita de código para um mesmo nível de cognição, e de preferência um nível baixo. Nível 2 seria minha escolha.

A ideia é escrever seu código para um programador que precisa corrigir algo no seu código, porém já esta tarde e ele está com sono.

Quando você padroniza o nível de cognição da escrita do código, facilita para quem vai ler depois, porque essa pessoa já sabe o que ela pode esperar da linha de baixo, ela não fica variando entre entender facilmente, e quebrar a cabeça, entender facilmente e quebrar a cabeça.

Isso ajuda na fluidez na hora de ler seu código porque todo bloco de código tem o mesmo nível de complexidade, e com fluidez ela chega mais rápido no estado de entender o contexto geral do código.

Um exemplo, você constantemente vai se deparar com uma variável que você bate o olho e logo de cara, já entende para o que ela serve. E outra logo abaixo que você... "Hmm... O que isso daqui fa- Ahh! Entendi."

Isso acontece muito em escala maiores. Não crie exceções, crie variáveis com nomes bem descritivos, crie hooks, crie abstrações, escreva mais código se necessário, seja repetitivo de precisar, seja redundante se preciso.

Um arquivo com todo o código com nível 2 de cognição e do nada um bloco de código nível 4? Abstraia em uma função de nível 2 e chame ela no arquivo, padronize.

Faça com que você consiga apenas bater o olho e entender do que aquele código se trata, sem ter que mergulhar a fundo para entender os detalhes da implementação, para conseguir entender o contexto.

Entre no modo sonolento, se proponha a não tentar entender seu código a fundo, e refatore ele a partir daí.

Entre no modo sonolento e crie um código melhor.

O que você acha?

Desenvolver no modo sonolento poderá te trazer consequências graves para quando você estiver agindo no modo acordadorápido.

Pra mim o segredo para você conseguir criar códigos refatoráveis, concisos, intuitivos e com boa qualidade é o que você disse no início da sua publicação:

Apenas você tem 100% do contexto do código quando escreveu ele. O próximo desenvolvedor que tiver contato com ele, não terá. Esse próximo desenvolvedor pode ser outro dev, ou você mesmo, em outro dia.

Quando você está desenvolvendo, você praticamente está escrevendo linhas para seu eu do futuro.

É aquela velha máxima, não faça para os outros o que você não quer que seja feito pra você.

Pense que seu eu do futuro (e outros também) irão te agradecer pelo cuidado que você teve com seu código.

Porém, muito cuidado! O excesso também poderá prejudicar seu eu do futuro, te impedindo de aprender porque você está travado em ser caprichoso demais em uma linha de código e consequemente te impeindo de crescer com o que de fato importa.

Lembre-se: O bem feito é melhor do que perfeito. Seu eu do futuro está agora olhando pra você e te agradecendo ou se lamentando pelas escolhas que você fez agora.