Welcome to the Clean Coders Java Case Study. This is Episode 2, Part 1.

So, Micah and I worked for a couple of hours getting our first acceptance tests close to passing. We wrote lots of unit tests, and made a load of progress.

We also encountered several interesting problems: chief among them was to create a mock database (The Gateway) that behaves enough like a real database to make our tests meaningful.

There's more work to be done on that, and you'll see more on that in Episode 4. But for the moment we managed to figure out how we would deal with unique identifiers for all the data being stored and fetched through the Gateway.

We split this episode into two parts, each about an hour long. There's a lot of stuff going on in each one, so take your time and watch carefully. You'll be the third member of our pair.

Notice how the pairing is working: watch how we toss ideas back and forth, and help each other when we get stuck or tired. The dynamics are fascinating.

We reviewed this episode later and found a number of interesting discussion points, so Micah and I recorded some commentary and interspersed it along with the video. It's quite amazing how this little batch of code could raise so many design and architecture issues.

If you want to follow along with the code, you can find it on Github: https://github.com/cleancoders/CleanCodeCaseStudy

This episode is in the "E2 Complete" commit from May 13, 2014.

Have fun!