La intuición del desarrollador, el código legible y la neurociencia: ¿por qué nos sentimos cómodos con cierto código?
(evan-moon.github.io)La discusión sobre el 'código legible' suele descartarse como algo del ámbito de las preferencias personales o las costumbres, pero en realidad detrás de eso operan principios de la ciencia cognitiva. Este artículo descompone la 'intuición' del desarrollador desde una perspectiva neurocientífica y analiza la sensación abstracta de legibilidad como una estructura lógica.
-
La intuición no es magia, sino un sofisticado reconocimiento de patrones El hecho de que un desarrollador experimentado detecte un mal olor en el código 'apenas lo ve' no es una simple corazonada. Es el proceso mediante el cual el estriado ventral (Ventral Striatum) compara en tiempo real el código actual con innumerables patrones de código aprendidos en el pasado. Es decir, la intuición no implica que se haya omitido la lógica, sino que es el resultado de un 'cómputo de alta velocidad' tan rápido que el proceso lógico no aflora a la superficie de la conciencia.
-
Los límites de la memoria de trabajo (Working Memory) y la carga cognitiva La memoria de trabajo humana solo puede procesar al mismo tiempo entre 3 y 5 unidades de información (chunks). El código con baja legibilidad agota este recurso limitado.
Saltos cognitivos innecesarios: cuando la declaración y la ejecución están demasiado separadas, o las relaciones causales están enredadas, el cerebro se ve obligado a hacer 'cambios de contexto' de forma continua para mantener el contexto actual.
Visibilidad psicológica: que un código pueda leerse de un vistazo significa que el cerebro lo mapeó de inmediato a un patrón conocido (schema) sin necesidad de un proceso de interpretación adicional.
- Diseño de código aprovechando el chunking El cerebro maximiza su eficiencia cuando agrupa datos individuales y los reconoce como una sola unidad.
Las funciones y módulos bien diseñados abstraen una lógica compleja como un solo 'chunk', ayudando a quien lee a comprender el contexto general incluso sin pensar en la implementación detallada.
Pero una abstracción excesiva, por el contrario, hace que solo se pueda entender el significado al mirar dentro del 'chunk', lo que provoca una 'ineficiencia cognitiva' al duplicar el costo de interpretación del cerebro.
- La ley de conservación de energía del cerebro y la consistencia del código El cerebro es un órgano que consume más del 20% de la energía corporal e instintivamente busca reducir ese gasto. Una nomenclatura inconsistente o convenciones irregulares rompen el 'modelo predictivo' del cerebro y lo obligan a gastar energía innecesaria. En cambio, un código con reglas claras hace que el cerebro lea en modo de 'piloto automático', reduciendo la fatiga.
Conclusión: la legibilidad es una consideración hacia el cerebro de tus colegas Al final, un buen diseño de código es un diseño cognitivo que minimiza la energía que el cerebro de los demás desarrolladores usa para el 'reconocimiento de patrones'. Mejorar la legibilidad no es simplemente hacer que el código se vea bonito, sino el acto más económico para proteger los recursos cognitivos finitos de quienes colaboran contigo.
1 comentarios
Gracias por el buen artículo.
El código de ejemplo me llegó bastante, jaja