Yeah, so your fancy-pants Linq query, and your fluent interface all looks so neat and expressive, but after you’ve tried to play ‘pin the null reference exception on the donkey’ in production for the n’th time you might consider that all those intermediate variables were generally considered good style for a reason. And it’s not just that you can pinpoint an error given a line number:
“Putting each statement on a line of its own provides an accurate view of a program’s complexity” – Steve McConnell [1]
That and naming the variables documented the code[2], right?
Everyone’s oooohh so up in arms if a method spans multiple pages on screen, but a 10 line fluent interface chain mixed with some linq and some lambdas is somehow ok!? Be serious now[3].
Dumb it down. One day you will appreciate it.
[1] Code Complete, Chapter 31.5 Para ‘Using Only One Statement Per Line’. See http://www.cc2e.com/Page.aspx?hid=291
[2] …and chapter 11.1 ‘Considerations in Choosing Good Names’
[3] Not that I’m advocating avoiding either Linq or Lambdas, but moderation in everything, right? Really not sold at all on Fluent Interfaces mind. So last year.
2 comments:
Hey Piers, Clive here. I just thought i'd let you know something bad
googling
piers williams blog perth team foundation server
the fourth link down is to clergy child molestation. I'm sure this comment doesn't help that google ranking :)
I will try and cut down on that in future. Ta,
Post a Comment