16.2 C
São Paulo
星期三, 30 4 月, 2025

Guia completo de 10 curry: Receitas simples e deliciosas para todos!

BasqueteGuia completo de 10 curry: Receitas simples e deliciosas para todos!

Olha, vou te contar como foi parar naquele negócio que a gente acabou chamando de “10 curry”. Não foi planejado, não, foi mais na base da necessidade mesmo, sabe como é?

Guia completo de 10 curry: Receitas simples e deliciosas para todos!

O Começo da Bagunça

A gente tava lá naquele projeto antigo, lembra? Tinha uma função específica que era o cão chupando manga. Sério. Ela fazia um monte de coisa, o que já era meio ruim, mas o pior é que ela recebia uma pancada de parâmetro. Contando por cima, devia ter uns 10, fácil. Toda vez que alguém precisava usar, era aquele copia e cola gigante, e ai de você se errasse a ordem ou esquecesse algum.

O problema maior era: na maioria das vezes, a gente só mudava os dois ou três últimos parâmetros. Os primeiros eram quase sempre os mesmos, dependendo do módulo onde a gente estava chamando. Era um desperdício de código e uma porta aberta pra erro que dava até agonia.

A Ideia Maluca

Aí um dia, de saco cheio de conferir parâmetro, eu parei pra pensar. Pô, se os primeiros são quase sempre iguais, por que eu tenho que passar tudo toda vez? Não dava pra criar umas “versões” dessa função já com esses primeiros parâmetros fixos?

Foi aí que lembrei daquele tal de currying. Na época, eu mal sabia direito o que era, só tinha visto por alto. A ideia era mais ou menos essa: pegar uma função que recebe vários argumentos e transformar numa sequência de funções que recebem um argumento de cada vez.

Pensei: “Bom, não custa tentar, né? Pior do que tá não fica.”

Guia completo de 10 curry: Receitas simples e deliciosas para todos!

Mão na Massa

Comecei a mexer no código. Peguei a função original, aquela monstra de 10 parâmetros.

  • Primeiro, criei uma função nova que recebia só o primeiro parâmetro original.
  • Essa função retornava outra função.
  • Essa outra função recebia o segundo parâmetro original.
  • E ela retornava mais uma função…

Fui fazendo isso, encadeando uma função dentro da outra. Cada uma recebia um parâmetro e retornava a próxima função da fila, até chegar na última, que finalmente recebia os últimos parâmetros e fazia o trabalho de verdade.

Cara, deu um trabalhinho ajustar tudo. Tive que refatorar bastante coisa onde a função original era chamada. Mas a mágica começou a acontecer quando eu podia fazer algo tipo:

configuracao_basica = funcao_monstra(param1)(param2)(param3)

E depois, em vários lugares diferentes, eu só usava essa configuracao_basica:

Guia completo de 10 curry: Receitas simples e deliciosas para todos!

resultado1 = configuracao_basica(param4)(param5)...(param10_a)

resultado2 = configuracao_basica(param4)(param5)...(param10_b)

Ficou muito mais limpo! De tanto quebrar a função original, pareceu que eu tinha criado umas 10 funções menores no processo. Foi daí que veio o apelido tosco de “10 curry”, meio de zoeira, mas pegou.

O Resultado Final

No começo, o pessoal do time olhou meio torto. “Pra que complicar?”, alguns disseram. Mas quando viram na prática como facilitou na hora de usar a função e como reduziu a chance de erro, acabaram curtindo.

Resumindo a ópera: a gente pegou um problemão de uma função gigante e difícil de usar e aplicou essa técnica de currying. Não sei se foram exatamente 10 níveis, mas a ideia de quebrar em várias etapas pegou e o nome ficou.

Guia completo de 10 curry: Receitas simples e deliciosas para todos!

Foi uma experiência massa. Mostrou que às vezes sair do óbvio e tentar uma abordagem diferente pode salvar muito tempo e dor de cabeça lá na frente. Deu certo naquele caso, pelo menos.

Confira nossos outros conteúdos

Ver outras tags:

Artigos mais populares