HeadlinesBriefing favicon HeadlinesBriefing.com

Arguments de fonction vs couleurs

Hacker News •
×

Dans les débats sur les couleurs de fonction, certains soutiennent que les arguments de fonction peuvent être des couleurs, citant la valeur de contexte de Go comme exemple. Le contexte gère les délais d'attente et l'annulation, et est conçu pour être transmis à travers les fonctions même s'il n'est pas utilisé directement. Une fois qu'une fonction utilise le contexte, vous devez le passer à toutes les fonctions appelées, apparaissant superficiellement comme une couleur.

Cependant, si tous les paramètres étaient des couleurs, le concept n'aurait pas été inventé 50+ ans après les fonctions. Async a une nature distincte qui mérite d'être capturée. Pour clarifier, considérez un graphe de dépendance de changement : modifier un attribut de fonction en profondeur dans une pile d'appels peut affecter les appelants de trois manières : aucun changement d'appelant, changement direct de l'appelant, ou changement de toutes les fonctions de la pile.

Une couleur force toutes les fonctions supérieures à réagir, tandis qu'un changement normal ne se propage qu'à l'appelant et peut être attrapé. En pratique, les fonctions brisent la chaîne, isolant les fonctions supérieures des changements inférieurs. La programmation structurée existe pour isoler les changements, et si chaque changement de paramètre forçait des changements dans toute la pile, ce serait ingérable.