j'étais curieux de voir comment je factoriser ce code:Comment utiliser lambdas avec des arguments pour collecter un tableau?
array.collect{|x| x.some_method}.inject(:+) || 0
Je l'ai environ dix fois dans mon code avec des méthodes différentes, donc je pensais que je devrais factoriser, mais comment?
J'ai essayé au moins dix variétés de blocs, procs et lambdas et à ce stade, je ne suis même pas sûr qu'il peut être refactorisé.
Envisager de remplacer les différentes parties avec quelque chose "nommé" tel comme «somme» .. les noms sont bons. Les noms créent une documentation implicite. Si la * même ligne * est répétée plusieurs fois, alors c'est probablement un bon candidat pour "nommer" aussi. –
"refactor" questions de type appartiennent probablement sur http://codereview.stackexchange.com. Voir [la FAQ de CodeReview] (http://codereview.stackexchange.com/faq#questions) pour plus d'informations. –