Monday, June 6, 2016

Kata: Tire Pressure Monitoring System in Java (recorded)

I've recorded myself doing the Tire Pressure Monitoring System refactoring kata in order to be able to later watch me and detect problems to correct.

This is the recording of what I did: If you decide to watch it, please do it at 2x speed (I still write slowly).

These are the commits after every refactoring step.

You can see the code in this GitHub repository.

Sunday, June 5, 2016

Kata: Revisiting Tire Pressure Monitoring System in Java

Some weeks ago we did Luca Minudel's Tire Pressure Monitoring System refactoring kata as part of a mentoring program that Álvaro García and I were doing at Magento Barcelona.

We had done this kata several times before in Java and in Ruby, presented it at some events (Refactoring legacy code driven by tests (Java version) at SCBCN, Refactoring legacy code driven by tests (Java version) at Gran Canaria Ágil, Refactoring legacy code driven by tests (Ruby version) at SCBCN, Refactoring legacy code driven by tests (Ruby version) at Perl 2015 workshop, Refactoring legacy code driven by tests (Ruby version) at Socrates Canarias 2016), and also commented it in a series of blog posts.

In each iteration, we've added things we have learned from the feedback we've received. Thanks to all the people who gave us feedback, (specially to Johan S. Cortes for remembering us to protect the original pressure alarm knowledge).

This is the code of the rehearsal and this is the code of the live coding session at Magento.

We'd like to thank Luca Minudel, once more, for this great exercise. It's small and very focused so it's great for reflecting on concepts such as DIP, testability, seams, and context independence, and also showing some dependency-breaking and refactoring techniques in a short session.