HeadlinesBriefing favicon HeadlinesBriefing.com

Argumentos de función vs colores

Hacker News •
×

En los debates sobre colores de función, algunos argumentan que los argumentos de función pueden ser colores, citando el valor de contexto de Go como ejemplo. El contexto gestiona tiempos de espera y cancelación, y está diseñado para ser pasado a través de funciones incluso si no se usa directamente. Una vez que una función usa contexto, debes pasarlo a todas las funciones llamadas, apareciendo superficialmente como un color.

Sin embargo, si todos los parámetros fueran colores, el concepto no se habría inventado 50+ años después de las funciones. Async tiene una naturaleza distinta que vale la pena capturar. Para aclarar, considera un gráfico de dependencia de cambios: cambiar un atributo de función en lo profundo de una pila de llamadas puede afectar a los llamadores de tres maneras: sin cambio en el llamador, cambio directo en el llamador, o cambio en todas las funciones de la pila.

Un color obliga a todas las funciones superiores a reaccionar, mientras que un cambio normal solo se propaga al llamador y puede ser capturado. En la práctica, las funciones rompen la cadena, aislando las funciones superiores de los cambios inferiores. La programación estructurada existe para aislar cambios, y si cada cambio de parámetro forzara cambios en toda la pila, sería inmanejable.