Para estender um pouco o título, estou tentando chegar a alguma conclusão sobre se é necessário ou não declarar explicitamente (por exemplo, injetar) funções puras das quais depende alguma outra função ou classe.
Algum pedaço de código é menos testável ou pior projetado se ele usa funções puras sem solicitá-las? Eu gostaria de chegar a uma conclusão sobre o assunto, para qualquer tipo de função pura, desde funções simples e nativas (por exemplo max()
, min()
independentemente da linguagem) até as personalizadas, mais complicadas que, por sua vez, podem implicitamente depender de outras funções puras.
A preocupação usual é que, se algum código usar apenas uma dependência diretamente, você não poderá testá-lo isoladamente, ou seja, estará testando ao mesmo tempo todas as coisas que você silenciosamente trouxe consigo. Mas isso adiciona bastante clichê, se você precisar fazer isso para todas as pequenas funções, então eu me pergunto se isso ainda vale para funções puras, e por que ou por que não.