Coding Dojo 9

I’m just back from Dojo#9. We attempted Kata 4 again, but in Ruby this time. Even though I was the only one with much Ruby experience behind me, it still wasn’t much of a problem in practise. I did some cheat sheets, but they didn’t seem to be used much.

Exactly the same as the last time, we only completed the first part of the kata. I started the session by writing a small amount of code. In a very non-object oriented fashion. However, I honestly believe that for this problem an OO solution was utter overkill. The testing was probably useful, but to be quite frank a program this short can be visually inspected so easily, I hardly feel it’s worth it. Heresy, I know.

This is what I was aiming towards.

  day = nil
  min_spread = nil
  File.foreach(ARGV[0]) do |line|
    if line =~ /^\s*(\d+)\s+(\d+)\s+(\d+)/
      spread = $2.to_i - $3.to_i
      if !min_spread || spread < min_spread
        min_spread = spread
        day = $1
      end
    end
  end
  puts day

I’m pleased about using regexes though. They make the problem simpler (and more robust) than the previous Java solution using substring().

Now, when it came to refactoring the program to get to the third part of the kata, an OO solution would have been more appropriate. Because you need to carry some state around, and you can obviously use inheritance to model the differences. And by that point, you’ve got two working programs you can extract a sensible design from.

Ah well. An entertaining evening. Big thanks to Joh for organising and FP for hosting. Sorry for disturbing the late workers…

Comments 5

  1. Jane wrote:

    Any chance of making that cheat sheet available?

    Posted 08 Mar 2007 at 11:50
  2. Dominic Mitchell wrote:

    Jane, it’s over here.

    Posted 08 Mar 2007 at 12:49
  3. Piers Cawley wrote:

    Damn, that sounds like a great idea.

    It’s a long way from Newcastle to Brighton, but, let’s say a chap was thinking of coming down, taking part and then returning to the frozen north with the intent of starting a Tyneside Coding Dojo. Would this hypothetical chap find a hypothetical sofa on which to lay his weary head? Hypothetically.

    Posted 16 Mar 2007 at 09:37
  4. Dominic Mitchell wrote:

    Piers, you’re more than welcome! Drop me an email to confirm. I think that the next dates are on upcoming.org

    Posted 16 Mar 2007 at 10:38
  5. Piers Cawley wrote:

    Well, I’ve signed up for next Monday’s Dojo. Before I realised that it’s going to be in Java and I have to code. And my java knowledge is pretty much ‘read only, through my fingers and keeping a barf bag to hand’.

    I tried emailing you, but I might have the wrong email address.

    Posted 16 Mar 2007 at 21:58