C#:
var articles = Article
.OrderBy(x=> x.Name)
.Where(x=> x.Name.Contains(pattern))
.Select(x=>new {x.Name + " (article)"})
.ToList();
It’s good to write this way in C# and it’s called “methods concatenation”. In fact, I don’t remember exactly how they are called, I read it in Jon Skeet’s book. The idea is that each method is on a new line, and it’s normal in C#.
What about Ruby? Is it normal to write:
articles = Article
.order(:name)
.where("name like ?","%#{pattern}%")
.map(&:name)
.map {|c| c << " (article)"}
Subjective question, so her’s a subjective answer (as Ruby programmer):
I prefer not to create “holes”, in my code I wouldn’t insert that level of indentation.
You can also insert the dots at the end of the line. Which is more readable? hard to say, I prefer the latter (although I don’t mind at the beginning of the line, it’s not a big deal). So I’d probably write (note that those two maps could be joined):
In my experience, long chains make code harder to follow. When the chain grows too much (5, 6 elements?) I tend to break it creating intermediate variables with meaningful names, this helps me to further describe the expression: