HeadlinesBriefing favicon HeadlinesBriefing.com

Argumentos de função vs cores

Hacker News •
×

Em debates sobre cores de função, alguns argumentam que argumentos de função podem ser cores, citando o valor de contexto do Go como exemplo. O contexto gerencia timeouts e cancelamento, e é projetado para ser passado através das funções mesmo se não for usado diretamente. Uma vez que uma função usa contexto, você deve passá-lo para todas as funções chamadas, parecendo superficialmente uma cor.

No entanto, se todos os parâmetros fossem cores, o conceito não teria sido inventado 50+ anos após as funções. Async tem uma natureza distinta que vale a pena capturar. Para esclarecer, considere um grafo de dependência de mudança: alterar um atributo de função no fundo de uma pilha de chamadas pode afetar os chamadores de três maneiras: nenhuma mudança no chamador, mudança direta no chamador, ou mudança em todas as funções da pilha.

Uma cor força todas as funções acima a reagir, enquanto uma mudança normal só se propaga ao chamador e pode ser capturada. Na prática, as funções quebram a cadeia, isolando funções superiores de mudanças inferiores. A programação estruturada existe para isolar mudanças, e se cada mudança de parâmetro forçasse mudanças em toda a pilha, seria ingerenciável.