A intuição do desenvolvedor, o código legível e a neurociência: por que nos sentimos confortáveis com certos códigos?
(evan-moon.github.io)A discussão sobre 'código legível' costuma ser tratada como algo do campo do gosto pessoal ou dos costumes, mas, na verdade, há princípios da ciência cognitiva operando em sua base. Este texto decompõe a 'intuição' do desenvolvedor sob a ótica da neurociência e analisa a sensação abstrata de legibilidade a partir de uma estrutura lógica.
-
Intuição não é mágica, mas um refinado reconhecimento de padrões Quando desenvolvedores experientes sentem um "mau cheiro" no código "assim que batem o olho", isso não é apenas feeling. Trata-se de um processo em que o estriado ventral (Ventral Striatum) compara, em tempo real, inúmeros padrões de código aprendidos no passado com o código atual. Ou seja, a intuição não é lógica omitida, mas o resultado de um "processamento em alta velocidade" tão rápido que o processo lógico não chega a aparecer na superfície da consciência.
-
Os limites da memória de trabalho (Working Memory) e da carga cognitiva A memória de trabalho humana consegue processar apenas cerca de 3 a 5 unidades de informação (chunks) por vez. Código com baixa legibilidade esgota esse recurso limitado.
Saltos cognitivos desnecessários: código em que a declaração e a execução estão distantes demais, ou em que as relações de causa e efeito estão embaralhadas, força o cérebro a fazer "trocas de contexto" continuamente para manter o contexto atual.
Visibilidade psicológica: quando um código pode ser lido de relance, isso significa que o cérebro mapeou imediatamente esse código para um padrão (schema) que ele já conhece, sem precisar de um processo extra de interpretação.
- Projetando código com chunking O cérebro maximiza sua eficiência quando agrupa dados individuais e os reconhece como uma única unidade.
Funções e módulos bem projetados abstraem lógicas complexas em um único "chunk", ajudando quem lê a entender o contexto geral mesmo sem pensar nos detalhes de implementação.
Mas abstração em excesso faz justamente o contrário: obriga a olhar dentro do "chunk" para entender seu significado, gerando uma "ineficiência cognitiva" em que o custo de interpretação para o cérebro é duplicado.
- A lei de conservação de energia do cérebro e a consistência do código O cérebro é um órgão que consome mais de 20% da energia do corpo e, instintivamente, tenta reduzir esse gasto. Nomes inconsistentes e convenções irregulares quebram o "modelo preditivo" do cérebro e o fazem gastar energia desnecessariamente. Em contrapartida, código com regras claras permite que o cérebro leia em modo de "piloto automático", reduzindo a fadiga.
Conclusão: legibilidade é consideração pelo cérebro do colega No fim, um bom design de código é um design cognitivo que minimiza a energia que o cérebro de outros desenvolvedores gasta com reconhecimento de padrões. Melhorar a legibilidade não é apenas deixar o código mais bonito, mas o ato mais econômico de proteger os recursos cognitivos finitos de quem colabora com você.
1 comentários
Obrigado pelo ótimo texto.
Os exemplos de código fizeram bastante sentido para mim kkk