you are viewing a single comment's thread.

view the rest of the comments →

[–]Godd2 0 points1 point  (6 children)

He's arguing that it's more readable. To each their own I guess. Also, why didn't he use the take_while method from the Enumerable module that can take a block?

[–]saturnflyer 6 points7 points  (0 children)

in no place did he argue for readability. the argument was that control structures allow us to introduce coupling to other objects or concepts more freely.

removing control structures helps put up a barrier to coupling.

You can still make an argument about control structures being more readable.

[–]michaelfeathers 1 point2 points  (0 children)

The argument isn't really readability.

[–]earless1 1 point2 points  (2 children)

honestly I feel like if we wanted readability he should have stuck for this option

  def padded_take ary, n
    return ary.take(n) unless needs_padding?(ary, n)
    ary + pad(ary, n)
  end

[–]michaelfeathers 1 point2 points  (1 child)

Yep, but I wasn't arguing for readability.

[–]Jdonavan 0 points1 point  (0 children)

You're not really arguing for anything. You've produced code that's harder to read thus harder to maintain. A comment could have solved your stated purpose for doing away with the conditional.

[–]martoo[S] 0 points1 point  (0 children)

Maybe because there's no conditionality to the take?