Estimations are still difficult
I finished off the “Implement a Human Vs Human” from last week. I underestimate this story quite a bit, I did not expect the testing of the while loop and some corrections after speaking to my mentor to add an additional 5 points!
Because of this my mentor rightly brought this up as something I need to focus on in the future when giving estimations.
Don’t introduces interfaces too early.
An important reminder I was given while developing my human vs human functionality, is ordering is important, especially when it comes to test doubles and introducing class interfaces.
I had introduced an Interface class for my game console too early, which resulted in updating the interface with new methods while testing, which also meant updating my test double class, as my test double class implemented the Game console class. A massive pain and lesson well learned.
Checked exceptions can be troublesome
I had a couple of interesting discussions with a few craftsmen this week about the value of checked exceptions. While I personally don’t like to use checked exceptions myself, if I have to I use custom checked exceptions, but even that I feel a bit quesy inside.
Chris simply suggested that I use a boolean flag to check whether a move is valid, rather than throwing an exception and catching elsewhere, thus polluting the code base.
Validations, who’s responsibility is it anyways
Who’s responsibility is it to valid objects. Is it the object itself, a validation object that handles validation for other objects… I ran out of time this week, so this is a question to think about in the future.
Iteration 7, the AI is coming
For this week I’m introducing a dumb AI, I probably should say, a beatable AI player.
This will result in a rewrite of (some) my logic and introduce new classes, looking forward to this.