<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif;">
<div>Hrrm, there’s some good points in there but he’s lumping far too many things in at once and it’s all a bit muddled.  </div>
<div><br>
</div>
<div>His dependency injection argument in particular was very badly presented. His date example actually has a bug in the non-DI case which his tests won’t catch, e.g. consider this</div>
<div><br>
</div>
<div>  age = p.age</div>
<div>  can_drink = p.is_of_drinking_age</div>
<div>  puts “age=#{age}  can_drink=#{can_drink}"</div>
<div><br>
</div>
<div>If you run this around the stroke of midnight you could get “age=20 can_drink=true” depending on when each line runs. A better design would probably be to initialise the age variable on construction which would prevent having to pass the date around in
 the function calls too. </div>
<div><br>
</div>
<div>I think there’s a good discussion to be had around this in the general case (passing the same variable across multiple methods), but it would need a much better example to kick off from for a balanced argument. </div>
<div><br>
</div>
<div>Regarding TDD it sounds like most of his problems, particularly around coarseness of tests and how they benefit design, are what Steve Freeman covers very well in his “Test Driven Development (what’s not what we meant)” talk: <a href="http://vimeo.com/83960706">http://vimeo.com/83960706</a> 
 DHH's “diet book” analogy is valid but it’s not really tdd-specific and could apply to any tech buzzword. Probably a better argument is that there's often too much focus on the “how to” side of implementing tdd/agile/xp/etc rather than the “why” side of understanding
 the root problems they address and how they can help reduce them.</div>
<div><br>
</div>
<div>I also have a bit of an issue with his idea that you become a good programmer just by writing and reading more code. That’s definitely an aspect, but I’d say that exposure to code review from experienced developers counts for a lot more (I personally learned
 a lot more in my first 6 months at a company doing very strict reviews than in 2 years at another that barely did any). </div>
<div><br>
</div>
<div>Stephen</div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<div style="font-family:Calibri; font-size:11pt; text-align:left; color:black; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<span style="font-weight:bold">From: </span>Sleepyfox <<a href="mailto:sleepyfox@gmail.com">sleepyfox@gmail.com</a>><br>
<span style="font-weight:bold">Date: </span>Friday, 25 April 2014 14:25<br>
<span style="font-weight:bold">To: </span>London Ruby Users Group <<a href="mailto:chat@lists.lrug.org">chat@lists.lrug.org</a>><br>
<span style="font-weight:bold">Subject: </span>[LRUG] Dependency Injection and DHH<br>
</div>
<div><br>
</div>
<div>
<div>
<div dir="ltr">
<div class="gmail_default" style="font-size:small">I'm wondering what those who were at RailsConf and listened to DHH's keynote - or have watched the video:
<a href="http://www.justin.tv/confreaks/b/522089408">http://www.justin.tv/confreaks/b/522089408</a> - thought about his description of dependency injection making code worse?</div>
<div class="gmail_default" style="font-size:small"><br>
</div>
<div class="gmail_default" style="font-size:small">Fox</div>
<div class="gmail_default" style="font-size:small">--</div>
<div class="gmail_default" style="font-size:small">"What does the @sleepyfox say?"</div>
<div class="gmail_default" style="font-size:small"><br>
</div>
</div>
</div>
</div>
</span>
</body>
</html>