Continuing our weekly get-togethers... Matt (http://matthewrighter.com/) and I will be discussing our finished urinal katas. This title for a kata has gained a lot of attention this week. I have been working on the kata, off-and-on within the common spaces of the office. I spent a little time drawing logic on a white board. You can imagine the amount of attention this created. I would say it was worth it... people are talking... and that is better than normal.
Last week, both of us were less than pleased with our progress, but we had a really great conversation about engineering practices. I spent most of the week refactoring my code and then refactoring Matt's code. I didn't refactor Matt's code because I am a jerk, or his code sucked, but because we are spending time looking at each other's code and making suggestions, based on our preferences, as to how we would change the code.
here are my notes while I reviewed Matt's Urinal code
I would replace the 'nulls' with Option, I refactored all classes to individual class/object files. This is a personal preference. I would like to see Matt drive his code a little more. And I would like to see simpler solutions. I feel some of the complexity is the newness of the scala language (to Matt) and the majority of Matt's time writing code has been within an environment like XCode (objectiveC and/or Swift). My statement doesn't lend towards these languages being less than great, but just the fact that these languages put heavy constraints the exact ways the code should written. They are not necessarily meant to be a general purpose language, but a language to solve a very specific purpose (iOS development... mobile)
I will post the results of our meeting tomorrow.
later.